From 2e0e56a9271c9b4eb7c6014320398d8ef346bd90 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sun, 5 Oct 2025 18:08:48 +0000 Subject: [PATCH] 2 --- chatbot.php | 78 + chatbot_api.php | 73 + composer-setup.php | 1781 +++++++ composer.json | 5 + composer.lock | 1395 ++++++ gcp_creds/dialogflow_key.json | 28 + index.php | 3 +- vendor/autoload.php | 22 + vendor/brick/math/CHANGELOG.md | 513 ++ vendor/brick/math/LICENSE | 20 + vendor/brick/math/composer.json | 39 + vendor/brick/math/phpstan.neon | 14 + vendor/brick/math/src/BigDecimal.php | 862 ++++ vendor/brick/math/src/BigInteger.php | 1139 +++++ vendor/brick/math/src/BigNumber.php | 556 +++ vendor/brick/math/src/BigRational.php | 441 ++ .../src/Exception/DivisionByZeroException.php | 35 + .../Exception/IntegerOverflowException.php | 23 + .../math/src/Exception/MathException.php | 12 + .../src/Exception/NegativeNumberException.php | 12 + .../src/Exception/NumberFormatException.php | 44 + .../Exception/RoundingNecessaryException.php | 19 + vendor/brick/math/src/Internal/Calculator.php | 665 +++ .../Internal/Calculator/BcMathCalculator.php | 73 + .../src/Internal/Calculator/GmpCalculator.php | 128 + .../Internal/Calculator/NativeCalculator.php | 603 +++ .../math/src/Internal/CalculatorRegistry.php | 73 + vendor/brick/math/src/RoundingMode.php | 98 + vendor/composer/ClassLoader.php | 579 +++ vendor/composer/InstalledVersions.php | 396 ++ vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 16 + vendor/composer/autoload_files.php | 13 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 43 + vendor/composer/autoload_real.php | 50 + vendor/composer/autoload_static.php | 227 + vendor/composer/installed.json | 1448 ++++++ vendor/composer/installed.php | 245 + vendor/composer/platform_check.php | 25 + vendor/firebase/php-jwt/CHANGELOG.md | 205 + vendor/firebase/php-jwt/LICENSE | 30 + vendor/firebase/php-jwt/README.md | 425 ++ vendor/firebase/php-jwt/composer.json | 42 + .../php-jwt/src/BeforeValidException.php | 18 + vendor/firebase/php-jwt/src/CachedKeySet.php | 274 ++ .../firebase/php-jwt/src/ExpiredException.php | 18 + vendor/firebase/php-jwt/src/JWK.php | 355 ++ vendor/firebase/php-jwt/src/JWT.php | 667 +++ .../src/JWTExceptionWithPayloadInterface.php | 20 + vendor/firebase/php-jwt/src/Key.php | 55 + .../php-jwt/src/SignatureInvalidException.php | 7 + vendor/google/auth/.repo-metadata.json | 7 + vendor/google/auth/COPYING | 202 + vendor/google/auth/LICENSE | 203 + vendor/google/auth/README.md | 368 ++ vendor/google/auth/SECURITY.md | 7 + vendor/google/auth/VERSION | 1 + vendor/google/auth/composer.json | 44 + vendor/google/auth/src/AccessToken.php | 473 ++ .../src/ApplicationDefaultCredentials.php | 391 ++ .../src/Cache/FileSystemCacheItemPool.php | 230 + .../src/Cache/InvalidArgumentException.php | 24 + .../auth/src/Cache/MemoryCacheItemPool.php | 182 + .../auth/src/Cache/SysVCacheItemPool.php | 248 + vendor/google/auth/src/Cache/TypedItem.php | 170 + vendor/google/auth/src/CacheTrait.php | 110 + .../src/CredentialSource/AwsNativeSource.php | 375 ++ .../src/CredentialSource/ExecutableSource.php | 272 ++ .../auth/src/CredentialSource/FileSource.php | 87 + .../auth/src/CredentialSource/UrlSource.php | 109 + .../Credentials/AppIdentityCredentials.php | 238 + .../ExternalAccountCredentials.php | 394 ++ .../auth/src/Credentials/GCECredentials.php | 685 +++ .../auth/src/Credentials/IAMCredentials.php | 91 + .../ImpersonatedServiceAccountCredentials.php | 295 ++ .../src/Credentials/InsecureCredentials.php | 68 + .../Credentials/ServiceAccountCredentials.php | 457 ++ .../ServiceAccountJwtAccessCredentials.php | 246 + .../Credentials/UserRefreshCredentials.php | 202 + vendor/google/auth/src/CredentialsLoader.php | 319 ++ .../ExecutableHandler/ExecutableHandler.php | 83 + .../ExecutableResponseError.php | 27 + ...ternalAccountCredentialSourceInterface.php | 24 + .../google/auth/src/FetchAuthTokenCache.php | 339 ++ .../auth/src/FetchAuthTokenInterface.php | 54 + vendor/google/auth/src/GCECache.php | 82 + .../auth/src/GetQuotaProjectInterface.php | 33 + .../auth/src/GetUniverseDomainInterface.php | 35 + .../src/HttpHandler/Guzzle6HttpHandler.php | 140 + .../src/HttpHandler/Guzzle7HttpHandler.php | 21 + .../auth/src/HttpHandler/HttpClientCache.php | 54 + .../src/HttpHandler/HttpHandlerFactory.php | 73 + vendor/google/auth/src/Iam.php | 155 + vendor/google/auth/src/IamSignerTrait.php | 72 + .../google/auth/src/Logging/LoggingTrait.php | 138 + .../google/auth/src/Logging/RpcLogEvent.php | 136 + .../google/auth/src/Logging/StdOutLogger.php | 85 + vendor/google/auth/src/MetricsTrait.php | 120 + .../src/Middleware/AuthTokenMiddleware.php | 163 + .../Middleware/ProxyAuthTokenMiddleware.php | 155 + .../ScopedAccessTokenMiddleware.php | 165 + .../auth/src/Middleware/SimpleMiddleware.php | 92 + vendor/google/auth/src/OAuth2.php | 1828 +++++++ .../auth/src/ProjectIdProviderInterface.php | 32 + .../auth/src/ServiceAccountSignerTrait.php | 56 + vendor/google/auth/src/SignBlobInterface.php | 44 + .../auth/src/UpdateMetadataInterface.php | 41 + .../google/auth/src/UpdateMetadataTrait.php | 74 + vendor/google/cloud-dialogflow/.gitattributes | 7 + ...create_conversation_model_sample_fix.patch | 21 + .../cloud-dialogflow/CODE_OF_CONDUCT.md | 43 + .../google/cloud-dialogflow/CONTRIBUTING.md | 10 + vendor/google/cloud-dialogflow/LICENSE | 202 + vendor/google/cloud-dialogflow/README.md | 73 + vendor/google/cloud-dialogflow/SECURITY.md | 7 + vendor/google/cloud-dialogflow/VERSION | 1 + vendor/google/cloud-dialogflow/composer.json | 31 + .../cloud-dialogflow/metadata/V2/Agent.php | Bin 0 -> 5891 bytes .../metadata/V2/AnswerRecord.php | Bin 0 -> 5063 bytes .../metadata/V2/AudioConfig.php | Bin 0 -> 4061 bytes .../cloud-dialogflow/metadata/V2/Context.php | 70 + .../metadata/V2/Conversation.php | Bin 0 -> 14824 bytes .../metadata/V2/ConversationDataset.php | Bin 0 -> 5291 bytes .../metadata/V2/ConversationEvent.php | Bin 0 -> 1592 bytes .../metadata/V2/ConversationModel.php | Bin 0 -> 9282 bytes .../metadata/V2/ConversationProfile.php | Bin 0 -> 12416 bytes .../cloud-dialogflow/metadata/V2/Document.php | Bin 0 -> 7755 bytes .../metadata/V2/EncryptionSpec.php | 48 + .../metadata/V2/EntityType.php | Bin 0 -> 7506 bytes .../metadata/V2/Environment.php | Bin 0 -> 5519 bytes .../metadata/V2/Fulfillment.php | Bin 0 -> 2905 bytes .../cloud-dialogflow/metadata/V2/Gcs.php | 33 + .../metadata/V2/Generator.php | Bin 0 -> 6230 bytes .../metadata/V2/HumanAgentAssistantEvent.php | 32 + .../cloud-dialogflow/metadata/V2/Intent.php | Bin 0 -> 12744 bytes .../metadata/V2/KnowledgeBase.php | 66 + .../metadata/V2/Participant.php | Bin 0 -> 14998 bytes .../cloud-dialogflow/metadata/V2/Session.php | Bin 0 -> 7758 bytes .../metadata/V2/SessionEntityType.php | Bin 0 -> 5742 bytes .../metadata/V2/ValidationResult.php | Bin 0 -> 1123 bytes .../cloud-dialogflow/metadata/V2/Version.php | Bin 0 -> 3766 bytes .../cloud-dialogflow/metadata/V2/Webhook.php | 50 + .../google/cloud-dialogflow/src/V2/Agent.php | 543 +++ .../src/V2/Agent/ApiVersion.php | 69 + .../src/V2/Agent/MatchMode.php | 64 + .../cloud-dialogflow/src/V2/Agent/Tier.php | 70 + .../src/V2/AgentAssistantFeedback.php | 331 ++ .../AnswerRelevance.php | 62 + .../DocumentCorrectness.php | 62 + .../DocumentEfficiency.php | 62 + .../KnowledgeAssistFeedback.php | 130 + .../KnowledgeSearchFeedback.php | 130 + .../SummarizationFeedback.php | 190 + .../src/V2/AgentAssistantRecord.php | 141 + .../src/V2/AnalyzeContentRequest.php | 521 ++ .../src/V2/AnalyzeContentResponse.php | 432 ++ .../src/V2/AnnotatedMessagePart.php | 195 + .../src/V2/AnswerFeedback.php | 282 ++ .../V2/AnswerFeedback/CorrectnessLevel.php | 69 + .../cloud-dialogflow/src/V2/AnswerRecord.php | 190 + .../cloud-dialogflow/src/V2/ArticleAnswer.php | 261 + .../src/V2/ArticleSuggestionModelMetadata.php | 71 + .../src/V2/AssistQueryParameters.php | 131 + .../cloud-dialogflow/src/V2/AudioEncoding.php | 125 + .../cloud-dialogflow/src/V2/AudioInput.php | 123 + .../src/V2/AutomatedAgentConfig.php | 175 + .../src/V2/AutomatedAgentReply.php | 203 + .../AutomatedAgentReplyType.php | 68 + .../src/V2/BatchCreateEntitiesRequest.php | 196 + .../src/V2/BatchDeleteEntitiesRequest.php | 208 + .../src/V2/BatchDeleteEntityTypesRequest.php | 128 + .../src/V2/BatchDeleteIntentsRequest.php | 128 + .../src/V2/BatchUpdateEntitiesRequest.php | 240 + .../src/V2/BatchUpdateEntityTypesRequest.php | 250 + .../src/V2/BatchUpdateEntityTypesResponse.php | 68 + .../src/V2/BatchUpdateIntentsRequest.php | 314 ++ .../src/V2/BatchUpdateIntentsResponse.php | 68 + ...ggestionFeatureConfigOperationMetadata.php | 193 + .../ClearSuggestionFeatureConfigRequest.php | 185 + .../src/V2/Client/AgentsClient.php | 740 +++ .../src/V2/Client/AnswerRecordsClient.php | 734 +++ .../src/V2/Client/ContextsClient.php | 646 +++ .../V2/Client/ConversationDatasetsClient.php | 540 ++ .../V2/Client/ConversationModelsClient.php | 830 ++++ .../V2/Client/ConversationProfilesClient.php | 941 ++++ .../src/V2/Client/ConversationsClient.php | 1175 +++++ .../src/V2/Client/DocumentsClient.php | 724 +++ .../V2/Client/EncryptionSpecServiceClient.php | 401 ++ .../src/V2/Client/EntityTypesClient.php | 787 +++ .../src/V2/Client/EnvironmentsClient.php | 655 +++ .../src/V2/Client/FulfillmentsClient.php | 372 ++ .../src/V2/Client/GeneratorsClient.php | 444 ++ .../src/V2/Client/IntentsClient.php | 874 ++++ .../src/V2/Client/KnowledgeBasesClient.php | 495 ++ .../src/V2/Client/ParticipantsClient.php | 1093 +++++ .../V2/Client/SessionEntityTypesClient.php | 647 +++ .../src/V2/Client/SessionsClient.php | 692 +++ .../src/V2/Client/VersionsClient.php | 516 ++ .../src/V2/CloudConversationDebuggingInfo.php | 750 +++ .../src/V2/CompleteConversationRequest.php | 92 + .../cloud-dialogflow/src/V2/Context.php | 261 + .../cloud-dialogflow/src/V2/Conversation.php | 458 ++ .../src/V2/Conversation/ContextReference.php | 184 + .../ContextReference/ContextContent.php | 150 + .../ContextContent/ContentFormat.php | 62 + .../ContextReference/UpdateMode.php | 62 + .../src/V2/Conversation/ConversationStage.php | 67 + .../src/V2/Conversation/LifecycleState.php | 62 + .../Conversation/TelephonyConnectionInfo.php | 175 + .../TelephonyConnectionInfo/MimeContent.php | 102 + .../TelephonyConnectionInfo/SipHeader.php | 102 + .../src/V2/ConversationContext.php | 67 + .../src/V2/ConversationDataset.php | 412 ++ .../src/V2/ConversationEvent.php | 233 + .../src/V2/ConversationEvent/Type.php | 104 + .../src/V2/ConversationInfo.php | 75 + .../src/V2/ConversationModel.php | 442 ++ .../src/V2/ConversationModel/ModelType.php | 62 + .../src/V2/ConversationModel/State.php | 106 + .../src/V2/ConversationModelEvaluation.php | 329 ++ .../src/V2/ConversationPhoneNumber.php | 102 + .../src/V2/ConversationProfile.php | 779 +++ .../src/V2/CreateContextRequest.php | 153 + ...teConversationDatasetOperationMetadata.php | 75 + .../V2/CreateConversationDatasetRequest.php | 132 + ...sationModelEvaluationOperationMetadata.php | 201 + .../State.php | 83 + ...eateConversationModelEvaluationRequest.php | 138 + ...eateConversationModelOperationMetadata.php | 155 + .../State.php | 92 + .../src/V2/CreateConversationModelRequest.php | 132 + .../V2/CreateConversationProfileRequest.php | 133 + .../src/V2/CreateConversationRequest.php | 199 + .../src/V2/CreateDocumentRequest.php | 138 + .../src/V2/CreateEntityTypeRequest.php | 206 + .../src/V2/CreateEnvironmentRequest.php | 158 + .../src/V2/CreateGeneratorRequest.php | 209 + .../src/V2/CreateIntentRequest.php | 240 + .../src/V2/CreateKnowledgeBaseRequest.php | 133 + .../src/V2/CreateParticipantRequest.php | 138 + .../src/V2/CreateSessionEntityTypeRequest.php | 153 + .../src/V2/CreateVersionRequest.php | 144 + .../src/V2/DeleteAgentRequest.php | 87 + .../src/V2/DeleteAllContextsRequest.php | 107 + .../src/V2/DeleteContextRequest.php | 107 + ...teConversationDatasetOperationMetadata.php | 33 + .../V2/DeleteConversationDatasetRequest.php | 92 + ...leteConversationModelOperationMetadata.php | 121 + .../src/V2/DeleteConversationModelRequest.php | 86 + .../V2/DeleteConversationProfileRequest.php | 94 + .../src/V2/DeleteDocumentRequest.php | 92 + .../src/V2/DeleteEntityTypeRequest.php | 87 + .../src/V2/DeleteEnvironmentRequest.php | 88 + .../src/V2/DeleteGeneratorRequest.php | 86 + .../src/V2/DeleteIntentRequest.php | 92 + .../src/V2/DeleteKnowledgeBaseRequest.php | 130 + .../src/V2/DeleteSessionEntityTypeRequest.php | 112 + .../src/V2/DeleteVersionRequest.php | 103 + ...ployConversationModelOperationMetadata.php | 121 + .../src/V2/DeployConversationModelRequest.php | 72 + .../src/V2/DetectIntentRequest.php | 428 ++ .../src/V2/DetectIntentResponse.php | 273 ++ .../src/V2/DialogflowAssistAnswer.php | 150 + .../cloud-dialogflow/src/V2/Document.php | 500 ++ .../src/V2/Document/KnowledgeType.php | 83 + .../src/V2/Document/ReloadStatus.php | 130 + .../src/V2/Document/State.php | 83 + .../src/V2/DtmfParameters.php | 67 + .../src/V2/EncryptionSpec.php | 126 + .../cloud-dialogflow/src/V2/EntityType.php | 274 ++ .../src/V2/EntityType/AutoExpansionMode.php | 58 + .../src/V2/EntityType/Entity.php | 146 + .../src/V2/EntityType/Kind.php | 73 + .../src/V2/EntityTypeBatch.php | 67 + .../cloud-dialogflow/src/V2/Environment.php | 362 ++ .../src/V2/Environment/State.php | 73 + .../src/V2/EnvironmentHistory.php | 164 + .../src/V2/EnvironmentHistory/Entry.php | 146 + .../src/V2/EvaluationConfig.php | 142 + .../EvaluationConfig/SmartComposeConfig.php | 122 + .../V2/EvaluationConfig/SmartReplyConfig.php | 122 + .../cloud-dialogflow/src/V2/EventInput.php | 221 + .../src/V2/ExportAgentRequest.php | 153 + .../src/V2/ExportAgentResponse.php | 112 + .../src/V2/ExportDocumentRequest.php | 194 + .../src/V2/ExportOperationMetadata.php | 77 + .../cloud-dialogflow/src/V2/FaqAnswer.php | 269 + .../src/V2/FewShotExample.php | 206 + .../src/V2/FreeFormContext.php | 67 + .../src/V2/FreeFormSuggestion.php | 67 + .../cloud-dialogflow/src/V2/Fulfillment.php | 247 + .../src/V2/Fulfillment/Feature.php | 68 + .../src/V2/Fulfillment/Feature/Type.php | 55 + .../src/V2/Fulfillment/GenericWebService.php | 236 + .../src/V2/GcsDestination.php | 83 + .../cloud-dialogflow/src/V2/GcsSources.php | 75 + .../V2/GenerateStatelessSuggestionRequest.php | 281 ++ .../GenerateStatelessSuggestionResponse.php | 78 + .../V2/GenerateStatelessSummaryRequest.php | 222 + .../MinimalConversation.php | 123 + .../V2/GenerateStatelessSummaryResponse.php | 174 + .../Summary.php | 148 + .../src/V2/GenerateSuggestionsRequest.php | 183 + .../src/V2/GenerateSuggestionsResponse.php | 114 + .../GeneratorSuggestionAnswer.php | 158 + .../cloud-dialogflow/src/V2/Generator.php | 404 ++ .../src/V2/GeneratorSuggestion.php | 108 + .../src/V2/GetAgentRequest.php | 87 + .../src/V2/GetContextRequest.php | 107 + .../src/V2/GetConversationDatasetRequest.php | 92 + .../GetConversationModelEvaluationRequest.php | 91 + .../src/V2/GetConversationModelRequest.php | 86 + .../src/V2/GetConversationProfileRequest.php | 92 + .../src/V2/GetConversationRequest.php | 92 + .../src/V2/GetDocumentRequest.php | 92 + .../src/V2/GetEncryptionSpecRequest.php | 81 + .../src/V2/GetEntityTypeRequest.php | 158 + .../src/V2/GetEnvironmentHistoryRequest.php | 160 + .../src/V2/GetEnvironmentRequest.php | 88 + .../src/V2/GetFulfillmentRequest.php | 87 + .../src/V2/GetGeneratorRequest.php | 86 + .../src/V2/GetIntentRequest.php | 192 + .../src/V2/GetKnowledgeBaseRequest.php | 92 + .../src/V2/GetParticipantRequest.php | 92 + .../src/V2/GetSessionEntityTypeRequest.php | 112 + .../src/V2/GetValidationResultRequest.php | 122 + .../src/V2/GetVersionRequest.php | 103 + .../src/V2/HumanAgentAssistantConfig.php | 217 + .../ConversationModelConfig.php | 136 + .../ConversationProcessConfig.php | 72 + .../MessageAnalysisConfig.php | 194 + .../SuggestionConfig.php | 234 + .../SuggestionFeatureConfig.php | 464 ++ .../SuggestionQueryConfig.php | 410 ++ .../ContextFilterSettings.php | 141 + .../DialogflowQuerySource.php | 125 + .../HumanAgentSideConfig.php | 77 + .../DocumentQuerySource.php | 81 + .../KnowledgeBaseQuerySource.php | 81 + .../SuggestionQueryConfig/Sections.php | 83 + .../Sections/SectionType.php | 101 + .../SuggestionTriggerSettings.php | 106 + .../src/V2/HumanAgentAssistantEvent.php | 148 + .../src/V2/HumanAgentHandoffConfig.php | 111 + .../LivePersonConfig.php | 72 + .../SalesforceLiveAgentConfig.php | 182 + .../src/V2/ImportAgentRequest.php | 165 + ...mportConversationDataOperationMetadata.php | 163 + ...mportConversationDataOperationResponse.php | 111 + .../src/V2/ImportConversationDataRequest.php | 120 + .../src/V2/ImportDocumentTemplate.php | 147 + .../src/V2/ImportDocumentsRequest.php | 212 + .../src/V2/ImportDocumentsResponse.php | 68 + .../src/V2/InferenceParameter.php | 277 ++ .../src/V2/IngestContextReferencesRequest.php | 142 + .../V2/IngestContextReferencesResponse.php | 67 + .../V2/InitializeEncryptionSpecMetadata.php | 77 + .../V2/InitializeEncryptionSpecRequest.php | 105 + .../V2/InitializeEncryptionSpecResponse.php | 33 + .../src/V2/InputAudioConfig.php | 652 +++ .../cloud-dialogflow/src/V2/InputConfig.php | 82 + .../cloud-dialogflow/src/V2/InputDataset.php | 76 + .../src/V2/InputTextConfig.php | 75 + .../google/cloud-dialogflow/src/V2/Intent.php | 904 ++++ .../src/V2/Intent/FollowupIntentInfo.php | 110 + .../src/V2/Intent/Message.php | 543 +++ .../src/V2/Intent/Message/BasicCard.php | 214 + .../V2/Intent/Message/BasicCard/Button.php | 112 + .../BasicCard/Button/OpenUriAction.php | 68 + .../V2/Intent/Message/BrowseCarouselCard.php | 111 + .../BrowseCarouselCardItem.php | 232 + .../BrowseCarouselCardItem/OpenUrlAction.php | 106 + .../OpenUrlAction/UrlTypeHint.php | 63 + .../ImageDisplayOptions.php | 87 + .../src/V2/Intent/Message/Card.php | 170 + .../src/V2/Intent/Message/Card/Button.php | 106 + .../src/V2/Intent/Message/CarouselSelect.php | 68 + .../V2/Intent/Message/CarouselSelect/Item.php | 190 + .../V2/Intent/Message/ColumnProperties.php | 103 + .../ColumnProperties/HorizontalAlignment.php | 69 + .../src/V2/Intent/Message/Image.php | 106 + .../V2/Intent/Message/LinkOutSuggestion.php | 107 + .../src/V2/Intent/Message/ListSelect.php | 136 + .../src/V2/Intent/Message/ListSelect/Item.php | 190 + .../src/V2/Intent/Message/MediaContent.php | 102 + .../MediaContent/ResponseMediaObject.php | 211 + .../MediaContent/ResponseMediaType.php | 55 + .../src/V2/Intent/Message/Platform.php | 114 + .../src/V2/Intent/Message/QuickReplies.php | 102 + .../src/V2/Intent/Message/SelectItemInfo.php | 111 + .../src/V2/Intent/Message/SimpleResponse.php | 148 + .../src/V2/Intent/Message/SimpleResponses.php | 71 + .../src/V2/Intent/Message/Suggestion.php | 69 + .../src/V2/Intent/Message/Suggestions.php | 68 + .../src/V2/Intent/Message/TableCard.php | 248 + .../src/V2/Intent/Message/TableCardCell.php | 69 + .../src/V2/Intent/Message/TableCardRow.php | 102 + .../src/V2/Intent/Message/Text.php | 68 + .../src/V2/Intent/Parameter.php | 358 ++ .../src/V2/Intent/TrainingPhrase.php | 238 + .../src/V2/Intent/TrainingPhrase/Part.php | 194 + .../src/V2/Intent/TrainingPhrase/Type.php | 68 + .../src/V2/Intent/WebhookState.php | 63 + .../cloud-dialogflow/src/V2/IntentBatch.php | 67 + .../src/V2/IntentSuggestion.php | 153 + .../cloud-dialogflow/src/V2/IntentView.php | 56 + .../src/V2/KnowledgeAssistAnswer.php | 171 + .../KnowledgeAssistAnswer/KnowledgeAnswer.php | 144 + .../KnowledgeAnswer/FaqSource.php | 68 + .../KnowledgeAnswer/GenerativeSource.php | 72 + .../GenerativeSource/Snippet.php | 180 + .../KnowledgeAssistAnswer/SuggestedQuery.php | 68 + .../cloud-dialogflow/src/V2/KnowledgeBase.php | 166 + .../src/V2/KnowledgeOperationMetadata.php | 143 + .../V2/KnowledgeOperationMetadata/State.php | 69 + .../src/V2/ListAnswerRecordsRequest.php | 254 + .../src/V2/ListAnswerRecordsResponse.php | 122 + .../src/V2/ListContextsRequest.php | 179 + .../src/V2/ListContextsResponse.php | 110 + .../V2/ListConversationDatasetsRequest.php | 159 + .../V2/ListConversationDatasetsResponse.php | 106 + ...istConversationModelEvaluationsRequest.php | 158 + ...stConversationModelEvaluationsResponse.php | 106 + .../src/V2/ListConversationModelsRequest.php | 158 + .../src/V2/ListConversationModelsResponse.php | 106 + .../V2/ListConversationProfilesRequest.php | 159 + .../V2/ListConversationProfilesResponse.php | 110 + .../src/V2/ListConversationsRequest.php | 213 + .../src/V2/ListConversationsResponse.php | 110 + .../src/V2/ListDocumentsRequest.php | 254 + .../src/V2/ListDocumentsResponse.php | 106 + .../src/V2/ListEntityTypesRequest.php | 230 + .../src/V2/ListEntityTypesResponse.php | 110 + .../src/V2/ListEnvironmentsRequest.php | 170 + .../src/V2/ListEnvironmentsResponse.php | 110 + .../src/V2/ListGeneratorsRequest.php | 158 + .../src/V2/ListGeneratorsResponse.php | 105 + .../src/V2/ListIntentsRequest.php | 308 ++ .../src/V2/ListIntentsResponse.php | 110 + .../src/V2/ListKnowledgeBasesRequest.php | 265 + .../src/V2/ListKnowledgeBasesResponse.php | 106 + .../src/V2/ListMessagesRequest.php | 222 + .../src/V2/ListMessagesResponse.php | 114 + .../src/V2/ListParticipantsRequest.php | 164 + .../src/V2/ListParticipantsResponse.php | 110 + .../src/V2/ListSessionEntityTypesRequest.php | 179 + .../src/V2/ListSessionEntityTypesResponse.php | 110 + .../src/V2/ListVersionsRequest.php | 170 + .../src/V2/ListVersionsResponse.php | 110 + .../cloud-dialogflow/src/V2/LoggingConfig.php | 79 + .../cloud-dialogflow/src/V2/Message.php | 399 ++ .../src/V2/MessageAnnotation.php | 109 + .../cloud-dialogflow/src/V2/MessageEntry.php | 187 + .../src/V2/MessageEntry/Role.php | 70 + .../src/V2/NotificationConfig.php | 149 + .../V2/NotificationConfig/MessageFormat.php | 62 + .../src/V2/OriginalDetectIntentRequest.php | 202 + .../cloud-dialogflow/src/V2/OutputAudio.php | 115 + .../src/V2/OutputAudioConfig.php | 163 + .../src/V2/OutputAudioEncoding.php | 93 + .../cloud-dialogflow/src/V2/Participant.php | 387 ++ .../src/V2/Participant/Role.php | 70 + .../cloud-dialogflow/src/V2/QueryInput.php | 148 + .../src/V2/QueryParameters.php | 461 ++ .../cloud-dialogflow/src/V2/QueryResult.php | 847 ++++ .../src/V2/ReloadDocumentRequest.php | 225 + .../src/V2/RestoreAgentRequest.php | 165 + .../src/V2/SearchAgentsRequest.php | 159 + .../src/V2/SearchAgentsResponse.php | 110 + .../src/V2/SearchKnowledgeAnswer.php | 181 + .../V2/SearchKnowledgeAnswer/AnswerSource.php | 180 + .../V2/SearchKnowledgeAnswer/AnswerType.php | 69 + .../src/V2/SearchKnowledgeRequest.php | 516 ++ .../V2/SearchKnowledgeRequest/QuerySource.php | 67 + .../SearchKnowledgeRequest/SearchConfig.php | 130 + .../SearchConfig/BoostSpecs.php | 114 + .../SearchConfig/BoostSpecs/BoostSpec.php | 83 + .../BoostSpec/ConditionBoostSpec.php | 230 + .../ConditionBoostSpec/BoostControlSpec.php | 209 + .../BoostControlSpec/AttributeType.php | 71 + .../BoostControlSpec/ControlPoint.php | 128 + .../BoostControlSpec/InterpolationType.php | 57 + .../SearchConfig/FilterSpecs.php | 122 + .../src/V2/SearchKnowledgeResponse.php | 106 + .../cloud-dialogflow/src/V2/Sentiment.php | 112 + .../src/V2/SentimentAnalysisRequestConfig.php | 75 + .../src/V2/SentimentAnalysisResult.php | 89 + .../src/V2/SessionEntityType.php | 181 + .../SessionEntityType/EntityOverrideMode.php | 71 + .../src/V2/SetAgentRequest.php | 135 + ...ggestionFeatureConfigOperationMetadata.php | 193 + .../V2/SetSuggestionFeatureConfigRequest.php | 194 + .../src/V2/SmartReplyAnswer.php | 155 + .../src/V2/SmartReplyMetrics.php | 143 + .../src/V2/SmartReplyMetrics/TopNMetrics.php | 122 + .../src/V2/SmartReplyModelMetadata.php | 71 + .../cloud-dialogflow/src/V2/SpeechContext.php | 162 + .../src/V2/SpeechModelVariant.php | 92 + .../src/V2/SpeechToTextConfig.php | 474 ++ .../src/V2/SpeechWordInfo.php | 225 + .../src/V2/SsmlVoiceGender.php | 70 + .../src/V2/StreamingAnalyzeContentRequest.php | 697 +++ .../V2/StreamingAnalyzeContentResponse.php | 534 ++ .../src/V2/StreamingDetectIntentRequest.php | 523 ++ .../src/V2/StreamingDetectIntentResponse.php | 377 ++ .../src/V2/StreamingRecognitionResult.php | 363 ++ .../MessageType.php | 69 + .../src/V2/SuggestArticlesRequest.php | 228 + .../src/V2/SuggestArticlesResponse.php | 168 + .../V2/SuggestConversationSummaryRequest.php | 232 + .../V2/SuggestConversationSummaryResponse.php | 178 + .../Summary.php | 186 + .../src/V2/SuggestFaqAnswersRequest.php | 224 + .../src/V2/SuggestFaqAnswersResponse.php | 168 + .../src/V2/SuggestKnowledgeAssistRequest.php | 214 + .../src/V2/SuggestKnowledgeAssistResponse.php | 170 + .../src/V2/SuggestSmartRepliesRequest.php | 232 + .../src/V2/SuggestSmartRepliesResponse.php | 176 + .../src/V2/SuggestionFeature.php | 69 + .../src/V2/SuggestionFeature/Type.php | 90 + .../src/V2/SuggestionInput.php | 87 + .../src/V2/SuggestionResult.php | 249 + .../src/V2/SummarizationContext.php | 185 + .../src/V2/SummarizationSection.php | 139 + .../src/V2/SummarizationSection/Type.php | 123 + .../src/V2/SummarizationSectionList.php | 67 + .../src/V2/SummarySuggestion.php | 67 + .../V2/SummarySuggestion/SummarySection.php | 102 + .../src/V2/SynthesizeSpeechConfig.php | 269 + .../cloud-dialogflow/src/V2/TelephonyDtmf.php | 160 + .../src/V2/TelephonyDtmfEvents.php | 67 + .../cloud-dialogflow/src/V2/TextInput.php | 118 + .../src/V2/TextToSpeechSettings.php | 197 + .../src/V2/TrainAgentRequest.php | 87 + .../cloud-dialogflow/src/V2/TriggerEvent.php | 77 + ...ployConversationModelOperationMetadata.php | 121 + .../V2/UndeployConversationModelRequest.php | 72 + .../src/V2/UpdateAnswerRecordRequest.php | 137 + .../src/V2/UpdateContextRequest.php | 137 + .../V2/UpdateConversationProfileRequest.php | 137 + .../src/V2/UpdateDocumentRequest.php | 147 + .../src/V2/UpdateEntityTypeRequest.php | 204 + .../src/V2/UpdateEnvironmentRequest.php | 168 + .../src/V2/UpdateFulfillmentRequest.php | 142 + .../src/V2/UpdateGeneratorRequest.php | 141 + .../src/V2/UpdateIntentRequest.php | 246 + .../src/V2/UpdateKnowledgeBaseRequest.php | 147 + .../src/V2/UpdateParticipantRequest.php | 137 + .../src/V2/UpdateSessionEntityTypeRequest.php | 150 + .../src/V2/UpdateVersionRequest.php | 158 + .../src/V2/ValidationError.php | 183 + .../src/V2/ValidationError/Severity.php | 76 + .../src/V2/ValidationResult.php | 67 + .../cloud-dialogflow/src/V2/Version.php | 254 + .../src/V2/Version/VersionStatus.php | 69 + .../src/V2/VoiceSelectionParams.php | 129 + .../src/V2/WebhookRequest.php | 217 + .../src/V2/WebhookResponse.php | 430 ++ .../V2/resources/agents_client_config.json | 89 + .../V2/resources/agents_descriptor_config.php | 214 + .../resources/agents_rest_client_config.php | 270 + .../answer_records_client_config.json | 54 + .../answer_records_descriptor_config.php | 118 + .../answer_records_rest_client_config.php | 149 + .../V2/resources/contexts_client_config.json | 74 + .../resources/contexts_descriptor_config.php | 155 + .../resources/contexts_rest_client_config.php | 265 + .../conversation_datasets_client_config.json | 69 + ...onversation_datasets_descriptor_config.php | 155 + ...nversation_datasets_rest_client_config.php | 182 + .../conversation_models_client_config.json | 89 + .../conversation_models_descriptor_config.php | 233 + ...conversation_models_rest_client_config.php | 260 + .../conversation_profiles_client_config.json | 79 + ...onversation_profiles_descriptor_config.php | 191 + ...nversation_profiles_rest_client_config.php | 240 + .../conversations_client_config.json | 99 + .../conversations_descriptor_config.php | 248 + .../conversations_rest_client_config.php | 311 ++ .../V2/resources/documents_client_config.json | 84 + .../resources/documents_descriptor_config.php | 217 + .../documents_rest_client_config.php | 280 ++ ...encryption_spec_service_client_config.json | 54 + ...ryption_spec_service_descriptor_config.php | 97 + ...yption_spec_service_rest_client_config.php | 130 + .../resources/entity_types_client_config.json | 94 + .../entity_types_descriptor_config.php | 234 + .../entity_types_rest_client_config.php | 291 ++ .../resources/environments_client_config.json | 74 + .../environments_descriptor_config.php | 165 + .../environments_rest_client_config.php | 225 + .../resources/fulfillments_client_config.json | 54 + .../fulfillments_descriptor_config.php | 92 + .../fulfillments_rest_client_config.php | 149 + .../resources/generators_client_config.json | 69 + .../generators_descriptor_config.php | 135 + .../generators_rest_client_config.php | 177 + .../V2/resources/intents_client_config.json | 79 + .../resources/intents_descriptor_config.php | 187 + .../resources/intents_rest_client_config.php | 242 + .../knowledge_bases_client_config.json | 69 + .../knowledge_bases_descriptor_config.php | 138 + .../knowledge_bases_rest_client_config.php | 218 + .../resources/participants_client_config.json | 114 + .../participants_descriptor_config.php | 213 + .../participants_rest_client_config.php | 280 ++ .../session_entity_types_client_config.json | 69 + ...session_entity_types_descriptor_config.php | 143 + ...ession_entity_types_rest_client_config.php | 240 + .../V2/resources/sessions_client_config.json | 74 + .../resources/sessions_descriptor_config.php | 99 + .../resources/sessions_rest_client_config.php | 135 + .../V2/resources/versions_client_config.json | 69 + .../resources/versions_descriptor_config.php | 139 + .../resources/versions_rest_client_config.php | 202 + vendor/google/common-protos/CHANGELOG.md | 87 + .../google/common-protos/CODE_OF_CONDUCT.md | 43 + vendor/google/common-protos/CONTRIBUTING.md | 45 + vendor/google/common-protos/LICENSE | 201 + vendor/google/common-protos/README.md | 41 + vendor/google/common-protos/SECURITY.md | 7 + vendor/google/common-protos/VERSION | 1 + vendor/google/common-protos/composer.json | 41 + .../metadata/Api/Annotations.php | 29 + .../common-protos/metadata/Api/Auth.php | Bin 0 -> 1303 bytes .../common-protos/metadata/Api/Backend.php | Bin 0 -> 1291 bytes .../common-protos/metadata/Api/Billing.php | 33 + .../common-protos/metadata/Api/Client.php | Bin 0 -> 4081 bytes .../metadata/Api/ConfigChange.php | Bin 0 -> 960 bytes .../common-protos/metadata/Api/Consumer.php | Bin 0 -> 909 bytes .../common-protos/metadata/Api/Context.php | 36 + .../common-protos/metadata/Api/Control.php | 32 + .../metadata/Api/Distribution.php | Bin 0 -> 1699 bytes .../metadata/Api/Documentation.php | 43 + .../common-protos/metadata/Api/Endpoint.php | 34 + .../metadata/Api/ErrorReason.php | Bin 0 -> 1648 bytes .../metadata/Api/FieldBehavior.php | Bin 0 -> 915 bytes .../common-protos/metadata/Api/FieldInfo.php | Bin 0 -> 946 bytes .../common-protos/metadata/Api/Http.php | Bin 0 -> 1054 bytes .../common-protos/metadata/Api/Httpbody.php | 34 + .../common-protos/metadata/Api/Label.php | Bin 0 -> 810 bytes .../metadata/Api/LaunchStage.php | Bin 0 -> 811 bytes .../google/common-protos/metadata/Api/Log.php | 34 + .../common-protos/metadata/Api/Logging.php | 34 + .../common-protos/metadata/Api/Metric.php | Bin 0 -> 2077 bytes .../metadata/Api/MonitoredResource.php | 50 + .../common-protos/metadata/Api/Monitoring.php | 35 + .../common-protos/metadata/Api/Policy.php | 35 + .../common-protos/metadata/Api/Quota.php | 55 + .../common-protos/metadata/Api/Resource.php | Bin 0 -> 1132 bytes .../common-protos/metadata/Api/Routing.php | 33 + .../common-protos/metadata/Api/Service.php | 80 + .../common-protos/metadata/Api/SourceInfo.php | 32 + .../metadata/Api/SystemParameter.php | 38 + .../common-protos/metadata/Api/Usage.php | 37 + .../common-protos/metadata/Api/Visibility.php | 34 + .../metadata/Cloud/ExtendedOperations.php | Bin 0 -> 862 bytes .../metadata/Cloud/Location/Locations.php | 53 + .../metadata/Google/Iam/V1/IamPolicy.php | 53 + .../Google/Iam/V1/Logging/AuditData.php | 30 + .../metadata/Google/Iam/V1/Options.php | 29 + .../metadata/Google/Iam/V1/Policy.php | Bin 0 -> 1757 bytes .../Google/Iam/V1/ResourcePolicyMember.php | 31 + .../Google/Logging/Type/HttpRequest.php | 46 + .../Google/Logging/Type/LogSeverity.php | Bin 0 -> 948 bytes .../metadata/Iam/V1/IamPolicy.php | 53 + .../metadata/Iam/V1/Logging/AuditData.php | 30 + .../common-protos/metadata/Iam/V1/Options.php | 29 + .../common-protos/metadata/Iam/V1/Policy.php | Bin 0 -> 1757 bytes .../metadata/Iam/V1/ResourcePolicyMember.php | 31 + .../metadata/Logging/Type/HttpRequest.php | 46 + .../metadata/Logging/Type/LogSeverity.php | Bin 0 -> 948 bytes .../common-protos/metadata/Rpc/Code.php | Bin 0 -> 957 bytes .../metadata/Rpc/Context/AttributeContext.php | 109 + .../metadata/Rpc/Context/AuditContext.php | 34 + .../metadata/Rpc/ErrorDetails.php | Bin 0 -> 2068 bytes .../common-protos/metadata/Rpc/Status.php | 33 + .../metadata/Type/CalendarPeriod.php | Bin 0 -> 840 bytes .../common-protos/metadata/Type/Color.php | 34 + .../common-protos/metadata/Type/Date.php | 31 + .../common-protos/metadata/Type/Datetime.php | Bin 0 -> 1004 bytes .../common-protos/metadata/Type/Dayofweek.php | Bin 0 -> 814 bytes .../common-protos/metadata/Type/Decimal.php | 29 + .../common-protos/metadata/Type/Expr.php | 33 + .../common-protos/metadata/Type/Fraction.php | 30 + .../common-protos/metadata/Type/Interval.php | 32 + .../common-protos/metadata/Type/Latlng.php | 30 + .../metadata/Type/LocalizedText.php | 30 + .../common-protos/metadata/Type/Money.php | 32 + .../common-protos/metadata/Type/Month.php | Bin 0 -> 834 bytes .../metadata/Type/PhoneNumber.php | Bin 0 -> 872 bytes .../metadata/Type/PostalAddress.php | 41 + .../metadata/Type/Quaternion.php | 33 + .../common-protos/metadata/Type/Timeofday.php | 32 + vendor/google/common-protos/renovate.json | 7 + .../google/common-protos/src/Api/Advice.php | 72 + .../common-protos/src/Api/AuthProvider.php | 419 ++ .../common-protos/src/Api/AuthRequirement.php | 159 + .../common-protos/src/Api/Authentication.php | 120 + .../src/Api/AuthenticationRule.php | 197 + .../google/common-protos/src/Api/Backend.php | 71 + .../common-protos/src/Api/BackendRule.php | 527 ++ .../src/Api/BackendRule/PathTranslation.php | 93 + .../google/common-protos/src/Api/Billing.php | 107 + .../src/Api/Billing/BillingDestination.php | 119 + .../common-protos/src/Api/ChangeType.php | 72 + .../src/Api/ClientLibraryDestination.php | 63 + .../src/Api/ClientLibraryOrganization.php | 97 + .../src/Api/ClientLibrarySettings.php | 499 ++ .../src/Api/CommonLanguageSettings.php | 156 + .../common-protos/src/Api/ConfigChange.php | 251 + .../google/common-protos/src/Api/Context.php | 98 + .../common-protos/src/Api/ContextRule.php | 228 + .../google/common-protos/src/Api/Control.php | 112 + .../common-protos/src/Api/CppSettings.php | 77 + .../src/Api/CustomHttpPattern.php | 101 + .../common-protos/src/Api/Distribution.php | 390 ++ .../src/Api/Distribution/BucketOptions.php | 155 + .../Distribution/BucketOptions/Explicit.php | 75 + .../BucketOptions/Exponential.php | 142 + .../Api/Distribution/BucketOptions/Linear.php | 142 + .../src/Api/Distribution/Exemplar.php | 178 + .../src/Api/Distribution/Range.php | 102 + .../common-protos/src/Api/Documentation.php | 362 ++ .../src/Api/DocumentationRule.php | 171 + .../common-protos/src/Api/DotnetSettings.php | 307 ++ .../google/common-protos/src/Api/Endpoint.php | 231 + .../common-protos/src/Api/ErrorReason.php | 690 +++ .../common-protos/src/Api/FieldBehavior.php | 133 + .../common-protos/src/Api/FieldInfo.php | 117 + .../src/Api/FieldInfo/Format.php | 90 + .../common-protos/src/Api/FieldPolicy.php | 181 + .../common-protos/src/Api/GoSettings.php | 135 + vendor/google/common-protos/src/Api/Http.php | 123 + .../google/common-protos/src/Api/HttpBody.php | 168 + .../google/common-protos/src/Api/HttpRule.php | 651 +++ .../common-protos/src/Api/JavaSettings.php | 221 + .../common-protos/src/Api/JwtLocation.php | 199 + .../common-protos/src/Api/LabelDescriptor.php | 135 + .../src/Api/LabelDescriptor/ValueType.php | 62 + .../common-protos/src/Api/LaunchStage.php | 118 + .../common-protos/src/Api/LogDescriptor.php | 203 + .../google/common-protos/src/Api/Logging.php | 151 + .../src/Api/Logging/LoggingDestination.php | 123 + .../common-protos/src/Api/MethodPolicy.php | 121 + .../common-protos/src/Api/MethodSettings.php | 245 + .../src/Api/MethodSettings/LongRunning.php | 224 + .../google/common-protos/src/Api/Metric.php | 114 + .../src/Api/MetricDescriptor.php | 831 ++++ .../MetricDescriptorMetadata.php | 225 + .../TimeSeriesResourceHierarchyLevel.php | 69 + .../src/Api/MetricDescriptor/MetricKind.php | 75 + .../src/Api/MetricDescriptor/ValueType.php | 92 + .../common-protos/src/Api/MetricRule.php | 126 + .../src/Api/MonitoredResource.php | 147 + .../src/Api/MonitoredResourceDescriptor.php | 309 ++ .../src/Api/MonitoredResourceMetadata.php | 148 + .../common-protos/src/Api/Monitoring.php | 190 + .../Api/Monitoring/MonitoringDestination.php | 119 + .../common-protos/src/Api/NodeSettings.php | 77 + .../src/Api/OAuthRequirements.php | 96 + vendor/google/common-protos/src/Api/Page.php | 200 + .../common-protos/src/Api/PhpSettings.php | 77 + .../src/Api/ProjectProperties.php | 80 + .../google/common-protos/src/Api/Property.php | 142 + .../src/Api/Property/PropertyType.php | 76 + .../common-protos/src/Api/Publishing.php | 453 ++ .../common-protos/src/Api/PythonSettings.php | 121 + .../PythonSettings/ExperimentalFeatures.php | 174 + vendor/google/common-protos/src/Api/Quota.php | 144 + .../common-protos/src/Api/QuotaLimit.php | 527 ++ .../src/Api/ResourceDescriptor.php | 495 ++ .../src/Api/ResourceDescriptor/History.php | 66 + .../src/Api/ResourceDescriptor/Style.php | 60 + .../src/Api/ResourceReference.php | 190 + .../src/Api/RoutingParameter.php | 281 ++ .../common-protos/src/Api/RoutingRule.php | 353 ++ .../common-protos/src/Api/RubySettings.php | 77 + .../src/Api/SelectiveGapicGeneration.php | 126 + .../google/common-protos/src/Api/Service.php | 1246 +++++ .../common-protos/src/Api/SourceInfo.php | 67 + .../common-protos/src/Api/SystemParameter.php | 145 + .../src/Api/SystemParameterRule.php | 130 + .../src/Api/SystemParameters.php | 155 + .../common-protos/src/Api/TypeReference.php | 91 + vendor/google/common-protos/src/Api/Usage.php | 191 + .../common-protos/src/Api/UsageRule.php | 180 + .../common-protos/src/Api/Visibility.php | 88 + .../common-protos/src/Api/VisibilityRule.php | 150 + .../src/Cloud/Iam/V1/AuditConfig.php | 155 + .../src/Cloud/Iam/V1/AuditConfigDelta.php | 202 + .../Cloud/Iam/V1/AuditConfigDelta/Action.php | 62 + .../src/Cloud/Iam/V1/AuditLogConfig.php | 129 + .../Cloud/Iam/V1/AuditLogConfig/LogType.php | 70 + .../src/Cloud/Iam/V1/Binding.php | 301 ++ .../src/Cloud/Iam/V1/BindingDelta.php | 200 + .../src/Cloud/Iam/V1/BindingDelta/Action.php | 62 + .../src/Cloud/Iam/V1/GetIamPolicyRequest.php | 119 + .../src/Cloud/Iam/V1/GetPolicyOptions.php | 119 + .../common-protos/src/Cloud/Iam/V1/Policy.php | 377 ++ .../src/Cloud/Iam/V1/PolicyDelta.php | 101 + .../src/Cloud/Iam/V1/ResourcePolicyMember.php | 142 + .../src/Cloud/Iam/V1/SetIamPolicyRequest.php | 183 + .../Iam/V1/TestIamPermissionsRequest.php | 117 + .../Iam/V1/TestIamPermissionsResponse.php | 71 + .../src/Cloud/Location/GetLocationRequest.php | 67 + .../Cloud/Location/ListLocationsRequest.php | 169 + .../Cloud/Location/ListLocationsResponse.php | 101 + .../src/Cloud/Location/Location.php | 229 + .../src/Cloud/Logging/Type/HttpRequest.php | 627 +++ .../src/Cloud/Logging/Type/LogSeverity.php | 119 + .../src/Cloud/OperationResponseMapping.php | 86 + .../src/Iam/V1/Logging/AuditData.php | 79 + .../common-protos/src/Rpc/BadRequest.php | 68 + .../src/Rpc/BadRequest/FieldViolation.php | 316 ++ vendor/google/common-protos/src/Rpc/Code.php | 243 + .../src/Rpc/Context/AttributeContext.php | 419 ++ .../src/Rpc/Context/AttributeContext/Api.php | 196 + .../src/Rpc/Context/AttributeContext/Auth.php | 356 ++ .../src/Rpc/Context/AttributeContext/Peer.php | 223 + .../Rpc/Context/AttributeContext/Request.php | 508 ++ .../Rpc/Context/AttributeContext/Resource.php | 614 +++ .../Rpc/Context/AttributeContext/Response.php | 249 + .../src/Rpc/Context/AuditContext.php | 247 + .../common-protos/src/Rpc/DebugInfo.php | 101 + .../common-protos/src/Rpc/ErrorInfo.php | 217 + vendor/google/common-protos/src/Rpc/Help.php | 70 + .../common-protos/src/Rpc/Help/Link.php | 102 + .../src/Rpc/LocalizedMessage.php | 110 + .../src/Rpc/PreconditionFailure.php | 70 + .../src/Rpc/PreconditionFailure/Violation.php | 160 + .../common-protos/src/Rpc/QuotaFailure.php | 75 + .../src/Rpc/QuotaFailure/Violation.php | 501 ++ .../common-protos/src/Rpc/RequestInfo.php | 110 + .../common-protos/src/Rpc/ResourceInfo.php | 205 + .../common-protos/src/Rpc/RetryInfo.php | 87 + .../google/common-protos/src/Rpc/Status.php | 160 + .../common-protos/src/Type/CalendarPeriod.php | 102 + .../google/common-protos/src/Type/Color.php | 360 ++ vendor/google/common-protos/src/Type/Date.php | 161 + .../common-protos/src/Type/DateTime.php | 393 ++ .../common-protos/src/Type/DayOfWeek.php | 96 + .../google/common-protos/src/Type/Decimal.php | 244 + vendor/google/common-protos/src/Type/Expr.php | 210 + .../common-protos/src/Type/Fraction.php | 105 + .../common-protos/src/Type/Interval.php | 141 + .../google/common-protos/src/Type/LatLng.php | 105 + .../common-protos/src/Type/LocalizedText.php | 109 + .../google/common-protos/src/Type/Money.php | 159 + .../google/common-protos/src/Type/Month.php | 131 + .../common-protos/src/Type/PhoneNumber.php | 230 + .../src/Type/PhoneNumber/ShortCode.php | 125 + .../common-protos/src/Type/PostalAddress.php | 628 +++ .../common-protos/src/Type/Quaternion.php | 211 + .../common-protos/src/Type/TimeOfDay.php | 180 + .../common-protos/src/Type/TimeZone.php | 102 + vendor/google/gax/.repo-metadata.json | 7 + vendor/google/gax/CHANGELOG.md | 371 ++ vendor/google/gax/CODE_OF_CONDUCT.md | 43 + vendor/google/gax/LICENSE | 25 + vendor/google/gax/README.md | 97 + vendor/google/gax/SECURITY.md | 7 + vendor/google/gax/VERSION | 1 + vendor/google/gax/composer.json | 48 + .../gax/metadata/ApiCore/Testing/Mocks.php | Bin 0 -> 1988 bytes .../Google/ApiCore/Tests/Unit/Example.php | 28 + vendor/google/gax/metadata/README.md | 6 + vendor/google/gax/phpstan.neon.dist | 5 + vendor/google/gax/phpunit.xml.dist | 16 + vendor/google/gax/renovate.json | 7 + vendor/google/gax/src/AgentHeader.php | 132 + vendor/google/gax/src/ApiException.php | 345 ++ .../gax/src/ApiKeyHeaderCredentials.php | 95 + vendor/google/gax/src/ApiStatus.php | 171 + vendor/google/gax/src/ArrayTrait.php | 156 + vendor/google/gax/src/BidiStream.php | 217 + vendor/google/gax/src/Call.php | 131 + vendor/google/gax/src/ClientOptionsTrait.php | 400 ++ vendor/google/gax/src/ClientStream.php | 143 + vendor/google/gax/src/CredentialsWrapper.php | 359 ++ vendor/google/gax/src/FixedSizeCollection.php | 190 + vendor/google/gax/src/GPBLabel.php | 43 + vendor/google/gax/src/GPBType.php | 58 + vendor/google/gax/src/GapicClientTrait.php | 976 ++++ vendor/google/gax/src/GrpcSupportTrait.php | 63 + .../gax/src/HeaderCredentialsInterface.php | 48 + .../gax/src/InsecureCredentialsWrapper.php | 57 + .../google/gax/src/InsecureRequestBuilder.php | 33 + .../CredentialsWrapperMiddleware.php | 65 + .../src/Middleware/FixedHeaderMiddleware.php | 72 + .../src/Middleware/MiddlewareInterface.php | 91 + .../src/Middleware/OperationsMiddleware.php | 73 + .../Middleware/OptionsFilterMiddleware.php | 65 + .../gax/src/Middleware/PagedMiddleware.php | 78 + .../RequestAutoPopulationMiddleware.php | 104 + .../Middleware/ResponseMetadataMiddleware.php | 71 + .../gax/src/Middleware/RetryMiddleware.php | 199 + vendor/google/gax/src/OperationResponse.php | 539 ++ vendor/google/gax/src/Options/CallOptions.php | 160 + .../google/gax/src/Options/ClientOptions.php | 419 ++ .../gax/src/Options/OptionsInterface.php | 38 + .../google/gax/src/Options/OptionsTrait.php | 92 + .../gax/src/Options/TransportOptions.php | 111 + .../GrpcFallbackTransportOptions.php | 125 + .../TransportOptions/GrpcTransportOptions.php | 165 + .../TransportOptions/RestTransportOptions.php | 142 + vendor/google/gax/src/Page.php | 271 + .../gax/src/PageStreamingDescriptor.php | 178 + vendor/google/gax/src/PagedListResponse.php | 197 + vendor/google/gax/src/PathTemplate.php | 113 + vendor/google/gax/src/PollingTrait.php | 97 + vendor/google/gax/src/RequestBuilder.php | 290 ++ .../gax/src/RequestParamsHeaderDescriptor.php | 78 + vendor/google/gax/src/ResourceHelperTrait.php | 108 + .../AbsoluteResourceTemplate.php | 146 + .../gax/src/ResourceTemplate/Parser.php | 227 + .../RelativeResourceTemplate.php | 390 ++ .../ResourceTemplateInterface.php | 91 + .../gax/src/ResourceTemplate/Segment.php | 195 + vendor/google/gax/src/RetrySettings.php | 547 +++ vendor/google/gax/src/Serializer.php | 541 ++ vendor/google/gax/src/ServerStream.php | 128 + .../gax/src/ServerStreamingCallInterface.php | 95 + vendor/google/gax/src/ServiceAddressTrait.php | 64 + .../google/gax/src/Testing/GeneratedTest.php | 102 + .../Testing/MessageAwareArrayComparator.php | 32 + .../gax/src/Testing/MessageAwareExporter.php | 47 + .../gax/src/Testing/MockBidiStreamingCall.php | 168 + .../src/Testing/MockClientStreamingCall.php | 111 + .../gax/src/Testing/MockGrpcTransport.php | 142 + vendor/google/gax/src/Testing/MockRequest.php | 86 + .../gax/src/Testing/MockRequestBody.php | 647 +++ .../google/gax/src/Testing/MockResponse.php | 166 + .../src/Testing/MockServerStreamingCall.php | 98 + vendor/google/gax/src/Testing/MockStatus.php | 53 + .../google/gax/src/Testing/MockStubTrait.php | 296 ++ .../google/gax/src/Testing/MockTransport.php | 114 + .../google/gax/src/Testing/MockUnaryCall.php | 83 + .../Testing/ProtobufGPBEmptyComparator.php | 61 + .../src/Testing/ProtobufMessageComparator.php | 79 + .../gax/src/Testing/ReceivedRequest.php | 79 + .../gax/src/Testing/SerializationTrait.php | 72 + vendor/google/gax/src/Testing/mocks.proto | 46 + .../gax/src/Transport/Grpc/ForwardingCall.php | 90 + .../Grpc/ForwardingServerStreamingCall.php | 65 + .../Transport/Grpc/ForwardingUnaryCall.php | 56 + .../Grpc/ServerStreamingCallWrapper.php | 123 + .../Grpc/UnaryInterceptorInterface.php | 61 + .../src/Transport/GrpcFallbackTransport.php | 223 + .../gax/src/Transport/GrpcTransport.php | 366 ++ .../src/Transport/HttpUnaryTransportTrait.php | 171 + .../src/Transport/Rest/JsonStreamDecoder.php | 238 + .../Rest/RestServerStreamingCall.php | 197 + .../gax/src/Transport/RestTransport.php | 283 ++ .../gax/src/Transport/TransportInterface.php | 91 + vendor/google/gax/src/UriTrait.php | 69 + vendor/google/gax/src/ValidationException.php | 41 + vendor/google/gax/src/ValidationTrait.php | 81 + vendor/google/gax/src/Version.php | 77 + .../grpc-gcp/.github/release-please.yml | 3 + .../grpc-gcp/.github/workflows/tests.yml | 30 + vendor/google/grpc-gcp/.gitmodules | 3 + vendor/google/grpc-gcp/.php_cs.dist | 15 + vendor/google/grpc-gcp/LICENSE | 202 + vendor/google/grpc-gcp/README.md | 14 + .../cloudprober/bins/opt/grpc_php_plugin | Bin 0 -> 2295352 bytes .../grpc-gcp/cloudprober/cloudprober.cfg | 31 + vendor/google/grpc-gcp/cloudprober/codegen.sh | 13 + .../google/grpc-gcp/cloudprober/composer.json | 9 + .../grpc_gpc_prober/firestore_probes.php | 33 + .../cloudprober/grpc_gpc_prober/prober.php | 102 + .../grpc_gpc_prober/spanner_probes.php | 307 ++ .../grpc_gpc_prober/stackdriver_util.php | 64 + vendor/google/grpc-gcp/composer.json | 24 + .../grpc-gcp/doc/gRPC-client-user-guide.md | 217 + vendor/google/grpc-gcp/src/ChannelRef.php | 98 + vendor/google/grpc-gcp/src/Config.php | 113 + .../src/CreatedByDeserializeCheck.php | 84 + .../grpc-gcp/src/GCPBidiStreamingCall.php | 108 + vendor/google/grpc-gcp/src/GCPCallInvoker.php | 86 + .../grpc-gcp/src/GCPClientStreamCall.php | 76 + .../grpc-gcp/src/GCPServerStreamCall.php | 89 + vendor/google/grpc-gcp/src/GCPUnaryCall.php | 70 + vendor/google/grpc-gcp/src/GcpBaseCall.php | 223 + .../grpc-gcp/src/GcpExtensionChannel.php | 281 ++ .../src/generated/GPBMetadata/GrpcGcp.php | 39 + .../src/generated/Grpc/Gcp/AffinityConfig.php | 87 + .../Grpc/Gcp/AffinityConfig_Command.php | 38 + .../src/generated/Grpc/Gcp/ApiConfig.php | 84 + .../generated/Grpc/Gcp/ChannelPoolConfig.php | 122 + .../src/generated/Grpc/Gcp/MethodConfig.php | 90 + vendor/google/grpc-gcp/src/grpc_gcp.proto | 70 + vendor/google/longrunning/.gitattributes | 6 + vendor/google/longrunning/CODE_OF_CONDUCT.md | 43 + vendor/google/longrunning/CONTRIBUTING.md | 10 + vendor/google/longrunning/LICENSE | 202 + vendor/google/longrunning/README.md | 44 + vendor/google/longrunning/SECURITY.md | 7 + vendor/google/longrunning/VERSION | 1 + vendor/google/longrunning/composer.json | 26 + .../metadata/Longrunning/Operations.php | Bin 0 -> 2595 bytes vendor/google/longrunning/metadata/README.md | 6 + .../Gapic/OperationsGapicClient.php | 16 + .../ApiCore/LongRunning/OperationsClient.php | 15 + .../LongRunning/CancelOperationRequest.php | 81 + .../LongRunning/Client/OperationsClient.php | 344 ++ .../LongRunning/DeleteOperationRequest.php | 81 + .../Gapic/OperationsGapicClient.php | 476 ++ .../src/LongRunning/GetOperationRequest.php | 81 + .../src/LongRunning/ListOperationsRequest.php | 185 + .../LongRunning/ListOperationsResponse.php | 102 + .../longrunning/src/LongRunning/Operation.php | 270 + .../src/LongRunning/OperationInfo.php | 144 + .../src/LongRunning/OperationsClient.php | 36 + .../src/LongRunning/OperationsGrpcClient.php | 149 + .../src/LongRunning/WaitOperationRequest.php | 120 + .../resources/operations_client_config.json | 59 + .../operations_descriptor_config.php | 88 + .../operations_rest_client_config.php | 76 + vendor/google/protobuf/LICENSE | 29 + vendor/google/protobuf/README.md | 2 + vendor/google/protobuf/composer.json | 24 + .../src/GPBMetadata/Google/Protobuf/Any.php | 25 + .../src/GPBMetadata/Google/Protobuf/Api.php | 27 + .../GPBMetadata/Google/Protobuf/Duration.php | 25 + .../GPBMetadata/Google/Protobuf/FieldMask.php | 25 + .../GPBMetadata/Google/Protobuf/GPBEmpty.php | 25 + .../Google/Protobuf/Internal/Descriptor.php | 452 ++ .../Google/Protobuf/SourceContext.php | 25 + .../GPBMetadata/Google/Protobuf/Struct.php | 25 + .../GPBMetadata/Google/Protobuf/Timestamp.php | 25 + .../src/GPBMetadata/Google/Protobuf/Type.php | 27 + .../GPBMetadata/Google/Protobuf/Wrappers.php | 25 + .../protobuf/src/Google/Protobuf/Any.php | 263 + .../protobuf/src/Google/Protobuf/Api.php | 399 ++ .../src/Google/Protobuf/BoolValue.php | 71 + .../src/Google/Protobuf/BytesValue.php | 71 + .../src/Google/Protobuf/Descriptor.php | 85 + .../src/Google/Protobuf/DescriptorPool.php | 53 + .../src/Google/Protobuf/DoubleValue.php | 71 + .../protobuf/src/Google/Protobuf/Duration.php | 174 + .../protobuf/src/Google/Protobuf/Enum.php | 252 + .../src/Google/Protobuf/EnumDescriptor.php | 56 + .../src/Google/Protobuf/EnumValue.php | 140 + .../Google/Protobuf/EnumValueDescriptor.php | 41 + .../protobuf/src/Google/Protobuf/Field.php | 386 ++ .../src/Google/Protobuf/Field/Cardinality.php | 69 + .../src/Google/Protobuf/Field/Kind.php | 174 + .../src/Google/Protobuf/FieldDescriptor.php | 139 + .../src/Google/Protobuf/FieldMask.php | 218 + .../src/Google/Protobuf/Field_Cardinality.php | 16 + .../src/Google/Protobuf/Field_Kind.php | 16 + .../src/Google/Protobuf/FloatValue.php | 71 + .../protobuf/src/Google/Protobuf/GPBEmpty.php | 39 + .../src/Google/Protobuf/Int32Value.php | 71 + .../src/Google/Protobuf/Int64Value.php | 71 + .../src/Google/Protobuf/Internal/AnyBase.php | 86 + .../Protobuf/Internal/CodedInputStream.php | 358 ++ .../Protobuf/Internal/CodedOutputStream.php | 143 + .../Google/Protobuf/Internal/Descriptor.php | 213 + .../Protobuf/Internal/DescriptorPool.php | 174 + .../Protobuf/Internal/DescriptorProto.php | 381 ++ .../DescriptorProto/ExtensionRange.php | 159 + .../DescriptorProto/ReservedRange.php | 126 + .../src/Google/Protobuf/Internal/Edition.php | 122 + .../Protobuf/Internal/EnumBuilderContext.php | 40 + .../Protobuf/Internal/EnumDescriptor.php | 116 + .../Protobuf/Internal/EnumDescriptorProto.php | 261 + .../EnumDescriptorProto/EnumReservedRange.php | 128 + .../Google/Protobuf/Internal/EnumOptions.php | 303 ++ .../Internal/EnumValueDescriptorProto.php | 147 + .../Protobuf/Internal/EnumValueOptions.php | 276 ++ .../Internal/ExtensionRangeOptions.php | 206 + .../ExtensionRangeOptions/Declaration.php | 278 ++ .../VerificationState.php | 53 + .../Google/Protobuf/Internal/FeatureSet.php | 337 ++ .../FeatureSet/EnforceNamingStyle.php | 54 + .../Protobuf/Internal/FeatureSet/EnumType.php | 54 + .../Internal/FeatureSet/FieldPresence.php | 59 + .../Internal/FeatureSet/JsonFormat.php | 54 + .../Internal/FeatureSet/MessageEncoding.php | 54 + .../FeatureSet/RepeatedFieldEncoding.php | 54 + .../Internal/FeatureSet/Utf8Validation.php | 54 + .../Internal/FeatureSet/VisibilityFeature.php | 34 + .../DefaultSymbolVisibility.php | 74 + .../Protobuf/Internal/FeatureSetDefaults.php | 162 + .../FeatureSetEditionDefault.php | 164 + .../Protobuf/Internal/FieldDescriptor.php | 308 ++ .../Internal/FieldDescriptorProto.php | 612 +++ .../Internal/FieldDescriptorProto/Label.php | 60 + .../Internal/FieldDescriptorProto/Type.php | 152 + .../Google/Protobuf/Internal/FieldOptions.php | 799 +++ .../Protobuf/Internal/FieldOptions/CType.php | 63 + .../Internal/FieldOptions/EditionDefault.php | 115 + .../Internal/FieldOptions/FeatureSupport.php | 236 + .../Protobuf/Internal/FieldOptions/JSType.php | 60 + .../Internal/FieldOptions/OptionRetention.php | 56 + .../FieldOptions/OptionTargetType.php | 93 + .../Protobuf/Internal/FileDescriptor.php | 66 + .../Protobuf/Internal/FileDescriptorProto.php | 596 +++ .../Protobuf/Internal/FileDescriptorSet.php | 64 + .../Google/Protobuf/Internal/FileOptions.php | 1138 +++++ .../Internal/FileOptions/OptimizeMode.php | 62 + .../Protobuf/Internal/GPBDecodeException.php | 24 + .../Google/Protobuf/Internal/GPBJsonWire.php | 291 ++ .../src/Google/Protobuf/Internal/GPBLabel.php | 17 + .../src/Google/Protobuf/Internal/GPBType.php | 32 + .../src/Google/Protobuf/Internal/GPBUtil.php | 644 +++ .../src/Google/Protobuf/Internal/GPBWire.php | 599 +++ .../Google/Protobuf/Internal/GPBWireType.php | 20 + .../Protobuf/Internal/GeneratedCodeInfo.php | 76 + .../Internal/GeneratedCodeInfo/Annotation.php | 253 + .../GeneratedCodeInfo/Annotation/Semantic.php | 63 + .../Internal/GetPublicDescriptorTrait.php | 18 + .../Internal/HasPublicDescriptorTrait.php | 20 + .../src/Google/Protobuf/Internal/MapEntry.php | 48 + .../src/Google/Protobuf/Internal/MapField.php | 275 ++ .../Google/Protobuf/Internal/MapFieldIter.php | 123 + .../src/Google/Protobuf/Internal/Message.php | 2108 ++++++++ .../Internal/MessageBuilderContext.php | 97 + .../Protobuf/Internal/MessageOptions.php | 527 ++ .../Internal/MethodDescriptorProto.php | 283 ++ .../Protobuf/Internal/MethodOptions.php | 217 + .../MethodOptions/IdempotencyLevel.php | 62 + .../Protobuf/Internal/OneofDescriptor.php | 64 + .../Internal/OneofDescriptorProto.php | 110 + .../Google/Protobuf/Internal/OneofField.php | 54 + .../Google/Protobuf/Internal/OneofOptions.php | 124 + .../Protobuf/Internal/RawInputStream.php | 27 + .../Protobuf/Internal/RepeatedField.php | 13 + .../Protobuf/Internal/RepeatedFieldIter.php | 102 + .../Internal/ServiceDescriptorProto.php | 137 + .../Protobuf/Internal/ServiceOptions.php | 180 + .../Protobuf/Internal/SourceCodeInfo.php | 231 + .../Internal/SourceCodeInfo/Location.php | 446 ++ .../Protobuf/Internal/SymbolVisibility.php | 60 + .../Protobuf/Internal/TimestampBase.php | 32 + .../Protobuf/Internal/UninterpretedOption.php | 301 ++ .../Internal/UninterpretedOption/NamePart.php | 114 + .../src/Google/Protobuf/ListValue.php | 69 + .../protobuf/src/Google/Protobuf/Method.php | 340 ++ .../protobuf/src/Google/Protobuf/Mixin.php | 167 + .../src/Google/Protobuf/NullValue.php | 50 + .../src/Google/Protobuf/OneofDescriptor.php | 64 + .../protobuf/src/Google/Protobuf/Option.php | 140 + .../src/Google/Protobuf/PrintOptions.php | 16 + .../src/Google/Protobuf/RepeatedField.php | 252 + .../src/Google/Protobuf/SourceContext.php | 73 + .../src/Google/Protobuf/StringValue.php | 71 + .../protobuf/src/Google/Protobuf/Struct.php | 74 + .../protobuf/src/Google/Protobuf/Syntax.php | 62 + .../src/Google/Protobuf/Timestamp.php | 187 + .../protobuf/src/Google/Protobuf/Type.php | 286 ++ .../src/Google/Protobuf/UInt32Value.php | 71 + .../src/Google/Protobuf/UInt64Value.php | 71 + .../protobuf/src/Google/Protobuf/Value.php | 245 + vendor/google/protobuf/src/phpdoc.dist.xml | 15 + vendor/grpc/grpc/LICENSE | 201 + vendor/grpc/grpc/MAINTAINERS.md | 16 + vendor/grpc/grpc/README.md | 9 + vendor/grpc/grpc/composer.json | 24 + vendor/grpc/grpc/etc/roots.pem | 4337 +++++++++++++++++ vendor/grpc/grpc/src/lib/AbstractCall.php | 147 + vendor/grpc/grpc/src/lib/BaseStub.php | 618 +++ .../grpc/grpc/src/lib/BidiStreamingCall.php | 105 + vendor/grpc/grpc/src/lib/CallInvoker.php | 32 + .../grpc/grpc/src/lib/ClientStreamingCall.php | 80 + .../grpc/grpc/src/lib/DefaultCallInvoker.php | 46 + vendor/grpc/grpc/src/lib/Interceptor.php | 91 + .../src/lib/Internal/InterceptorChannel.php | 76 + vendor/grpc/grpc/src/lib/MethodDescriptor.php | 52 + vendor/grpc/grpc/src/lib/RpcServer.php | 151 + vendor/grpc/grpc/src/lib/ServerCallReader.php | 52 + vendor/grpc/grpc/src/lib/ServerCallWriter.php | 109 + vendor/grpc/grpc/src/lib/ServerContext.php | 76 + .../grpc/grpc/src/lib/ServerStreamingCall.php | 100 + vendor/grpc/grpc/src/lib/Status.php | 55 + vendor/grpc/grpc/src/lib/UnaryCall.php | 87 + vendor/guzzlehttp/guzzle/CHANGELOG.md | 1683 +++++++ vendor/guzzlehttp/guzzle/LICENSE | 27 + vendor/guzzlehttp/guzzle/README.md | 94 + vendor/guzzlehttp/guzzle/UPGRADING.md | 1253 +++++ vendor/guzzlehttp/guzzle/composer.json | 131 + vendor/guzzlehttp/guzzle/package-lock.json | 6 + .../guzzlehttp/guzzle/src/BodySummarizer.php | 28 + .../guzzle/src/BodySummarizerInterface.php | 13 + vendor/guzzlehttp/guzzle/src/Client.php | 483 ++ .../guzzlehttp/guzzle/src/ClientInterface.php | 84 + vendor/guzzlehttp/guzzle/src/ClientTrait.php | 241 + .../guzzle/src/Cookie/CookieJar.php | 307 ++ .../guzzle/src/Cookie/CookieJarInterface.php | 80 + .../guzzle/src/Cookie/FileCookieJar.php | 101 + .../guzzle/src/Cookie/SessionCookieJar.php | 77 + .../guzzle/src/Cookie/SetCookie.php | 492 ++ .../src/Exception/BadResponseException.php | 39 + .../guzzle/src/Exception/ClientException.php | 10 + .../guzzle/src/Exception/ConnectException.php | 56 + .../guzzle/src/Exception/GuzzleException.php | 9 + .../Exception/InvalidArgumentException.php | 7 + .../guzzle/src/Exception/RequestException.php | 150 + .../guzzle/src/Exception/ServerException.php | 10 + .../Exception/TooManyRedirectsException.php | 7 + .../src/Exception/TransferException.php | 7 + .../guzzle/src/Handler/CurlFactory.php | 741 +++ .../src/Handler/CurlFactoryInterface.php | 25 + .../guzzle/src/Handler/CurlHandler.php | 49 + .../guzzle/src/Handler/CurlMultiHandler.php | 287 ++ .../guzzle/src/Handler/EasyHandle.php | 112 + .../guzzle/src/Handler/HeaderProcessor.php | 42 + .../guzzle/src/Handler/MockHandler.php | 212 + .../guzzlehttp/guzzle/src/Handler/Proxy.php | 51 + .../guzzle/src/Handler/StreamHandler.php | 634 +++ vendor/guzzlehttp/guzzle/src/HandlerStack.php | 275 ++ .../guzzle/src/MessageFormatter.php | 199 + .../guzzle/src/MessageFormatterInterface.php | 18 + vendor/guzzlehttp/guzzle/src/Middleware.php | 268 + vendor/guzzlehttp/guzzle/src/Pool.php | 125 + .../guzzle/src/PrepareBodyMiddleware.php | 105 + .../guzzle/src/RedirectMiddleware.php | 228 + .../guzzlehttp/guzzle/src/RequestOptions.php | 274 ++ .../guzzlehttp/guzzle/src/RetryMiddleware.php | 119 + .../guzzlehttp/guzzle/src/TransferStats.php | 133 + vendor/guzzlehttp/guzzle/src/Utils.php | 384 ++ vendor/guzzlehttp/guzzle/src/functions.php | 167 + .../guzzle/src/functions_include.php | 6 + vendor/guzzlehttp/promises/CHANGELOG.md | 187 + vendor/guzzlehttp/promises/LICENSE | 24 + vendor/guzzlehttp/promises/README.md | 559 +++ vendor/guzzlehttp/promises/composer.json | 58 + .../promises/src/AggregateException.php | 19 + .../promises/src/CancellationException.php | 12 + vendor/guzzlehttp/promises/src/Coroutine.php | 162 + vendor/guzzlehttp/promises/src/Create.php | 79 + vendor/guzzlehttp/promises/src/Each.php | 81 + .../guzzlehttp/promises/src/EachPromise.php | 248 + .../promises/src/FulfilledPromise.php | 89 + vendor/guzzlehttp/promises/src/Is.php | 40 + vendor/guzzlehttp/promises/src/Promise.php | 281 ++ .../promises/src/PromiseInterface.php | 91 + .../promises/src/PromisorInterface.php | 16 + .../promises/src/RejectedPromise.php | 95 + .../promises/src/RejectionException.php | 49 + vendor/guzzlehttp/promises/src/TaskQueue.php | 71 + .../promises/src/TaskQueueInterface.php | 24 + vendor/guzzlehttp/promises/src/Utils.php | 261 + vendor/guzzlehttp/psr7/CHANGELOG.md | 485 ++ vendor/guzzlehttp/psr7/LICENSE | 26 + vendor/guzzlehttp/psr7/README.md | 887 ++++ vendor/guzzlehttp/psr7/composer.json | 93 + vendor/guzzlehttp/psr7/src/AppendStream.php | 248 + vendor/guzzlehttp/psr7/src/BufferStream.php | 147 + vendor/guzzlehttp/psr7/src/CachingStream.php | 153 + vendor/guzzlehttp/psr7/src/DroppingStream.php | 49 + .../src/Exception/MalformedUriException.php | 14 + vendor/guzzlehttp/psr7/src/FnStream.php | 180 + vendor/guzzlehttp/psr7/src/Header.php | 134 + vendor/guzzlehttp/psr7/src/HttpFactory.php | 94 + vendor/guzzlehttp/psr7/src/InflateStream.php | 37 + vendor/guzzlehttp/psr7/src/LazyOpenStream.php | 49 + vendor/guzzlehttp/psr7/src/LimitStream.php | 157 + vendor/guzzlehttp/psr7/src/Message.php | 246 + vendor/guzzlehttp/psr7/src/MessageTrait.php | 261 + vendor/guzzlehttp/psr7/src/MimeType.php | 1259 +++++ .../guzzlehttp/psr7/src/MultipartStream.php | 165 + vendor/guzzlehttp/psr7/src/NoSeekStream.php | 28 + vendor/guzzlehttp/psr7/src/PumpStream.php | 179 + vendor/guzzlehttp/psr7/src/Query.php | 118 + vendor/guzzlehttp/psr7/src/Request.php | 159 + vendor/guzzlehttp/psr7/src/Response.php | 161 + vendor/guzzlehttp/psr7/src/Rfc7230.php | 23 + vendor/guzzlehttp/psr7/src/ServerRequest.php | 340 ++ vendor/guzzlehttp/psr7/src/Stream.php | 283 ++ .../psr7/src/StreamDecoratorTrait.php | 156 + vendor/guzzlehttp/psr7/src/StreamWrapper.php | 207 + vendor/guzzlehttp/psr7/src/UploadedFile.php | 211 + vendor/guzzlehttp/psr7/src/Uri.php | 743 +++ vendor/guzzlehttp/psr7/src/UriComparator.php | 52 + vendor/guzzlehttp/psr7/src/UriNormalizer.php | 220 + vendor/guzzlehttp/psr7/src/UriResolver.php | 211 + vendor/guzzlehttp/psr7/src/Utils.php | 477 ++ vendor/psr/cache/CHANGELOG.md | 16 + vendor/psr/cache/LICENSE.txt | 19 + vendor/psr/cache/README.md | 12 + vendor/psr/cache/composer.json | 25 + vendor/psr/cache/src/CacheException.php | 10 + vendor/psr/cache/src/CacheItemInterface.php | 105 + .../psr/cache/src/CacheItemPoolInterface.php | 138 + .../cache/src/InvalidArgumentException.php | 13 + vendor/psr/http-client/CHANGELOG.md | 31 + vendor/psr/http-client/LICENSE | 19 + vendor/psr/http-client/README.md | 12 + vendor/psr/http-client/composer.json | 30 + .../src/ClientExceptionInterface.php | 10 + .../psr/http-client/src/ClientInterface.php | 20 + .../src/NetworkExceptionInterface.php | 24 + .../src/RequestExceptionInterface.php | 24 + vendor/psr/http-factory/LICENSE | 21 + vendor/psr/http-factory/README.md | 12 + vendor/psr/http-factory/composer.json | 38 + .../src/RequestFactoryInterface.php | 18 + .../src/ResponseFactoryInterface.php | 18 + .../src/ServerRequestFactoryInterface.php | 24 + .../src/StreamFactoryInterface.php | 45 + .../src/UploadedFileFactoryInterface.php | 34 + .../http-factory/src/UriFactoryInterface.php | 17 + vendor/psr/http-message/CHANGELOG.md | 36 + vendor/psr/http-message/LICENSE | 19 + vendor/psr/http-message/README.md | 16 + vendor/psr/http-message/composer.json | 26 + .../psr/http-message/docs/PSR7-Interfaces.md | 130 + vendor/psr/http-message/docs/PSR7-Usage.md | 159 + .../psr/http-message/src/MessageInterface.php | 187 + .../psr/http-message/src/RequestInterface.php | 130 + .../http-message/src/ResponseInterface.php | 68 + .../src/ServerRequestInterface.php | 261 + .../psr/http-message/src/StreamInterface.php | 158 + .../src/UploadedFileInterface.php | 123 + vendor/psr/http-message/src/UriInterface.php | 324 ++ vendor/psr/log/LICENSE | 19 + vendor/psr/log/README.md | 58 + vendor/psr/log/composer.json | 26 + vendor/psr/log/src/AbstractLogger.php | 15 + .../psr/log/src/InvalidArgumentException.php | 7 + vendor/psr/log/src/LogLevel.php | 18 + vendor/psr/log/src/LoggerAwareInterface.php | 14 + vendor/psr/log/src/LoggerAwareTrait.php | 22 + vendor/psr/log/src/LoggerInterface.php | 98 + vendor/psr/log/src/LoggerTrait.php | 98 + vendor/psr/log/src/NullLogger.php | 26 + vendor/ralouphie/getallheaders/LICENSE | 21 + vendor/ralouphie/getallheaders/README.md | 27 + vendor/ralouphie/getallheaders/composer.json | 26 + .../getallheaders/src/getallheaders.php | 46 + vendor/ramsey/collection/LICENSE | 19 + vendor/ramsey/collection/README.md | 59 + vendor/ramsey/collection/SECURITY.md | 169 + vendor/ramsey/collection/composer.json | 108 + .../ramsey/collection/src/AbstractArray.php | 171 + .../collection/src/AbstractCollection.php | 365 ++ vendor/ramsey/collection/src/AbstractSet.php | 51 + .../ramsey/collection/src/ArrayInterface.php | 49 + vendor/ramsey/collection/src/Collection.php | 95 + .../collection/src/CollectionInterface.php | 253 + .../collection/src/DoubleEndedQueue.php | 166 + .../src/DoubleEndedQueueInterface.php | 313 ++ .../src/Exception/CollectionException.php | 21 + .../Exception/CollectionMismatchException.php | 24 + .../Exception/InvalidArgumentException.php | 24 + .../src/Exception/InvalidPropertyOrMethod.php | 26 + .../src/Exception/NoSuchElementException.php | 24 + .../src/Exception/OutOfBoundsException.php | 24 + .../UnsupportedOperationException.php | 24 + vendor/ramsey/collection/src/GenericArray.php | 24 + .../ramsey/collection/src/Map/AbstractMap.php | 205 + .../collection/src/Map/AbstractTypedMap.php | 59 + .../src/Map/AssociativeArrayMap.php | 24 + .../collection/src/Map/MapInterface.php | 142 + .../collection/src/Map/NamedParameterMap.php | 110 + vendor/ramsey/collection/src/Map/TypedMap.php | 112 + .../collection/src/Map/TypedMapInterface.php | 36 + vendor/ramsey/collection/src/Queue.php | 148 + .../ramsey/collection/src/QueueInterface.php | 202 + vendor/ramsey/collection/src/Set.php | 59 + vendor/ramsey/collection/src/Sort.php | 31 + .../ramsey/collection/src/Tool/TypeTrait.php | 57 + .../src/Tool/ValueExtractorTrait.php | 100 + .../src/Tool/ValueToStringTrait.php | 92 + vendor/ramsey/uuid/LICENSE | 19 + vendor/ramsey/uuid/README.md | 82 + vendor/ramsey/uuid/composer.json | 114 + vendor/ramsey/uuid/src/BinaryUtils.php | 54 + .../uuid/src/Builder/BuilderCollection.php | 77 + .../uuid/src/Builder/DefaultUuidBuilder.php | 26 + .../uuid/src/Builder/DegradedUuidBuilder.php | 60 + .../uuid/src/Builder/FallbackBuilder.php | 66 + .../uuid/src/Builder/UuidBuilderInterface.php | 38 + .../ramsey/uuid/src/Codec/CodecInterface.php | 69 + .../ramsey/uuid/src/Codec/GuidStringCodec.php | 78 + .../uuid/src/Codec/OrderedTimeCodec.php | 101 + vendor/ramsey/uuid/src/Codec/StringCodec.php | 121 + .../src/Codec/TimestampFirstCombCodec.php | 112 + .../uuid/src/Codec/TimestampLastCombCodec.php | 48 + .../Converter/Number/BigNumberConverter.php | 52 + .../Number/DegradedNumberConverter.php | 25 + .../Number/GenericNumberConverter.php | 48 + .../Converter/NumberConverterInterface.php | 49 + .../Converter/Time/BigNumberTimeConverter.php | 48 + .../Converter/Time/DegradedTimeConverter.php | 25 + .../Converter/Time/GenericTimeConverter.php | 112 + .../src/Converter/Time/PhpTimeConverter.php | 170 + .../src/Converter/Time/UnixTimeConverter.php | 92 + .../src/Converter/TimeConverterInterface.php | 53 + vendor/ramsey/uuid/src/DegradedUuid.php | 25 + .../uuid/src/DeprecatedUuidInterface.php | 126 + .../uuid/src/DeprecatedUuidMethodsTrait.php | 326 ++ .../Exception/BuilderNotFoundException.php | 24 + .../uuid/src/Exception/DateTimeException.php | 24 + .../src/Exception/DceSecurityException.php | 24 + .../Exception/InvalidArgumentException.php | 24 + .../src/Exception/InvalidBytesException.php | 24 + .../Exception/InvalidUuidStringException.php | 25 + .../uuid/src/Exception/NameException.php | 24 + .../uuid/src/Exception/NodeException.php | 24 + .../src/Exception/RandomSourceException.php | 27 + .../src/Exception/TimeSourceException.php | 24 + .../Exception/UnableToBuildUuidException.php | 24 + .../UnsupportedOperationException.php | 24 + .../src/Exception/UuidExceptionInterface.php | 21 + vendor/ramsey/uuid/src/FeatureSet.php | 383 ++ .../uuid/src/Fields/FieldsInterface.php | 33 + .../src/Fields/SerializableFieldsTrait.php | 83 + .../uuid/src/Generator/CombGenerator.php | 112 + .../src/Generator/DceSecurityGenerator.php | 133 + .../DceSecurityGeneratorInterface.php | 48 + .../src/Generator/DefaultNameGenerator.php | 42 + .../src/Generator/DefaultTimeGenerator.php | 118 + .../src/Generator/NameGeneratorFactory.php | 29 + .../src/Generator/NameGeneratorInterface.php | 37 + .../src/Generator/PeclUuidNameGenerator.php | 48 + .../src/Generator/PeclUuidRandomGenerator.php | 35 + .../src/Generator/PeclUuidTimeGenerator.php | 38 + .../src/Generator/RandomBytesGenerator.php | 40 + .../src/Generator/RandomGeneratorFactory.php | 29 + .../Generator/RandomGeneratorInterface.php | 30 + .../uuid/src/Generator/RandomLibAdapter.php | 54 + .../src/Generator/TimeGeneratorFactory.php | 40 + .../src/Generator/TimeGeneratorInterface.php | 35 + .../uuid/src/Generator/UnixTimeGenerator.php | 165 + vendor/ramsey/uuid/src/Guid/Fields.php | 180 + vendor/ramsey/uuid/src/Guid/Guid.php | 57 + vendor/ramsey/uuid/src/Guid/GuidBuilder.php | 76 + .../uuid/src/Lazy/LazyUuidFromString.php | 426 ++ .../uuid/src/Math/BrickMathCalculator.php | 154 + .../uuid/src/Math/CalculatorInterface.php | 121 + vendor/ramsey/uuid/src/Math/RoundingMode.php | 127 + vendor/ramsey/uuid/src/Nonstandard/Fields.php | 128 + vendor/ramsey/uuid/src/Nonstandard/Uuid.php | 38 + .../uuid/src/Nonstandard/UuidBuilder.php | 74 + vendor/ramsey/uuid/src/Nonstandard/UuidV6.php | 103 + .../Dce/SystemDceSecurityProvider.php | 216 + .../Provider/DceSecurityProviderInterface.php | 40 + .../Provider/Node/FallbackNodeProvider.php | 49 + .../Provider/Node/NodeProviderCollection.php | 58 + .../src/Provider/Node/RandomNodeProvider.php | 55 + .../src/Provider/Node/StaticNodeProvider.php | 65 + .../src/Provider/Node/SystemNodeProvider.php | 184 + .../src/Provider/NodeProviderInterface.php | 30 + .../src/Provider/Time/FixedTimeProvider.php | 56 + .../src/Provider/Time/SystemTimeProvider.php | 33 + .../src/Provider/TimeProviderInterface.php | 28 + vendor/ramsey/uuid/src/Rfc4122/Fields.php | 190 + .../uuid/src/Rfc4122/FieldsInterface.php | 130 + vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php | 40 + vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php | 28 + vendor/ramsey/uuid/src/Rfc4122/NilTrait.php | 38 + vendor/ramsey/uuid/src/Rfc4122/NilUuid.php | 28 + vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php | 53 + .../ramsey/uuid/src/Rfc4122/UuidBuilder.php | 122 + .../ramsey/uuid/src/Rfc4122/UuidInterface.php | 28 + vendor/ramsey/uuid/src/Rfc4122/UuidV1.php | 58 + vendor/ramsey/uuid/src/Rfc4122/UuidV2.php | 107 + vendor/ramsey/uuid/src/Rfc4122/UuidV3.php | 57 + vendor/ramsey/uuid/src/Rfc4122/UuidV4.php | 56 + vendor/ramsey/uuid/src/Rfc4122/UuidV5.php | 57 + vendor/ramsey/uuid/src/Rfc4122/UuidV6.php | 29 + vendor/ramsey/uuid/src/Rfc4122/UuidV7.php | 58 + vendor/ramsey/uuid/src/Rfc4122/UuidV8.php | 60 + vendor/ramsey/uuid/src/Rfc4122/Validator.php | 49 + .../ramsey/uuid/src/Rfc4122/VariantTrait.php | 93 + .../ramsey/uuid/src/Rfc4122/VersionTrait.php | 78 + vendor/ramsey/uuid/src/Type/Decimal.php | 125 + vendor/ramsey/uuid/src/Type/Hexadecimal.php | 131 + vendor/ramsey/uuid/src/Type/Integer.php | 160 + .../ramsey/uuid/src/Type/NumberInterface.php | 28 + vendor/ramsey/uuid/src/Type/Time.php | 129 + vendor/ramsey/uuid/src/Type/TypeInterface.php | 36 + vendor/ramsey/uuid/src/Uuid.php | 730 +++ vendor/ramsey/uuid/src/UuidFactory.php | 476 ++ .../ramsey/uuid/src/UuidFactoryInterface.php | 155 + vendor/ramsey/uuid/src/UuidInterface.php | 110 + .../uuid/src/Validator/GenericValidator.php | 50 + .../uuid/src/Validator/ValidatorInterface.php | 41 + vendor/ramsey/uuid/src/functions.php | 141 + .../deprecation-contracts/CHANGELOG.md | 5 + vendor/symfony/deprecation-contracts/LICENSE | 19 + .../symfony/deprecation-contracts/README.md | 26 + .../deprecation-contracts/composer.json | 35 + .../deprecation-contracts/function.php | 27 + 1489 files changed, 233379 insertions(+), 1 deletion(-) create mode 100644 chatbot.php create mode 100644 chatbot_api.php create mode 100644 composer-setup.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 gcp_creds/dialogflow_key.json create mode 100644 vendor/autoload.php create mode 100644 vendor/brick/math/CHANGELOG.md create mode 100644 vendor/brick/math/LICENSE create mode 100644 vendor/brick/math/composer.json create mode 100644 vendor/brick/math/phpstan.neon create mode 100644 vendor/brick/math/src/BigDecimal.php create mode 100644 vendor/brick/math/src/BigInteger.php create mode 100644 vendor/brick/math/src/BigNumber.php create mode 100644 vendor/brick/math/src/BigRational.php create mode 100644 vendor/brick/math/src/Exception/DivisionByZeroException.php create mode 100644 vendor/brick/math/src/Exception/IntegerOverflowException.php create mode 100644 vendor/brick/math/src/Exception/MathException.php create mode 100644 vendor/brick/math/src/Exception/NegativeNumberException.php create mode 100644 vendor/brick/math/src/Exception/NumberFormatException.php create mode 100644 vendor/brick/math/src/Exception/RoundingNecessaryException.php create mode 100644 vendor/brick/math/src/Internal/Calculator.php create mode 100644 vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php create mode 100644 vendor/brick/math/src/Internal/Calculator/GmpCalculator.php create mode 100644 vendor/brick/math/src/Internal/Calculator/NativeCalculator.php create mode 100644 vendor/brick/math/src/Internal/CalculatorRegistry.php create mode 100644 vendor/brick/math/src/RoundingMode.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/InstalledVersions.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_files.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/composer/installed.php create mode 100644 vendor/composer/platform_check.php create mode 100644 vendor/firebase/php-jwt/CHANGELOG.md create mode 100644 vendor/firebase/php-jwt/LICENSE create mode 100644 vendor/firebase/php-jwt/README.md create mode 100644 vendor/firebase/php-jwt/composer.json create mode 100644 vendor/firebase/php-jwt/src/BeforeValidException.php create mode 100644 vendor/firebase/php-jwt/src/CachedKeySet.php create mode 100644 vendor/firebase/php-jwt/src/ExpiredException.php create mode 100644 vendor/firebase/php-jwt/src/JWK.php create mode 100644 vendor/firebase/php-jwt/src/JWT.php create mode 100644 vendor/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php create mode 100644 vendor/firebase/php-jwt/src/Key.php create mode 100644 vendor/firebase/php-jwt/src/SignatureInvalidException.php create mode 100644 vendor/google/auth/.repo-metadata.json create mode 100644 vendor/google/auth/COPYING create mode 100644 vendor/google/auth/LICENSE create mode 100644 vendor/google/auth/README.md create mode 100644 vendor/google/auth/SECURITY.md create mode 100644 vendor/google/auth/VERSION create mode 100644 vendor/google/auth/composer.json create mode 100644 vendor/google/auth/src/AccessToken.php create mode 100644 vendor/google/auth/src/ApplicationDefaultCredentials.php create mode 100644 vendor/google/auth/src/Cache/FileSystemCacheItemPool.php create mode 100644 vendor/google/auth/src/Cache/InvalidArgumentException.php create mode 100644 vendor/google/auth/src/Cache/MemoryCacheItemPool.php create mode 100644 vendor/google/auth/src/Cache/SysVCacheItemPool.php create mode 100644 vendor/google/auth/src/Cache/TypedItem.php create mode 100644 vendor/google/auth/src/CacheTrait.php create mode 100644 vendor/google/auth/src/CredentialSource/AwsNativeSource.php create mode 100644 vendor/google/auth/src/CredentialSource/ExecutableSource.php create mode 100644 vendor/google/auth/src/CredentialSource/FileSource.php create mode 100644 vendor/google/auth/src/CredentialSource/UrlSource.php create mode 100644 vendor/google/auth/src/Credentials/AppIdentityCredentials.php create mode 100644 vendor/google/auth/src/Credentials/ExternalAccountCredentials.php create mode 100644 vendor/google/auth/src/Credentials/GCECredentials.php create mode 100644 vendor/google/auth/src/Credentials/IAMCredentials.php create mode 100644 vendor/google/auth/src/Credentials/ImpersonatedServiceAccountCredentials.php create mode 100644 vendor/google/auth/src/Credentials/InsecureCredentials.php create mode 100644 vendor/google/auth/src/Credentials/ServiceAccountCredentials.php create mode 100644 vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php create mode 100644 vendor/google/auth/src/Credentials/UserRefreshCredentials.php create mode 100644 vendor/google/auth/src/CredentialsLoader.php create mode 100644 vendor/google/auth/src/ExecutableHandler/ExecutableHandler.php create mode 100644 vendor/google/auth/src/ExecutableHandler/ExecutableResponseError.php create mode 100644 vendor/google/auth/src/ExternalAccountCredentialSourceInterface.php create mode 100644 vendor/google/auth/src/FetchAuthTokenCache.php create mode 100644 vendor/google/auth/src/FetchAuthTokenInterface.php create mode 100644 vendor/google/auth/src/GCECache.php create mode 100644 vendor/google/auth/src/GetQuotaProjectInterface.php create mode 100644 vendor/google/auth/src/GetUniverseDomainInterface.php create mode 100644 vendor/google/auth/src/HttpHandler/Guzzle6HttpHandler.php create mode 100644 vendor/google/auth/src/HttpHandler/Guzzle7HttpHandler.php create mode 100644 vendor/google/auth/src/HttpHandler/HttpClientCache.php create mode 100644 vendor/google/auth/src/HttpHandler/HttpHandlerFactory.php create mode 100644 vendor/google/auth/src/Iam.php create mode 100644 vendor/google/auth/src/IamSignerTrait.php create mode 100644 vendor/google/auth/src/Logging/LoggingTrait.php create mode 100644 vendor/google/auth/src/Logging/RpcLogEvent.php create mode 100644 vendor/google/auth/src/Logging/StdOutLogger.php create mode 100644 vendor/google/auth/src/MetricsTrait.php create mode 100644 vendor/google/auth/src/Middleware/AuthTokenMiddleware.php create mode 100644 vendor/google/auth/src/Middleware/ProxyAuthTokenMiddleware.php create mode 100644 vendor/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php create mode 100644 vendor/google/auth/src/Middleware/SimpleMiddleware.php create mode 100644 vendor/google/auth/src/OAuth2.php create mode 100644 vendor/google/auth/src/ProjectIdProviderInterface.php create mode 100644 vendor/google/auth/src/ServiceAccountSignerTrait.php create mode 100644 vendor/google/auth/src/SignBlobInterface.php create mode 100644 vendor/google/auth/src/UpdateMetadataInterface.php create mode 100644 vendor/google/auth/src/UpdateMetadataTrait.php create mode 100644 vendor/google/cloud-dialogflow/.gitattributes create mode 100644 vendor/google/cloud-dialogflow/.owlbot/create_conversation_model_sample_fix.patch create mode 100644 vendor/google/cloud-dialogflow/CODE_OF_CONDUCT.md create mode 100644 vendor/google/cloud-dialogflow/CONTRIBUTING.md create mode 100644 vendor/google/cloud-dialogflow/LICENSE create mode 100644 vendor/google/cloud-dialogflow/README.md create mode 100644 vendor/google/cloud-dialogflow/SECURITY.md create mode 100644 vendor/google/cloud-dialogflow/VERSION create mode 100644 vendor/google/cloud-dialogflow/composer.json create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Agent.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/AnswerRecord.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/AudioConfig.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Context.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Conversation.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/ConversationDataset.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/ConversationEvent.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/ConversationModel.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/ConversationProfile.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Document.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/EncryptionSpec.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/EntityType.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Environment.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Fulfillment.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Gcs.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Generator.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/HumanAgentAssistantEvent.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Intent.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/KnowledgeBase.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Participant.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Session.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/SessionEntityType.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/ValidationResult.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Version.php create mode 100644 vendor/google/cloud-dialogflow/metadata/V2/Webhook.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Agent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Agent/ApiVersion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Agent/MatchMode.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Agent/Tier.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/AnswerRelevance.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentCorrectness.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentEfficiency.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeAssistFeedback.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeSearchFeedback.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/SummarizationFeedback.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AgentAssistantRecord.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AnalyzeContentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AnalyzeContentResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AnnotatedMessagePart.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AnswerFeedback.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AnswerFeedback/CorrectnessLevel.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AnswerRecord.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ArticleAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ArticleSuggestionModelMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AssistQueryParameters.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AudioEncoding.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AudioInput.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AutomatedAgentConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply/AutomatedAgentReplyType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchCreateEntitiesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntitiesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntityTypesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchDeleteIntentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntitiesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/AgentsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/AnswerRecordsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/ContextsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/ConversationDatasetsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/ConversationModelsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/ConversationProfilesClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/ConversationsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/DocumentsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/EncryptionSpecServiceClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/EntityTypesClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/EnvironmentsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/FulfillmentsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/GeneratorsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/IntentsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/KnowledgeBasesClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/ParticipantsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/SessionEntityTypesClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/SessionsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Client/VersionsClient.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CloudConversationDebuggingInfo.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CompleteConversationRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Context.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent/ContentFormat.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/UpdateMode.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/ConversationStage.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/LifecycleState.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/MimeContent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/SipHeader.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationContext.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationDataset.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationEvent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationEvent/Type.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationInfo.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationModel.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationModel/ModelType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationModel/State.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationModelEvaluation.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationPhoneNumber.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ConversationProfile.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateContextRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata/State.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata/State.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationModelRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationProfileRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateConversationRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateDocumentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateEnvironmentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateGeneratorRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateKnowledgeBaseRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateParticipantRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateSessionEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/CreateVersionRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteAllContextsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteContextRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteConversationProfileRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteDocumentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteEnvironmentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteGeneratorRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteKnowledgeBaseRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteSessionEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeleteVersionRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeployConversationModelOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DeployConversationModelRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DetectIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DetectIntentResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DialogflowAssistAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Document.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Document/KnowledgeType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Document/ReloadStatus.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Document/State.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/DtmfParameters.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EncryptionSpec.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EntityType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EntityType/AutoExpansionMode.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EntityType/Entity.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EntityType/Kind.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EntityTypeBatch.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Environment.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Environment/State.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory/Entry.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EvaluationConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartComposeConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartReplyConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/EventInput.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ExportAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ExportAgentResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ExportDocumentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ExportOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/FaqAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/FewShotExample.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/FreeFormContext.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/FreeFormSuggestion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Fulfillment.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature/Type.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Fulfillment/GenericWebService.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GcsDestination.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GcsSources.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest/MinimalConversation.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse/Summary.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse/GeneratorSuggestionAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Generator.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GeneratorSuggestion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetContextRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetConversationDatasetRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetConversationModelEvaluationRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetConversationModelRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetConversationProfileRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetConversationRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetDocumentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetEncryptionSpecRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetEnvironmentHistoryRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetEnvironmentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetFulfillmentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetGeneratorRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetKnowledgeBaseRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetParticipantRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetSessionEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetValidationResultRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/GetVersionRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationModelConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationProcessConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/MessageAnalysisConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionFeatureConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/ContextFilterSettings.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource/HumanAgentSideConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DocumentQuerySource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/KnowledgeBaseQuerySource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections/SectionType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionTriggerSettings.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantEvent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/LivePersonConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/SalesforceLiveAgentConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportConversationDataRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportDocumentTemplate.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportDocumentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ImportDocumentsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InferenceParameter.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InputAudioConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InputConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InputDataset.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/InputTextConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/FollowupIntentInfo.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button/OpenUriAction.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction/UrlTypeHint.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/ImageDisplayOptions.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card/Button.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect/Item.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties/HorizontalAlignment.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Image.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/LinkOutSuggestion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect/Item.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaObject.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Platform.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/QuickReplies.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/SelectItemInfo.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponses.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestions.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCard.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardCell.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardRow.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Message/Text.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/Parameter.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Part.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Type.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Intent/WebhookState.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/IntentBatch.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/IntentSuggestion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/IntentView.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/FaqSource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource/Snippet.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/SuggestedQuery.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeBase.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata/State.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListContextsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListContextsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationModelsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationModelsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListConversationsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListDocumentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListDocumentsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListEntityTypesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListEntityTypesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListGeneratorsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListGeneratorsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListIntentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListIntentsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListMessagesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListMessagesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListParticipantsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListParticipantsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListVersionsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ListVersionsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/LoggingConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Message.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/MessageAnnotation.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/MessageEntry.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/MessageEntry/Role.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/NotificationConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/NotificationConfig/MessageFormat.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/OriginalDetectIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/OutputAudio.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/OutputAudioConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/OutputAudioEncoding.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Participant.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Participant/Role.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/QueryInput.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/QueryParameters.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/QueryResult.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ReloadDocumentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/RestoreAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchAgentsRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchAgentsResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerSource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/QuerySource.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/AttributeType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/ControlPoint.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/InterpolationType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/FilterSpecs.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Sentiment.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisRequestConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisResult.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SessionEntityType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SessionEntityType/EntityOverrideMode.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SetAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SmartReplyAnswer.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics/TopNMetrics.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SmartReplyModelMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SpeechContext.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SpeechModelVariant.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SpeechToTextConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SpeechWordInfo.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SsmlVoiceGender.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult/MessageType.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestArticlesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestArticlesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse/Summary.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestionFeature.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestionFeature/Type.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestionInput.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SuggestionResult.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SummarizationContext.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SummarizationSection.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SummarizationSection/Type.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SummarizationSectionList.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SummarySuggestion.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SummarySuggestion/SummarySection.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/SynthesizeSpeechConfig.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/TelephonyDtmf.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/TelephonyDtmfEvents.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/TextInput.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/TextToSpeechSettings.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/TrainAgentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/TriggerEvent.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelOperationMetadata.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateAnswerRecordRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateContextRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateConversationProfileRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateDocumentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateEnvironmentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateFulfillmentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateGeneratorRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateIntentRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateKnowledgeBaseRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateParticipantRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateSessionEntityTypeRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/UpdateVersionRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ValidationError.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ValidationError/Severity.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/ValidationResult.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Version.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/Version/VersionStatus.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/VoiceSelectionParams.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/WebhookRequest.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/WebhookResponse.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/agents_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/agents_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/agents_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/answer_records_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/answer_records_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/answer_records_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/contexts_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/contexts_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/contexts_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversations_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversations_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/conversations_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/documents_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/documents_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/documents_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/entity_types_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/entity_types_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/entity_types_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/environments_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/environments_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/environments_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/generators_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/generators_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/generators_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/intents_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/intents_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/intents_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/participants_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/participants_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/participants_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/sessions_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/sessions_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/sessions_rest_client_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/versions_client_config.json create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/versions_descriptor_config.php create mode 100644 vendor/google/cloud-dialogflow/src/V2/resources/versions_rest_client_config.php create mode 100644 vendor/google/common-protos/CHANGELOG.md create mode 100644 vendor/google/common-protos/CODE_OF_CONDUCT.md create mode 100644 vendor/google/common-protos/CONTRIBUTING.md create mode 100644 vendor/google/common-protos/LICENSE create mode 100644 vendor/google/common-protos/README.md create mode 100644 vendor/google/common-protos/SECURITY.md create mode 100644 vendor/google/common-protos/VERSION create mode 100644 vendor/google/common-protos/composer.json create mode 100644 vendor/google/common-protos/metadata/Api/Annotations.php create mode 100644 vendor/google/common-protos/metadata/Api/Auth.php create mode 100644 vendor/google/common-protos/metadata/Api/Backend.php create mode 100644 vendor/google/common-protos/metadata/Api/Billing.php create mode 100644 vendor/google/common-protos/metadata/Api/Client.php create mode 100644 vendor/google/common-protos/metadata/Api/ConfigChange.php create mode 100644 vendor/google/common-protos/metadata/Api/Consumer.php create mode 100644 vendor/google/common-protos/metadata/Api/Context.php create mode 100644 vendor/google/common-protos/metadata/Api/Control.php create mode 100644 vendor/google/common-protos/metadata/Api/Distribution.php create mode 100644 vendor/google/common-protos/metadata/Api/Documentation.php create mode 100644 vendor/google/common-protos/metadata/Api/Endpoint.php create mode 100644 vendor/google/common-protos/metadata/Api/ErrorReason.php create mode 100644 vendor/google/common-protos/metadata/Api/FieldBehavior.php create mode 100644 vendor/google/common-protos/metadata/Api/FieldInfo.php create mode 100644 vendor/google/common-protos/metadata/Api/Http.php create mode 100644 vendor/google/common-protos/metadata/Api/Httpbody.php create mode 100644 vendor/google/common-protos/metadata/Api/Label.php create mode 100644 vendor/google/common-protos/metadata/Api/LaunchStage.php create mode 100644 vendor/google/common-protos/metadata/Api/Log.php create mode 100644 vendor/google/common-protos/metadata/Api/Logging.php create mode 100644 vendor/google/common-protos/metadata/Api/Metric.php create mode 100644 vendor/google/common-protos/metadata/Api/MonitoredResource.php create mode 100644 vendor/google/common-protos/metadata/Api/Monitoring.php create mode 100644 vendor/google/common-protos/metadata/Api/Policy.php create mode 100644 vendor/google/common-protos/metadata/Api/Quota.php create mode 100644 vendor/google/common-protos/metadata/Api/Resource.php create mode 100644 vendor/google/common-protos/metadata/Api/Routing.php create mode 100644 vendor/google/common-protos/metadata/Api/Service.php create mode 100644 vendor/google/common-protos/metadata/Api/SourceInfo.php create mode 100644 vendor/google/common-protos/metadata/Api/SystemParameter.php create mode 100644 vendor/google/common-protos/metadata/Api/Usage.php create mode 100644 vendor/google/common-protos/metadata/Api/Visibility.php create mode 100644 vendor/google/common-protos/metadata/Cloud/ExtendedOperations.php create mode 100644 vendor/google/common-protos/metadata/Cloud/Location/Locations.php create mode 100644 vendor/google/common-protos/metadata/Google/Iam/V1/IamPolicy.php create mode 100644 vendor/google/common-protos/metadata/Google/Iam/V1/Logging/AuditData.php create mode 100644 vendor/google/common-protos/metadata/Google/Iam/V1/Options.php create mode 100644 vendor/google/common-protos/metadata/Google/Iam/V1/Policy.php create mode 100644 vendor/google/common-protos/metadata/Google/Iam/V1/ResourcePolicyMember.php create mode 100644 vendor/google/common-protos/metadata/Google/Logging/Type/HttpRequest.php create mode 100644 vendor/google/common-protos/metadata/Google/Logging/Type/LogSeverity.php create mode 100644 vendor/google/common-protos/metadata/Iam/V1/IamPolicy.php create mode 100644 vendor/google/common-protos/metadata/Iam/V1/Logging/AuditData.php create mode 100644 vendor/google/common-protos/metadata/Iam/V1/Options.php create mode 100644 vendor/google/common-protos/metadata/Iam/V1/Policy.php create mode 100644 vendor/google/common-protos/metadata/Iam/V1/ResourcePolicyMember.php create mode 100644 vendor/google/common-protos/metadata/Logging/Type/HttpRequest.php create mode 100644 vendor/google/common-protos/metadata/Logging/Type/LogSeverity.php create mode 100644 vendor/google/common-protos/metadata/Rpc/Code.php create mode 100644 vendor/google/common-protos/metadata/Rpc/Context/AttributeContext.php create mode 100644 vendor/google/common-protos/metadata/Rpc/Context/AuditContext.php create mode 100644 vendor/google/common-protos/metadata/Rpc/ErrorDetails.php create mode 100644 vendor/google/common-protos/metadata/Rpc/Status.php create mode 100644 vendor/google/common-protos/metadata/Type/CalendarPeriod.php create mode 100644 vendor/google/common-protos/metadata/Type/Color.php create mode 100644 vendor/google/common-protos/metadata/Type/Date.php create mode 100644 vendor/google/common-protos/metadata/Type/Datetime.php create mode 100644 vendor/google/common-protos/metadata/Type/Dayofweek.php create mode 100644 vendor/google/common-protos/metadata/Type/Decimal.php create mode 100644 vendor/google/common-protos/metadata/Type/Expr.php create mode 100644 vendor/google/common-protos/metadata/Type/Fraction.php create mode 100644 vendor/google/common-protos/metadata/Type/Interval.php create mode 100644 vendor/google/common-protos/metadata/Type/Latlng.php create mode 100644 vendor/google/common-protos/metadata/Type/LocalizedText.php create mode 100644 vendor/google/common-protos/metadata/Type/Money.php create mode 100644 vendor/google/common-protos/metadata/Type/Month.php create mode 100644 vendor/google/common-protos/metadata/Type/PhoneNumber.php create mode 100644 vendor/google/common-protos/metadata/Type/PostalAddress.php create mode 100644 vendor/google/common-protos/metadata/Type/Quaternion.php create mode 100644 vendor/google/common-protos/metadata/Type/Timeofday.php create mode 100644 vendor/google/common-protos/renovate.json create mode 100644 vendor/google/common-protos/src/Api/Advice.php create mode 100644 vendor/google/common-protos/src/Api/AuthProvider.php create mode 100644 vendor/google/common-protos/src/Api/AuthRequirement.php create mode 100644 vendor/google/common-protos/src/Api/Authentication.php create mode 100644 vendor/google/common-protos/src/Api/AuthenticationRule.php create mode 100644 vendor/google/common-protos/src/Api/Backend.php create mode 100644 vendor/google/common-protos/src/Api/BackendRule.php create mode 100644 vendor/google/common-protos/src/Api/BackendRule/PathTranslation.php create mode 100644 vendor/google/common-protos/src/Api/Billing.php create mode 100644 vendor/google/common-protos/src/Api/Billing/BillingDestination.php create mode 100644 vendor/google/common-protos/src/Api/ChangeType.php create mode 100644 vendor/google/common-protos/src/Api/ClientLibraryDestination.php create mode 100644 vendor/google/common-protos/src/Api/ClientLibraryOrganization.php create mode 100644 vendor/google/common-protos/src/Api/ClientLibrarySettings.php create mode 100644 vendor/google/common-protos/src/Api/CommonLanguageSettings.php create mode 100644 vendor/google/common-protos/src/Api/ConfigChange.php create mode 100644 vendor/google/common-protos/src/Api/Context.php create mode 100644 vendor/google/common-protos/src/Api/ContextRule.php create mode 100644 vendor/google/common-protos/src/Api/Control.php create mode 100644 vendor/google/common-protos/src/Api/CppSettings.php create mode 100644 vendor/google/common-protos/src/Api/CustomHttpPattern.php create mode 100644 vendor/google/common-protos/src/Api/Distribution.php create mode 100644 vendor/google/common-protos/src/Api/Distribution/BucketOptions.php create mode 100644 vendor/google/common-protos/src/Api/Distribution/BucketOptions/Explicit.php create mode 100644 vendor/google/common-protos/src/Api/Distribution/BucketOptions/Exponential.php create mode 100644 vendor/google/common-protos/src/Api/Distribution/BucketOptions/Linear.php create mode 100644 vendor/google/common-protos/src/Api/Distribution/Exemplar.php create mode 100644 vendor/google/common-protos/src/Api/Distribution/Range.php create mode 100644 vendor/google/common-protos/src/Api/Documentation.php create mode 100644 vendor/google/common-protos/src/Api/DocumentationRule.php create mode 100644 vendor/google/common-protos/src/Api/DotnetSettings.php create mode 100644 vendor/google/common-protos/src/Api/Endpoint.php create mode 100644 vendor/google/common-protos/src/Api/ErrorReason.php create mode 100644 vendor/google/common-protos/src/Api/FieldBehavior.php create mode 100644 vendor/google/common-protos/src/Api/FieldInfo.php create mode 100644 vendor/google/common-protos/src/Api/FieldInfo/Format.php create mode 100644 vendor/google/common-protos/src/Api/FieldPolicy.php create mode 100644 vendor/google/common-protos/src/Api/GoSettings.php create mode 100644 vendor/google/common-protos/src/Api/Http.php create mode 100644 vendor/google/common-protos/src/Api/HttpBody.php create mode 100644 vendor/google/common-protos/src/Api/HttpRule.php create mode 100644 vendor/google/common-protos/src/Api/JavaSettings.php create mode 100644 vendor/google/common-protos/src/Api/JwtLocation.php create mode 100644 vendor/google/common-protos/src/Api/LabelDescriptor.php create mode 100644 vendor/google/common-protos/src/Api/LabelDescriptor/ValueType.php create mode 100644 vendor/google/common-protos/src/Api/LaunchStage.php create mode 100644 vendor/google/common-protos/src/Api/LogDescriptor.php create mode 100644 vendor/google/common-protos/src/Api/Logging.php create mode 100644 vendor/google/common-protos/src/Api/Logging/LoggingDestination.php create mode 100644 vendor/google/common-protos/src/Api/MethodPolicy.php create mode 100644 vendor/google/common-protos/src/Api/MethodSettings.php create mode 100644 vendor/google/common-protos/src/Api/MethodSettings/LongRunning.php create mode 100644 vendor/google/common-protos/src/Api/Metric.php create mode 100644 vendor/google/common-protos/src/Api/MetricDescriptor.php create mode 100644 vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata.php create mode 100644 vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata/TimeSeriesResourceHierarchyLevel.php create mode 100644 vendor/google/common-protos/src/Api/MetricDescriptor/MetricKind.php create mode 100644 vendor/google/common-protos/src/Api/MetricDescriptor/ValueType.php create mode 100644 vendor/google/common-protos/src/Api/MetricRule.php create mode 100644 vendor/google/common-protos/src/Api/MonitoredResource.php create mode 100644 vendor/google/common-protos/src/Api/MonitoredResourceDescriptor.php create mode 100644 vendor/google/common-protos/src/Api/MonitoredResourceMetadata.php create mode 100644 vendor/google/common-protos/src/Api/Monitoring.php create mode 100644 vendor/google/common-protos/src/Api/Monitoring/MonitoringDestination.php create mode 100644 vendor/google/common-protos/src/Api/NodeSettings.php create mode 100644 vendor/google/common-protos/src/Api/OAuthRequirements.php create mode 100644 vendor/google/common-protos/src/Api/Page.php create mode 100644 vendor/google/common-protos/src/Api/PhpSettings.php create mode 100644 vendor/google/common-protos/src/Api/ProjectProperties.php create mode 100644 vendor/google/common-protos/src/Api/Property.php create mode 100644 vendor/google/common-protos/src/Api/Property/PropertyType.php create mode 100644 vendor/google/common-protos/src/Api/Publishing.php create mode 100644 vendor/google/common-protos/src/Api/PythonSettings.php create mode 100644 vendor/google/common-protos/src/Api/PythonSettings/ExperimentalFeatures.php create mode 100644 vendor/google/common-protos/src/Api/Quota.php create mode 100644 vendor/google/common-protos/src/Api/QuotaLimit.php create mode 100644 vendor/google/common-protos/src/Api/ResourceDescriptor.php create mode 100644 vendor/google/common-protos/src/Api/ResourceDescriptor/History.php create mode 100644 vendor/google/common-protos/src/Api/ResourceDescriptor/Style.php create mode 100644 vendor/google/common-protos/src/Api/ResourceReference.php create mode 100644 vendor/google/common-protos/src/Api/RoutingParameter.php create mode 100644 vendor/google/common-protos/src/Api/RoutingRule.php create mode 100644 vendor/google/common-protos/src/Api/RubySettings.php create mode 100644 vendor/google/common-protos/src/Api/SelectiveGapicGeneration.php create mode 100644 vendor/google/common-protos/src/Api/Service.php create mode 100644 vendor/google/common-protos/src/Api/SourceInfo.php create mode 100644 vendor/google/common-protos/src/Api/SystemParameter.php create mode 100644 vendor/google/common-protos/src/Api/SystemParameterRule.php create mode 100644 vendor/google/common-protos/src/Api/SystemParameters.php create mode 100644 vendor/google/common-protos/src/Api/TypeReference.php create mode 100644 vendor/google/common-protos/src/Api/Usage.php create mode 100644 vendor/google/common-protos/src/Api/UsageRule.php create mode 100644 vendor/google/common-protos/src/Api/Visibility.php create mode 100644 vendor/google/common-protos/src/Api/VisibilityRule.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfig.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta/Action.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig/LogType.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/Binding.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta/Action.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/GetIamPolicyRequest.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/GetPolicyOptions.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/Policy.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/PolicyDelta.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/ResourcePolicyMember.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/SetIamPolicyRequest.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsRequest.php create mode 100644 vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsResponse.php create mode 100644 vendor/google/common-protos/src/Cloud/Location/GetLocationRequest.php create mode 100644 vendor/google/common-protos/src/Cloud/Location/ListLocationsRequest.php create mode 100644 vendor/google/common-protos/src/Cloud/Location/ListLocationsResponse.php create mode 100644 vendor/google/common-protos/src/Cloud/Location/Location.php create mode 100644 vendor/google/common-protos/src/Cloud/Logging/Type/HttpRequest.php create mode 100644 vendor/google/common-protos/src/Cloud/Logging/Type/LogSeverity.php create mode 100644 vendor/google/common-protos/src/Cloud/OperationResponseMapping.php create mode 100644 vendor/google/common-protos/src/Iam/V1/Logging/AuditData.php create mode 100644 vendor/google/common-protos/src/Rpc/BadRequest.php create mode 100644 vendor/google/common-protos/src/Rpc/BadRequest/FieldViolation.php create mode 100644 vendor/google/common-protos/src/Rpc/Code.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext/Api.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext/Auth.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext/Peer.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext/Request.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext/Resource.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AttributeContext/Response.php create mode 100644 vendor/google/common-protos/src/Rpc/Context/AuditContext.php create mode 100644 vendor/google/common-protos/src/Rpc/DebugInfo.php create mode 100644 vendor/google/common-protos/src/Rpc/ErrorInfo.php create mode 100644 vendor/google/common-protos/src/Rpc/Help.php create mode 100644 vendor/google/common-protos/src/Rpc/Help/Link.php create mode 100644 vendor/google/common-protos/src/Rpc/LocalizedMessage.php create mode 100644 vendor/google/common-protos/src/Rpc/PreconditionFailure.php create mode 100644 vendor/google/common-protos/src/Rpc/PreconditionFailure/Violation.php create mode 100644 vendor/google/common-protos/src/Rpc/QuotaFailure.php create mode 100644 vendor/google/common-protos/src/Rpc/QuotaFailure/Violation.php create mode 100644 vendor/google/common-protos/src/Rpc/RequestInfo.php create mode 100644 vendor/google/common-protos/src/Rpc/ResourceInfo.php create mode 100644 vendor/google/common-protos/src/Rpc/RetryInfo.php create mode 100644 vendor/google/common-protos/src/Rpc/Status.php create mode 100644 vendor/google/common-protos/src/Type/CalendarPeriod.php create mode 100644 vendor/google/common-protos/src/Type/Color.php create mode 100644 vendor/google/common-protos/src/Type/Date.php create mode 100644 vendor/google/common-protos/src/Type/DateTime.php create mode 100644 vendor/google/common-protos/src/Type/DayOfWeek.php create mode 100644 vendor/google/common-protos/src/Type/Decimal.php create mode 100644 vendor/google/common-protos/src/Type/Expr.php create mode 100644 vendor/google/common-protos/src/Type/Fraction.php create mode 100644 vendor/google/common-protos/src/Type/Interval.php create mode 100644 vendor/google/common-protos/src/Type/LatLng.php create mode 100644 vendor/google/common-protos/src/Type/LocalizedText.php create mode 100644 vendor/google/common-protos/src/Type/Money.php create mode 100644 vendor/google/common-protos/src/Type/Month.php create mode 100644 vendor/google/common-protos/src/Type/PhoneNumber.php create mode 100644 vendor/google/common-protos/src/Type/PhoneNumber/ShortCode.php create mode 100644 vendor/google/common-protos/src/Type/PostalAddress.php create mode 100644 vendor/google/common-protos/src/Type/Quaternion.php create mode 100644 vendor/google/common-protos/src/Type/TimeOfDay.php create mode 100644 vendor/google/common-protos/src/Type/TimeZone.php create mode 100644 vendor/google/gax/.repo-metadata.json create mode 100644 vendor/google/gax/CHANGELOG.md create mode 100644 vendor/google/gax/CODE_OF_CONDUCT.md create mode 100644 vendor/google/gax/LICENSE create mode 100644 vendor/google/gax/README.md create mode 100644 vendor/google/gax/SECURITY.md create mode 100644 vendor/google/gax/VERSION create mode 100644 vendor/google/gax/composer.json create mode 100644 vendor/google/gax/metadata/ApiCore/Testing/Mocks.php create mode 100644 vendor/google/gax/metadata/Google/ApiCore/Tests/Unit/Example.php create mode 100644 vendor/google/gax/metadata/README.md create mode 100644 vendor/google/gax/phpstan.neon.dist create mode 100644 vendor/google/gax/phpunit.xml.dist create mode 100644 vendor/google/gax/renovate.json create mode 100644 vendor/google/gax/src/AgentHeader.php create mode 100644 vendor/google/gax/src/ApiException.php create mode 100644 vendor/google/gax/src/ApiKeyHeaderCredentials.php create mode 100644 vendor/google/gax/src/ApiStatus.php create mode 100644 vendor/google/gax/src/ArrayTrait.php create mode 100644 vendor/google/gax/src/BidiStream.php create mode 100644 vendor/google/gax/src/Call.php create mode 100644 vendor/google/gax/src/ClientOptionsTrait.php create mode 100644 vendor/google/gax/src/ClientStream.php create mode 100644 vendor/google/gax/src/CredentialsWrapper.php create mode 100644 vendor/google/gax/src/FixedSizeCollection.php create mode 100644 vendor/google/gax/src/GPBLabel.php create mode 100644 vendor/google/gax/src/GPBType.php create mode 100644 vendor/google/gax/src/GapicClientTrait.php create mode 100644 vendor/google/gax/src/GrpcSupportTrait.php create mode 100644 vendor/google/gax/src/HeaderCredentialsInterface.php create mode 100644 vendor/google/gax/src/InsecureCredentialsWrapper.php create mode 100644 vendor/google/gax/src/InsecureRequestBuilder.php create mode 100644 vendor/google/gax/src/Middleware/CredentialsWrapperMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/FixedHeaderMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/MiddlewareInterface.php create mode 100644 vendor/google/gax/src/Middleware/OperationsMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/OptionsFilterMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/PagedMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/RequestAutoPopulationMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/ResponseMetadataMiddleware.php create mode 100644 vendor/google/gax/src/Middleware/RetryMiddleware.php create mode 100644 vendor/google/gax/src/OperationResponse.php create mode 100644 vendor/google/gax/src/Options/CallOptions.php create mode 100644 vendor/google/gax/src/Options/ClientOptions.php create mode 100644 vendor/google/gax/src/Options/OptionsInterface.php create mode 100644 vendor/google/gax/src/Options/OptionsTrait.php create mode 100644 vendor/google/gax/src/Options/TransportOptions.php create mode 100644 vendor/google/gax/src/Options/TransportOptions/GrpcFallbackTransportOptions.php create mode 100644 vendor/google/gax/src/Options/TransportOptions/GrpcTransportOptions.php create mode 100644 vendor/google/gax/src/Options/TransportOptions/RestTransportOptions.php create mode 100644 vendor/google/gax/src/Page.php create mode 100644 vendor/google/gax/src/PageStreamingDescriptor.php create mode 100644 vendor/google/gax/src/PagedListResponse.php create mode 100644 vendor/google/gax/src/PathTemplate.php create mode 100644 vendor/google/gax/src/PollingTrait.php create mode 100644 vendor/google/gax/src/RequestBuilder.php create mode 100644 vendor/google/gax/src/RequestParamsHeaderDescriptor.php create mode 100644 vendor/google/gax/src/ResourceHelperTrait.php create mode 100644 vendor/google/gax/src/ResourceTemplate/AbsoluteResourceTemplate.php create mode 100644 vendor/google/gax/src/ResourceTemplate/Parser.php create mode 100644 vendor/google/gax/src/ResourceTemplate/RelativeResourceTemplate.php create mode 100644 vendor/google/gax/src/ResourceTemplate/ResourceTemplateInterface.php create mode 100644 vendor/google/gax/src/ResourceTemplate/Segment.php create mode 100644 vendor/google/gax/src/RetrySettings.php create mode 100644 vendor/google/gax/src/Serializer.php create mode 100644 vendor/google/gax/src/ServerStream.php create mode 100644 vendor/google/gax/src/ServerStreamingCallInterface.php create mode 100644 vendor/google/gax/src/ServiceAddressTrait.php create mode 100644 vendor/google/gax/src/Testing/GeneratedTest.php create mode 100644 vendor/google/gax/src/Testing/MessageAwareArrayComparator.php create mode 100644 vendor/google/gax/src/Testing/MessageAwareExporter.php create mode 100644 vendor/google/gax/src/Testing/MockBidiStreamingCall.php create mode 100644 vendor/google/gax/src/Testing/MockClientStreamingCall.php create mode 100644 vendor/google/gax/src/Testing/MockGrpcTransport.php create mode 100644 vendor/google/gax/src/Testing/MockRequest.php create mode 100644 vendor/google/gax/src/Testing/MockRequestBody.php create mode 100644 vendor/google/gax/src/Testing/MockResponse.php create mode 100644 vendor/google/gax/src/Testing/MockServerStreamingCall.php create mode 100644 vendor/google/gax/src/Testing/MockStatus.php create mode 100644 vendor/google/gax/src/Testing/MockStubTrait.php create mode 100644 vendor/google/gax/src/Testing/MockTransport.php create mode 100644 vendor/google/gax/src/Testing/MockUnaryCall.php create mode 100644 vendor/google/gax/src/Testing/ProtobufGPBEmptyComparator.php create mode 100644 vendor/google/gax/src/Testing/ProtobufMessageComparator.php create mode 100644 vendor/google/gax/src/Testing/ReceivedRequest.php create mode 100644 vendor/google/gax/src/Testing/SerializationTrait.php create mode 100644 vendor/google/gax/src/Testing/mocks.proto create mode 100644 vendor/google/gax/src/Transport/Grpc/ForwardingCall.php create mode 100644 vendor/google/gax/src/Transport/Grpc/ForwardingServerStreamingCall.php create mode 100644 vendor/google/gax/src/Transport/Grpc/ForwardingUnaryCall.php create mode 100644 vendor/google/gax/src/Transport/Grpc/ServerStreamingCallWrapper.php create mode 100644 vendor/google/gax/src/Transport/Grpc/UnaryInterceptorInterface.php create mode 100644 vendor/google/gax/src/Transport/GrpcFallbackTransport.php create mode 100644 vendor/google/gax/src/Transport/GrpcTransport.php create mode 100644 vendor/google/gax/src/Transport/HttpUnaryTransportTrait.php create mode 100644 vendor/google/gax/src/Transport/Rest/JsonStreamDecoder.php create mode 100644 vendor/google/gax/src/Transport/Rest/RestServerStreamingCall.php create mode 100644 vendor/google/gax/src/Transport/RestTransport.php create mode 100644 vendor/google/gax/src/Transport/TransportInterface.php create mode 100644 vendor/google/gax/src/UriTrait.php create mode 100644 vendor/google/gax/src/ValidationException.php create mode 100644 vendor/google/gax/src/ValidationTrait.php create mode 100644 vendor/google/gax/src/Version.php create mode 100644 vendor/google/grpc-gcp/.github/release-please.yml create mode 100644 vendor/google/grpc-gcp/.github/workflows/tests.yml create mode 100644 vendor/google/grpc-gcp/.gitmodules create mode 100644 vendor/google/grpc-gcp/.php_cs.dist create mode 100644 vendor/google/grpc-gcp/LICENSE create mode 100644 vendor/google/grpc-gcp/README.md create mode 100755 vendor/google/grpc-gcp/cloudprober/bins/opt/grpc_php_plugin create mode 100644 vendor/google/grpc-gcp/cloudprober/cloudprober.cfg create mode 100755 vendor/google/grpc-gcp/cloudprober/codegen.sh create mode 100644 vendor/google/grpc-gcp/cloudprober/composer.json create mode 100644 vendor/google/grpc-gcp/cloudprober/grpc_gpc_prober/firestore_probes.php create mode 100644 vendor/google/grpc-gcp/cloudprober/grpc_gpc_prober/prober.php create mode 100644 vendor/google/grpc-gcp/cloudprober/grpc_gpc_prober/spanner_probes.php create mode 100644 vendor/google/grpc-gcp/cloudprober/grpc_gpc_prober/stackdriver_util.php create mode 100644 vendor/google/grpc-gcp/composer.json create mode 100644 vendor/google/grpc-gcp/doc/gRPC-client-user-guide.md create mode 100644 vendor/google/grpc-gcp/src/ChannelRef.php create mode 100644 vendor/google/grpc-gcp/src/Config.php create mode 100644 vendor/google/grpc-gcp/src/CreatedByDeserializeCheck.php create mode 100644 vendor/google/grpc-gcp/src/GCPBidiStreamingCall.php create mode 100644 vendor/google/grpc-gcp/src/GCPCallInvoker.php create mode 100644 vendor/google/grpc-gcp/src/GCPClientStreamCall.php create mode 100644 vendor/google/grpc-gcp/src/GCPServerStreamCall.php create mode 100644 vendor/google/grpc-gcp/src/GCPUnaryCall.php create mode 100644 vendor/google/grpc-gcp/src/GcpBaseCall.php create mode 100644 vendor/google/grpc-gcp/src/GcpExtensionChannel.php create mode 100644 vendor/google/grpc-gcp/src/generated/GPBMetadata/GrpcGcp.php create mode 100644 vendor/google/grpc-gcp/src/generated/Grpc/Gcp/AffinityConfig.php create mode 100644 vendor/google/grpc-gcp/src/generated/Grpc/Gcp/AffinityConfig_Command.php create mode 100644 vendor/google/grpc-gcp/src/generated/Grpc/Gcp/ApiConfig.php create mode 100644 vendor/google/grpc-gcp/src/generated/Grpc/Gcp/ChannelPoolConfig.php create mode 100644 vendor/google/grpc-gcp/src/generated/Grpc/Gcp/MethodConfig.php create mode 100644 vendor/google/grpc-gcp/src/grpc_gcp.proto create mode 100644 vendor/google/longrunning/.gitattributes create mode 100644 vendor/google/longrunning/CODE_OF_CONDUCT.md create mode 100644 vendor/google/longrunning/CONTRIBUTING.md create mode 100644 vendor/google/longrunning/LICENSE create mode 100644 vendor/google/longrunning/README.md create mode 100644 vendor/google/longrunning/SECURITY.md create mode 100644 vendor/google/longrunning/VERSION create mode 100644 vendor/google/longrunning/composer.json create mode 100644 vendor/google/longrunning/metadata/Longrunning/Operations.php create mode 100644 vendor/google/longrunning/metadata/README.md create mode 100644 vendor/google/longrunning/src/ApiCore/LongRunning/Gapic/OperationsGapicClient.php create mode 100644 vendor/google/longrunning/src/ApiCore/LongRunning/OperationsClient.php create mode 100644 vendor/google/longrunning/src/LongRunning/CancelOperationRequest.php create mode 100644 vendor/google/longrunning/src/LongRunning/Client/OperationsClient.php create mode 100644 vendor/google/longrunning/src/LongRunning/DeleteOperationRequest.php create mode 100644 vendor/google/longrunning/src/LongRunning/Gapic/OperationsGapicClient.php create mode 100644 vendor/google/longrunning/src/LongRunning/GetOperationRequest.php create mode 100644 vendor/google/longrunning/src/LongRunning/ListOperationsRequest.php create mode 100644 vendor/google/longrunning/src/LongRunning/ListOperationsResponse.php create mode 100644 vendor/google/longrunning/src/LongRunning/Operation.php create mode 100644 vendor/google/longrunning/src/LongRunning/OperationInfo.php create mode 100644 vendor/google/longrunning/src/LongRunning/OperationsClient.php create mode 100644 vendor/google/longrunning/src/LongRunning/OperationsGrpcClient.php create mode 100644 vendor/google/longrunning/src/LongRunning/WaitOperationRequest.php create mode 100644 vendor/google/longrunning/src/LongRunning/resources/operations_client_config.json create mode 100644 vendor/google/longrunning/src/LongRunning/resources/operations_descriptor_config.php create mode 100644 vendor/google/longrunning/src/LongRunning/resources/operations_rest_client_config.php create mode 100644 vendor/google/protobuf/LICENSE create mode 100644 vendor/google/protobuf/README.md create mode 100644 vendor/google/protobuf/composer.json create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Any.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Api.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Duration.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/FieldMask.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/GPBEmpty.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Internal/Descriptor.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/SourceContext.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Struct.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Timestamp.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Type.php create mode 100644 vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Wrappers.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Any.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Api.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/BoolValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/BytesValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Descriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/DescriptorPool.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/DoubleValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Duration.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Enum.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/EnumDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/EnumValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/EnumValueDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Field.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Field/Cardinality.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Field/Kind.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/FieldDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/FieldMask.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Field_Cardinality.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Field_Kind.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/FloatValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/GPBEmpty.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Int32Value.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Int64Value.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/AnyBase.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/CodedInputStream.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/CodedOutputStream.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/Descriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/DescriptorPool.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/DescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/DescriptorProto/ExtensionRange.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/DescriptorProto/ReservedRange.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/Edition.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumBuilderContext.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumDescriptorProto/EnumReservedRange.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumValueDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/EnumValueOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/ExtensionRangeOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/ExtensionRangeOptions/Declaration.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/ExtensionRangeOptions/VerificationState.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/EnforceNamingStyle.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/EnumType.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/FieldPresence.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/JsonFormat.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/MessageEncoding.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/RepeatedFieldEncoding.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/Utf8Validation.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/VisibilityFeature.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSet/VisibilityFeature/DefaultSymbolVisibility.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSetDefaults.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FeatureSetDefaults/FeatureSetEditionDefault.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldDescriptorProto/Label.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldDescriptorProto/Type.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions/CType.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions/EditionDefault.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions/FeatureSupport.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions/JSType.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions/OptionRetention.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FieldOptions/OptionTargetType.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FileDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FileDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FileDescriptorSet.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FileOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/FileOptions/OptimizeMode.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBDecodeException.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBJsonWire.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBLabel.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBType.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBUtil.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBWire.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GPBWireType.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GeneratedCodeInfo.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GeneratedCodeInfo/Annotation.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GeneratedCodeInfo/Annotation/Semantic.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/GetPublicDescriptorTrait.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/HasPublicDescriptorTrait.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MapEntry.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MapField.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MapFieldIter.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/Message.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MessageBuilderContext.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MessageOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MethodDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MethodOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/MethodOptions/IdempotencyLevel.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/OneofDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/OneofDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/OneofField.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/OneofOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/RawInputStream.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedField.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/RepeatedFieldIter.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/ServiceDescriptorProto.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/ServiceOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/SourceCodeInfo.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/SourceCodeInfo/Location.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/SymbolVisibility.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/TimestampBase.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/UninterpretedOption.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Internal/UninterpretedOption/NamePart.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/ListValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Method.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Mixin.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/NullValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/OneofDescriptor.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Option.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/PrintOptions.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/RepeatedField.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/SourceContext.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/StringValue.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Struct.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Syntax.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Timestamp.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Type.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/UInt32Value.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/UInt64Value.php create mode 100644 vendor/google/protobuf/src/Google/Protobuf/Value.php create mode 100644 vendor/google/protobuf/src/phpdoc.dist.xml create mode 100644 vendor/grpc/grpc/LICENSE create mode 100644 vendor/grpc/grpc/MAINTAINERS.md create mode 100644 vendor/grpc/grpc/README.md create mode 100644 vendor/grpc/grpc/composer.json create mode 100644 vendor/grpc/grpc/etc/roots.pem create mode 100644 vendor/grpc/grpc/src/lib/AbstractCall.php create mode 100644 vendor/grpc/grpc/src/lib/BaseStub.php create mode 100644 vendor/grpc/grpc/src/lib/BidiStreamingCall.php create mode 100644 vendor/grpc/grpc/src/lib/CallInvoker.php create mode 100644 vendor/grpc/grpc/src/lib/ClientStreamingCall.php create mode 100644 vendor/grpc/grpc/src/lib/DefaultCallInvoker.php create mode 100644 vendor/grpc/grpc/src/lib/Interceptor.php create mode 100644 vendor/grpc/grpc/src/lib/Internal/InterceptorChannel.php create mode 100644 vendor/grpc/grpc/src/lib/MethodDescriptor.php create mode 100644 vendor/grpc/grpc/src/lib/RpcServer.php create mode 100644 vendor/grpc/grpc/src/lib/ServerCallReader.php create mode 100644 vendor/grpc/grpc/src/lib/ServerCallWriter.php create mode 100644 vendor/grpc/grpc/src/lib/ServerContext.php create mode 100644 vendor/grpc/grpc/src/lib/ServerStreamingCall.php create mode 100644 vendor/grpc/grpc/src/lib/Status.php create mode 100644 vendor/grpc/grpc/src/lib/UnaryCall.php create mode 100644 vendor/guzzlehttp/guzzle/CHANGELOG.md create mode 100644 vendor/guzzlehttp/guzzle/LICENSE create mode 100644 vendor/guzzlehttp/guzzle/README.md create mode 100644 vendor/guzzlehttp/guzzle/UPGRADING.md create mode 100644 vendor/guzzlehttp/guzzle/composer.json create mode 100644 vendor/guzzlehttp/guzzle/package-lock.json create mode 100644 vendor/guzzlehttp/guzzle/src/BodySummarizer.php create mode 100644 vendor/guzzlehttp/guzzle/src/BodySummarizerInterface.php create mode 100644 vendor/guzzlehttp/guzzle/src/Client.php create mode 100644 vendor/guzzlehttp/guzzle/src/ClientInterface.php create mode 100644 vendor/guzzlehttp/guzzle/src/ClientTrait.php create mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php create mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php create mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php create mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php create mode 100644 vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ClientException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/RequestException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/ServerException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Exception/TransferException.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/HeaderProcessor.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/Proxy.php create mode 100644 vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php create mode 100644 vendor/guzzlehttp/guzzle/src/HandlerStack.php create mode 100644 vendor/guzzlehttp/guzzle/src/MessageFormatter.php create mode 100644 vendor/guzzlehttp/guzzle/src/MessageFormatterInterface.php create mode 100644 vendor/guzzlehttp/guzzle/src/Middleware.php create mode 100644 vendor/guzzlehttp/guzzle/src/Pool.php create mode 100644 vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php create mode 100644 vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php create mode 100644 vendor/guzzlehttp/guzzle/src/RequestOptions.php create mode 100644 vendor/guzzlehttp/guzzle/src/RetryMiddleware.php create mode 100644 vendor/guzzlehttp/guzzle/src/TransferStats.php create mode 100644 vendor/guzzlehttp/guzzle/src/Utils.php create mode 100644 vendor/guzzlehttp/guzzle/src/functions.php create mode 100644 vendor/guzzlehttp/guzzle/src/functions_include.php create mode 100644 vendor/guzzlehttp/promises/CHANGELOG.md create mode 100644 vendor/guzzlehttp/promises/LICENSE create mode 100644 vendor/guzzlehttp/promises/README.md create mode 100644 vendor/guzzlehttp/promises/composer.json create mode 100644 vendor/guzzlehttp/promises/src/AggregateException.php create mode 100644 vendor/guzzlehttp/promises/src/CancellationException.php create mode 100644 vendor/guzzlehttp/promises/src/Coroutine.php create mode 100644 vendor/guzzlehttp/promises/src/Create.php create mode 100644 vendor/guzzlehttp/promises/src/Each.php create mode 100644 vendor/guzzlehttp/promises/src/EachPromise.php create mode 100644 vendor/guzzlehttp/promises/src/FulfilledPromise.php create mode 100644 vendor/guzzlehttp/promises/src/Is.php create mode 100644 vendor/guzzlehttp/promises/src/Promise.php create mode 100644 vendor/guzzlehttp/promises/src/PromiseInterface.php create mode 100644 vendor/guzzlehttp/promises/src/PromisorInterface.php create mode 100644 vendor/guzzlehttp/promises/src/RejectedPromise.php create mode 100644 vendor/guzzlehttp/promises/src/RejectionException.php create mode 100644 vendor/guzzlehttp/promises/src/TaskQueue.php create mode 100644 vendor/guzzlehttp/promises/src/TaskQueueInterface.php create mode 100644 vendor/guzzlehttp/promises/src/Utils.php create mode 100644 vendor/guzzlehttp/psr7/CHANGELOG.md create mode 100644 vendor/guzzlehttp/psr7/LICENSE create mode 100644 vendor/guzzlehttp/psr7/README.md create mode 100644 vendor/guzzlehttp/psr7/composer.json create mode 100644 vendor/guzzlehttp/psr7/src/AppendStream.php create mode 100644 vendor/guzzlehttp/psr7/src/BufferStream.php create mode 100644 vendor/guzzlehttp/psr7/src/CachingStream.php create mode 100644 vendor/guzzlehttp/psr7/src/DroppingStream.php create mode 100644 vendor/guzzlehttp/psr7/src/Exception/MalformedUriException.php create mode 100644 vendor/guzzlehttp/psr7/src/FnStream.php create mode 100644 vendor/guzzlehttp/psr7/src/Header.php create mode 100644 vendor/guzzlehttp/psr7/src/HttpFactory.php create mode 100644 vendor/guzzlehttp/psr7/src/InflateStream.php create mode 100644 vendor/guzzlehttp/psr7/src/LazyOpenStream.php create mode 100644 vendor/guzzlehttp/psr7/src/LimitStream.php create mode 100644 vendor/guzzlehttp/psr7/src/Message.php create mode 100644 vendor/guzzlehttp/psr7/src/MessageTrait.php create mode 100644 vendor/guzzlehttp/psr7/src/MimeType.php create mode 100644 vendor/guzzlehttp/psr7/src/MultipartStream.php create mode 100644 vendor/guzzlehttp/psr7/src/NoSeekStream.php create mode 100644 vendor/guzzlehttp/psr7/src/PumpStream.php create mode 100644 vendor/guzzlehttp/psr7/src/Query.php create mode 100644 vendor/guzzlehttp/psr7/src/Request.php create mode 100644 vendor/guzzlehttp/psr7/src/Response.php create mode 100644 vendor/guzzlehttp/psr7/src/Rfc7230.php create mode 100644 vendor/guzzlehttp/psr7/src/ServerRequest.php create mode 100644 vendor/guzzlehttp/psr7/src/Stream.php create mode 100644 vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php create mode 100644 vendor/guzzlehttp/psr7/src/StreamWrapper.php create mode 100644 vendor/guzzlehttp/psr7/src/UploadedFile.php create mode 100644 vendor/guzzlehttp/psr7/src/Uri.php create mode 100644 vendor/guzzlehttp/psr7/src/UriComparator.php create mode 100644 vendor/guzzlehttp/psr7/src/UriNormalizer.php create mode 100644 vendor/guzzlehttp/psr7/src/UriResolver.php create mode 100644 vendor/guzzlehttp/psr7/src/Utils.php create mode 100644 vendor/psr/cache/CHANGELOG.md create mode 100644 vendor/psr/cache/LICENSE.txt create mode 100644 vendor/psr/cache/README.md create mode 100644 vendor/psr/cache/composer.json create mode 100644 vendor/psr/cache/src/CacheException.php create mode 100644 vendor/psr/cache/src/CacheItemInterface.php create mode 100644 vendor/psr/cache/src/CacheItemPoolInterface.php create mode 100644 vendor/psr/cache/src/InvalidArgumentException.php create mode 100644 vendor/psr/http-client/CHANGELOG.md create mode 100644 vendor/psr/http-client/LICENSE create mode 100644 vendor/psr/http-client/README.md create mode 100644 vendor/psr/http-client/composer.json create mode 100644 vendor/psr/http-client/src/ClientExceptionInterface.php create mode 100644 vendor/psr/http-client/src/ClientInterface.php create mode 100644 vendor/psr/http-client/src/NetworkExceptionInterface.php create mode 100644 vendor/psr/http-client/src/RequestExceptionInterface.php create mode 100644 vendor/psr/http-factory/LICENSE create mode 100644 vendor/psr/http-factory/README.md create mode 100644 vendor/psr/http-factory/composer.json create mode 100644 vendor/psr/http-factory/src/RequestFactoryInterface.php create mode 100644 vendor/psr/http-factory/src/ResponseFactoryInterface.php create mode 100644 vendor/psr/http-factory/src/ServerRequestFactoryInterface.php create mode 100644 vendor/psr/http-factory/src/StreamFactoryInterface.php create mode 100644 vendor/psr/http-factory/src/UploadedFileFactoryInterface.php create mode 100644 vendor/psr/http-factory/src/UriFactoryInterface.php create mode 100644 vendor/psr/http-message/CHANGELOG.md create mode 100644 vendor/psr/http-message/LICENSE create mode 100644 vendor/psr/http-message/README.md create mode 100644 vendor/psr/http-message/composer.json create mode 100644 vendor/psr/http-message/docs/PSR7-Interfaces.md create mode 100644 vendor/psr/http-message/docs/PSR7-Usage.md create mode 100644 vendor/psr/http-message/src/MessageInterface.php create mode 100644 vendor/psr/http-message/src/RequestInterface.php create mode 100644 vendor/psr/http-message/src/ResponseInterface.php create mode 100644 vendor/psr/http-message/src/ServerRequestInterface.php create mode 100644 vendor/psr/http-message/src/StreamInterface.php create mode 100644 vendor/psr/http-message/src/UploadedFileInterface.php create mode 100644 vendor/psr/http-message/src/UriInterface.php create mode 100644 vendor/psr/log/LICENSE create mode 100644 vendor/psr/log/README.md create mode 100644 vendor/psr/log/composer.json create mode 100644 vendor/psr/log/src/AbstractLogger.php create mode 100644 vendor/psr/log/src/InvalidArgumentException.php create mode 100644 vendor/psr/log/src/LogLevel.php create mode 100644 vendor/psr/log/src/LoggerAwareInterface.php create mode 100644 vendor/psr/log/src/LoggerAwareTrait.php create mode 100644 vendor/psr/log/src/LoggerInterface.php create mode 100644 vendor/psr/log/src/LoggerTrait.php create mode 100644 vendor/psr/log/src/NullLogger.php create mode 100644 vendor/ralouphie/getallheaders/LICENSE create mode 100644 vendor/ralouphie/getallheaders/README.md create mode 100644 vendor/ralouphie/getallheaders/composer.json create mode 100644 vendor/ralouphie/getallheaders/src/getallheaders.php create mode 100644 vendor/ramsey/collection/LICENSE create mode 100644 vendor/ramsey/collection/README.md create mode 100644 vendor/ramsey/collection/SECURITY.md create mode 100644 vendor/ramsey/collection/composer.json create mode 100644 vendor/ramsey/collection/src/AbstractArray.php create mode 100644 vendor/ramsey/collection/src/AbstractCollection.php create mode 100644 vendor/ramsey/collection/src/AbstractSet.php create mode 100644 vendor/ramsey/collection/src/ArrayInterface.php create mode 100644 vendor/ramsey/collection/src/Collection.php create mode 100644 vendor/ramsey/collection/src/CollectionInterface.php create mode 100644 vendor/ramsey/collection/src/DoubleEndedQueue.php create mode 100644 vendor/ramsey/collection/src/DoubleEndedQueueInterface.php create mode 100644 vendor/ramsey/collection/src/Exception/CollectionException.php create mode 100644 vendor/ramsey/collection/src/Exception/CollectionMismatchException.php create mode 100644 vendor/ramsey/collection/src/Exception/InvalidArgumentException.php create mode 100644 vendor/ramsey/collection/src/Exception/InvalidPropertyOrMethod.php create mode 100644 vendor/ramsey/collection/src/Exception/NoSuchElementException.php create mode 100644 vendor/ramsey/collection/src/Exception/OutOfBoundsException.php create mode 100644 vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php create mode 100644 vendor/ramsey/collection/src/GenericArray.php create mode 100644 vendor/ramsey/collection/src/Map/AbstractMap.php create mode 100644 vendor/ramsey/collection/src/Map/AbstractTypedMap.php create mode 100644 vendor/ramsey/collection/src/Map/AssociativeArrayMap.php create mode 100644 vendor/ramsey/collection/src/Map/MapInterface.php create mode 100644 vendor/ramsey/collection/src/Map/NamedParameterMap.php create mode 100644 vendor/ramsey/collection/src/Map/TypedMap.php create mode 100644 vendor/ramsey/collection/src/Map/TypedMapInterface.php create mode 100644 vendor/ramsey/collection/src/Queue.php create mode 100644 vendor/ramsey/collection/src/QueueInterface.php create mode 100644 vendor/ramsey/collection/src/Set.php create mode 100644 vendor/ramsey/collection/src/Sort.php create mode 100644 vendor/ramsey/collection/src/Tool/TypeTrait.php create mode 100644 vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php create mode 100644 vendor/ramsey/collection/src/Tool/ValueToStringTrait.php create mode 100644 vendor/ramsey/uuid/LICENSE create mode 100644 vendor/ramsey/uuid/README.md create mode 100644 vendor/ramsey/uuid/composer.json create mode 100644 vendor/ramsey/uuid/src/BinaryUtils.php create mode 100644 vendor/ramsey/uuid/src/Builder/BuilderCollection.php create mode 100644 vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php create mode 100644 vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php create mode 100644 vendor/ramsey/uuid/src/Builder/FallbackBuilder.php create mode 100644 vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php create mode 100644 vendor/ramsey/uuid/src/Codec/CodecInterface.php create mode 100644 vendor/ramsey/uuid/src/Codec/GuidStringCodec.php create mode 100644 vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php create mode 100644 vendor/ramsey/uuid/src/Codec/StringCodec.php create mode 100644 vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php create mode 100644 vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php create mode 100644 vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/Number/GenericNumberConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php create mode 100644 vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php create mode 100644 vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php create mode 100644 vendor/ramsey/uuid/src/DegradedUuid.php create mode 100644 vendor/ramsey/uuid/src/DeprecatedUuidInterface.php create mode 100644 vendor/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php create mode 100644 vendor/ramsey/uuid/src/Exception/BuilderNotFoundException.php create mode 100644 vendor/ramsey/uuid/src/Exception/DateTimeException.php create mode 100644 vendor/ramsey/uuid/src/Exception/DceSecurityException.php create mode 100644 vendor/ramsey/uuid/src/Exception/InvalidArgumentException.php create mode 100644 vendor/ramsey/uuid/src/Exception/InvalidBytesException.php create mode 100644 vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php create mode 100644 vendor/ramsey/uuid/src/Exception/NameException.php create mode 100644 vendor/ramsey/uuid/src/Exception/NodeException.php create mode 100644 vendor/ramsey/uuid/src/Exception/RandomSourceException.php create mode 100644 vendor/ramsey/uuid/src/Exception/TimeSourceException.php create mode 100644 vendor/ramsey/uuid/src/Exception/UnableToBuildUuidException.php create mode 100644 vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php create mode 100644 vendor/ramsey/uuid/src/Exception/UuidExceptionInterface.php create mode 100644 vendor/ramsey/uuid/src/FeatureSet.php create mode 100644 vendor/ramsey/uuid/src/Fields/FieldsInterface.php create mode 100644 vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php create mode 100644 vendor/ramsey/uuid/src/Generator/CombGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/DceSecurityGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/DceSecurityGeneratorInterface.php create mode 100644 vendor/ramsey/uuid/src/Generator/DefaultNameGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/NameGeneratorFactory.php create mode 100644 vendor/ramsey/uuid/src/Generator/NameGeneratorInterface.php create mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php create mode 100644 vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php create mode 100644 vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php create mode 100644 vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php create mode 100644 vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php create mode 100644 vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php create mode 100644 vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php create mode 100644 vendor/ramsey/uuid/src/Guid/Fields.php create mode 100644 vendor/ramsey/uuid/src/Guid/Guid.php create mode 100644 vendor/ramsey/uuid/src/Guid/GuidBuilder.php create mode 100644 vendor/ramsey/uuid/src/Lazy/LazyUuidFromString.php create mode 100644 vendor/ramsey/uuid/src/Math/BrickMathCalculator.php create mode 100644 vendor/ramsey/uuid/src/Math/CalculatorInterface.php create mode 100644 vendor/ramsey/uuid/src/Math/RoundingMode.php create mode 100644 vendor/ramsey/uuid/src/Nonstandard/Fields.php create mode 100644 vendor/ramsey/uuid/src/Nonstandard/Uuid.php create mode 100644 vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php create mode 100644 vendor/ramsey/uuid/src/Nonstandard/UuidV6.php create mode 100644 vendor/ramsey/uuid/src/Provider/Dce/SystemDceSecurityProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/DceSecurityProviderInterface.php create mode 100644 vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/Node/NodeProviderCollection.php create mode 100644 vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/Node/StaticNodeProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php create mode 100644 vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php create mode 100644 vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/Fields.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/FieldsInterface.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/NilTrait.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/NilUuid.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidInterface.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV1.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV2.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV3.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV4.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV5.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV6.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV7.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/UuidV8.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/Validator.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php create mode 100644 vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php create mode 100644 vendor/ramsey/uuid/src/Type/Decimal.php create mode 100644 vendor/ramsey/uuid/src/Type/Hexadecimal.php create mode 100644 vendor/ramsey/uuid/src/Type/Integer.php create mode 100644 vendor/ramsey/uuid/src/Type/NumberInterface.php create mode 100644 vendor/ramsey/uuid/src/Type/Time.php create mode 100644 vendor/ramsey/uuid/src/Type/TypeInterface.php create mode 100644 vendor/ramsey/uuid/src/Uuid.php create mode 100644 vendor/ramsey/uuid/src/UuidFactory.php create mode 100644 vendor/ramsey/uuid/src/UuidFactoryInterface.php create mode 100644 vendor/ramsey/uuid/src/UuidInterface.php create mode 100644 vendor/ramsey/uuid/src/Validator/GenericValidator.php create mode 100644 vendor/ramsey/uuid/src/Validator/ValidatorInterface.php create mode 100644 vendor/ramsey/uuid/src/functions.php create mode 100644 vendor/symfony/deprecation-contracts/CHANGELOG.md create mode 100644 vendor/symfony/deprecation-contracts/LICENSE create mode 100644 vendor/symfony/deprecation-contracts/README.md create mode 100644 vendor/symfony/deprecation-contracts/composer.json create mode 100644 vendor/symfony/deprecation-contracts/function.php diff --git a/chatbot.php b/chatbot.php new file mode 100644 index 0000000..73c5a6b --- /dev/null +++ b/chatbot.php @@ -0,0 +1,78 @@ + + + + + + Chatbot + + + +
+
+
+
+
+ + +
+
+ + + + \ No newline at end of file diff --git a/chatbot_api.php b/chatbot_api.php new file mode 100644 index 0000000..2fc6a2b --- /dev/null +++ b/chatbot_api.php @@ -0,0 +1,73 @@ + $credentialsPath + ]); + + // Format the session name + $session = $sessionsClient->sessionName($projectId, $sessionId); + + // Create a new text input + $textInput = new TextInput(); + $textInput->setText($text); + $textInput->setLanguageCode($languageCode); + + // Create a new query input + $queryInput = new QueryInput(); + $queryInput->setText($textInput); + + // Detect the intent + $response = $sessionsClient->detectIntent($session, $queryInput); + $queryResult = $response->getQueryResult(); + $fulfillmentText = $queryResult->getFulfillmentText(); + + // Close the sessions client + $sessionsClient->close(); + + return $fulfillmentText; + + } catch (Exception $e) { + // Return a generic error message + error_log($e->getMessage()); + return "Error processing your request."; + } +} + +// Get the user's message from the POST request +$data = json_decode(file_get_contents('php://input'), true); +$userMessage = $data['message'] ?? ''; +$sessionId = $data['sessionId'] ?? session_id(); // Use PHP session ID as Dialogflow session ID + +// Your Google Cloud Project ID +$projectId = 'chrivia-asxi'; + +// Get the bot's reply from Dialogflow +if (!empty($userMessage)) { + $botReply = detect_intent_texts($projectId, $userMessage, $sessionId); +} else { + $botReply = 'Please say something.'; +} + +// Return the bot's reply as JSON +echo json_encode(['reply' => $botReply]); \ No newline at end of file diff --git a/composer-setup.php b/composer-setup.php new file mode 100644 index 0000000..18df37f --- /dev/null +++ b/composer-setup.php @@ -0,0 +1,1781 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +setupEnvironment(); +process(is_array($argv) ? $argv : array()); + +/** + * Initializes various values + * + * @throws RuntimeException If uopz extension prevents exit calls + */ +function setupEnvironment() +{ + ini_set('display_errors', 1); + + if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { + // uopz works at opcode level and disables exit calls + if (function_exists('uopz_allow_exit')) { + @uopz_allow_exit(true); + } else { + throw new RuntimeException('The uopz extension ignores exit calls and breaks this installer.'); + } + } + + $installer = 'ComposerInstaller'; + + if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + if ($version = getenv('COMPOSERSETUP')) { + $installer = sprintf('Composer-Setup.exe/%s', $version); + } + } + + define('COMPOSER_INSTALLER', $installer); +} + +/** + * Processes the installer + */ +function process($argv) +{ + // Determine ANSI output from --ansi and --no-ansi flags + setUseAnsi($argv); + + $help = in_array('--help', $argv) || in_array('-h', $argv); + if ($help) { + displayHelp(); + exit(0); + } + + $check = in_array('--check', $argv); + $force = in_array('--force', $argv); + $quiet = in_array('--quiet', $argv); + $channel = 'stable'; + if (in_array('--snapshot', $argv)) { + $channel = 'snapshot'; + } elseif (in_array('--preview', $argv)) { + $channel = 'preview'; + } elseif (in_array('--1', $argv)) { + $channel = '1'; + } elseif (in_array('--2', $argv)) { + $channel = '2'; + } elseif (in_array('--2.2', $argv)) { + $channel = '2.2'; + } + $disableTls = in_array('--disable-tls', $argv); + $installDir = getOptValue('--install-dir', $argv, false); + $version = getOptValue('--version', $argv, false); + $filename = getOptValue('--filename', $argv, 'composer.phar'); + $cafile = getOptValue('--cafile', $argv, false); + + if (!checkParams($installDir, $version, $cafile)) { + exit(1); + } + + $ok = checkPlatform($warnings, $quiet, $disableTls, true); + + if ($check) { + // Only show warnings if we haven't output any errors + if ($ok) { + showWarnings($warnings); + showSecurityWarning($disableTls); + } + exit($ok ? 0 : 1); + } + + if ($ok || $force) { + if ($channel === '1' && !$quiet) { + out('Warning: You forced the install of Composer 1.x via --1, but Composer 2.x is the latest stable version. Updating to it via composer self-update --stable is recommended.', 'error'); + } + + $installer = new Installer($quiet, $disableTls, $cafile); + if ($installer->run($version, $installDir, $filename, $channel)) { + showWarnings($warnings); + showSecurityWarning($disableTls); + exit(0); + } + } + + exit(1); +} + +/** + * Displays the help + */ +function displayHelp() +{ + echo << $value) { + $next = $key + 1; + if (0 === strpos($value, $opt)) { + if ($optLength === strlen($value) && isset($argv[$next])) { + return trim($argv[$next]); + } else { + return trim(substr($value, $optLength + 1)); + } + } + } + + return $default; +} + +/** + * Checks that user-supplied params are valid + * + * @param mixed $installDir The required istallation directory + * @param mixed $version The required composer version to install + * @param mixed $cafile Certificate Authority file + * + * @return bool True if the supplied params are okay + */ +function checkParams($installDir, $version, $cafile) +{ + $result = true; + + if (false !== $installDir && !is_dir($installDir)) { + out("The defined install dir ({$installDir}) does not exist.", 'info'); + $result = false; + } + + if (false !== $version && 1 !== preg_match('/^\d+\.\d+\.\d+(\-(alpha|beta|RC)\d*)*$/', $version)) { + out("The defined install version ({$version}) does not match release pattern.", 'info'); + $result = false; + } + + if (false !== $cafile && (!file_exists($cafile) || !is_readable($cafile))) { + out("The defined Certificate Authority (CA) cert file ({$cafile}) does not exist or is not readable.", 'info'); + $result = false; + } + return $result; +} + +/** + * Checks the platform for possible issues running Composer + * + * Errors are written to the output, warnings are saved for later display. + * + * @param array $warnings Populated by method, to be shown later + * @param bool $quiet Quiet mode + * @param bool $disableTls Bypass tls + * @param bool $install If we are installing, rather than diagnosing + * + * @return bool True if there are no errors + */ +function checkPlatform(&$warnings, $quiet, $disableTls, $install) +{ + getPlatformIssues($errors, $warnings, $install); + + // Make openssl warning an error if tls has not been specifically disabled + if (isset($warnings['openssl']) && !$disableTls) { + $errors['openssl'] = $warnings['openssl']; + unset($warnings['openssl']); + } + + if (!empty($errors)) { + // Composer-Setup.exe uses "Some settings" to flag platform errors + out('Some settings on your machine make Composer unable to work properly.', 'error'); + out('Make sure that you fix the issues listed below and run this script again:', 'error'); + outputIssues($errors); + return false; + } + + if (empty($warnings) && !$quiet) { + out('All settings correct for using Composer', 'success'); + } + return true; +} + +/** + * Checks platform configuration for common incompatibility issues + * + * @param array $errors Populated by method + * @param array $warnings Populated by method + * @param bool $install If we are installing, rather than diagnosing + * + * @return bool If any errors or warnings have been found + */ +function getPlatformIssues(&$errors, &$warnings, $install) +{ + $errors = array(); + $warnings = array(); + + $iniMessage = PHP_EOL.getIniMessage(); + $iniMessage .= PHP_EOL.'If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times.'; + + if (ini_get('detect_unicode')) { + $errors['unicode'] = array( + 'The detect_unicode setting must be disabled.', + 'Add the following to the end of your `php.ini`:', + ' detect_unicode = Off', + $iniMessage + ); + } + + if (extension_loaded('suhosin')) { + $suhosin = ini_get('suhosin.executor.include.whitelist'); + $suhosinBlacklist = ini_get('suhosin.executor.include.blacklist'); + if (false === stripos($suhosin, 'phar') && (!$suhosinBlacklist || false !== stripos($suhosinBlacklist, 'phar'))) { + $errors['suhosin'] = array( + 'The suhosin.executor.include.whitelist setting is incorrect.', + 'Add the following to the end of your `php.ini` or suhosin.ini (Example path [for Debian]: /etc/php5/cli/conf.d/suhosin.ini):', + ' suhosin.executor.include.whitelist = phar '.$suhosin, + $iniMessage + ); + } + } + + if (!function_exists('json_decode')) { + $errors['json'] = array( + 'The json extension is missing.', + 'Install it or recompile php without --disable-json' + ); + } + + if (!extension_loaded('Phar')) { + $errors['phar'] = array( + 'The phar extension is missing.', + 'Install it or recompile php without --disable-phar' + ); + } + + if (!extension_loaded('filter')) { + $errors['filter'] = array( + 'The filter extension is missing.', + 'Install it or recompile php without --disable-filter' + ); + } + + if (!extension_loaded('hash')) { + $errors['hash'] = array( + 'The hash extension is missing.', + 'Install it or recompile php without --disable-hash' + ); + } + + if (!extension_loaded('iconv') && !extension_loaded('mbstring')) { + $errors['iconv_mbstring'] = array( + 'The iconv OR mbstring extension is required and both are missing.', + 'Install either of them or recompile php without --disable-iconv' + ); + } + + if (!ini_get('allow_url_fopen')) { + $errors['allow_url_fopen'] = array( + 'The allow_url_fopen setting is incorrect.', + 'Add the following to the end of your `php.ini`:', + ' allow_url_fopen = On', + $iniMessage + ); + } + + if (extension_loaded('ionCube Loader') && ioncube_loader_iversion() < 40009) { + $ioncube = ioncube_loader_version(); + $errors['ioncube'] = array( + 'Your ionCube Loader extension ('.$ioncube.') is incompatible with Phar files.', + 'Upgrade to ionCube 4.0.9 or higher or remove this line (path may be different) from your `php.ini` to disable it:', + ' zend_extension = /usr/lib/php5/20090626+lfs/ioncube_loader_lin_5.3.so', + $iniMessage + ); + } + + if (version_compare(PHP_VERSION, '5.3.2', '<')) { + $errors['php'] = array( + 'Your PHP ('.PHP_VERSION.') is too old, you must upgrade to PHP 5.3.2 or higher.' + ); + } + + if (version_compare(PHP_VERSION, '5.3.4', '<')) { + $warnings['php'] = array( + 'Your PHP ('.PHP_VERSION.') is quite old, upgrading to PHP 5.3.4 or higher is recommended.', + 'Composer works with 5.3.2+ for most people, but there might be edge case issues.' + ); + } + + if (!extension_loaded('openssl')) { + $warnings['openssl'] = array( + 'The openssl extension is missing, which means that secure HTTPS transfers are impossible.', + 'If possible you should enable it or recompile php with --with-openssl' + ); + } + + if (extension_loaded('openssl') && OPENSSL_VERSION_NUMBER < 0x1000100f) { + // Attempt to parse version number out, fallback to whole string value. + $opensslVersion = trim(strstr(OPENSSL_VERSION_TEXT, ' ')); + $opensslVersion = substr($opensslVersion, 0, strpos($opensslVersion, ' ')); + $opensslVersion = $opensslVersion ? $opensslVersion : OPENSSL_VERSION_TEXT; + + $warnings['openssl_version'] = array( + 'The OpenSSL library ('.$opensslVersion.') used by PHP does not support TLSv1.2 or TLSv1.1.', + 'If possible you should upgrade OpenSSL to version 1.0.1 or above.' + ); + } + + if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && ini_get('apc.enable_cli')) { + $warnings['apc_cli'] = array( + 'The apc.enable_cli setting is incorrect.', + 'Add the following to the end of your `php.ini`:', + ' apc.enable_cli = Off', + $iniMessage + ); + } + + if (!$install && extension_loaded('xdebug')) { + $warnings['xdebug_loaded'] = array( + 'The xdebug extension is loaded, this can slow down Composer a little.', + 'Disabling it when using Composer is recommended.' + ); + + if (ini_get('xdebug.profiler_enabled')) { + $warnings['xdebug_profile'] = array( + 'The xdebug.profiler_enabled setting is enabled, this can slow down Composer a lot.', + 'Add the following to the end of your `php.ini` to disable it:', + ' xdebug.profiler_enabled = 0', + $iniMessage + ); + } + } + + if (!extension_loaded('zlib')) { + $warnings['zlib'] = array( + 'The zlib extension is not loaded, this can slow down Composer a lot.', + 'If possible, install it or recompile php with --with-zlib', + $iniMessage + ); + } + + if (defined('PHP_WINDOWS_VERSION_BUILD') + && (version_compare(PHP_VERSION, '7.2.23', '<') + || (version_compare(PHP_VERSION, '7.3.0', '>=') + && version_compare(PHP_VERSION, '7.3.10', '<')))) { + $warnings['onedrive'] = array( + 'The Windows OneDrive folder is not supported on PHP versions below 7.2.23 and 7.3.10.', + 'Upgrade your PHP ('.PHP_VERSION.') to use this location with Composer.' + ); + } + + if (extension_loaded('uopz') && !(ini_get('uopz.disable') || ini_get('uopz.exit'))) { + $warnings['uopz'] = array( + 'The uopz extension ignores exit calls and may not work with all Composer commands.', + 'Disabling it when using Composer is recommended.' + ); + } + + ob_start(); + phpinfo(INFO_GENERAL); + $phpinfo = (string) ob_get_clean(); + if (preg_match('{Configure Command(?: *| *=> *)(.*?)(?:|$)}m', $phpinfo, $match)) { + $configure = $match[1]; + + if (false !== strpos($configure, '--enable-sigchild')) { + $warnings['sigchild'] = array( + 'PHP was compiled with --enable-sigchild which can cause issues on some platforms.', + 'Recompile it without this flag if possible, see also:', + ' https://bugs.php.net/bug.php?id=22999' + ); + } + + if (false !== strpos($configure, '--with-curlwrappers')) { + $warnings['curlwrappers'] = array( + 'PHP was compiled with --with-curlwrappers which will cause issues with HTTP authentication and GitHub.', + 'Recompile it without this flag if possible' + ); + } + } + + // Stringify the message arrays + foreach ($errors as $key => $value) { + $errors[$key] = PHP_EOL.implode(PHP_EOL, $value); + } + + foreach ($warnings as $key => $value) { + $warnings[$key] = PHP_EOL.implode(PHP_EOL, $value); + } + + return !empty($errors) || !empty($warnings); +} + + +/** + * Outputs an array of issues + * + * @param array $issues + */ +function outputIssues($issues) +{ + foreach ($issues as $issue) { + out($issue, 'info'); + } + out(''); +} + +/** + * Outputs any warnings found + * + * @param array $warnings + */ +function showWarnings($warnings) +{ + if (!empty($warnings)) { + out('Some settings on your machine may cause stability issues with Composer.', 'error'); + out('If you encounter issues, try to change the following:', 'error'); + outputIssues($warnings); + } +} + +/** + * Outputs an end of process warning if tls has been bypassed + * + * @param bool $disableTls Bypass tls + */ +function showSecurityWarning($disableTls) +{ + if ($disableTls) { + out('You have instructed the Installer not to enforce SSL/TLS security on remote HTTPS requests.', 'info'); + out('This will leave all downloads during installation vulnerable to Man-In-The-Middle (MITM) attacks', 'info'); + } +} + +/** + * colorize output + */ +function out($text, $color = null, $newLine = true) +{ + $styles = array( + 'success' => "\033[0;32m%s\033[0m", + 'error' => "\033[31;31m%s\033[0m", + 'info' => "\033[33;33m%s\033[0m" + ); + + $format = '%s'; + + if (isset($styles[$color]) && USE_ANSI) { + $format = $styles[$color]; + } + + if ($newLine) { + $format .= PHP_EOL; + } + + printf($format, $text); +} + +/** + * Returns the system-dependent Composer home location, which may not exist + * + * @return string + */ +function getHomeDir() +{ + $home = getenv('COMPOSER_HOME'); + if ($home) { + return $home; + } + + $userDir = getUserDir(); + + if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + return $userDir.'/Composer'; + } + + $dirs = array(); + + if (useXdg()) { + // XDG Base Directory Specifications + $xdgConfig = getenv('XDG_CONFIG_HOME'); + if (!$xdgConfig) { + $xdgConfig = $userDir . '/.config'; + } + + $dirs[] = $xdgConfig . '/composer'; + } + + $dirs[] = $userDir . '/.composer'; + + // select first dir which exists of: $XDG_CONFIG_HOME/composer or ~/.composer + foreach ($dirs as $dir) { + if (is_dir($dir)) { + return $dir; + } + } + + // if none exists, we default to first defined one (XDG one if system uses it, or ~/.composer otherwise) + return $dirs[0]; +} + +/** + * Returns the location of the user directory from the environment + * @throws RuntimeException If the environment value does not exists + * + * @return string + */ +function getUserDir() +{ + $userEnv = defined('PHP_WINDOWS_VERSION_MAJOR') ? 'APPDATA' : 'HOME'; + $userDir = getenv($userEnv); + + if (!$userDir) { + throw new RuntimeException('The '.$userEnv.' or COMPOSER_HOME environment variable must be set for composer to run correctly'); + } + + return rtrim(strtr($userDir, '\\', '/'), '/'); +} + +/** + * @return bool + */ +function useXdg() +{ + foreach (array_keys($_SERVER) as $key) { + if (strpos((string) $key, 'XDG_') === 0) { + return true; + } + } + + if (is_dir('/etc/xdg')) { + return true; + } + + return false; +} + +function validateCaFile($contents) +{ + // assume the CA is valid if php is vulnerable to + // https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html + if ( + PHP_VERSION_ID <= 50327 + || (PHP_VERSION_ID >= 50400 && PHP_VERSION_ID < 50422) + || (PHP_VERSION_ID >= 50500 && PHP_VERSION_ID < 50506) + ) { + return !empty($contents); + } + + return (bool) openssl_x509_parse($contents); +} + +/** + * Returns php.ini location information + * + * @return string + */ +function getIniMessage() +{ + $paths = array((string) php_ini_loaded_file()); + $scanned = php_ini_scanned_files(); + + if ($scanned !== false) { + $paths = array_merge($paths, array_map('trim', explode(',', $scanned))); + } + + // We will have at least one value, which may be empty + if ($paths[0] === '') { + array_shift($paths); + } + + $ini = array_shift($paths); + + if ($ini === null) { + return 'A php.ini file does not exist. You will have to create one.'; + } + + if (count($paths) > 1) { + return 'Your command-line PHP is using multiple ini files. Run `php --ini` to show them.'; + } + + return 'The php.ini used by your command-line PHP is: '.$ini; +} + +class Installer +{ + private $quiet; + private $disableTls; + private $cafile; + private $displayPath; + private $target; + private $tmpFile; + private $tmpCafile; + private $baseUrl; + private $algo; + private $errHandler; + private $httpClient; + private $pubKeys = array(); + private $installs = array(); + + /** + * Constructor - must not do anything that throws an exception + * + * @param bool $quiet Quiet mode + * @param bool $disableTls Bypass tls + * @param mixed $cafile Path to CA bundle, or false + */ + public function __construct($quiet, $disableTls, $caFile) + { + if (($this->quiet = $quiet)) { + ob_start(); + } + $this->disableTls = $disableTls; + $this->cafile = $caFile; + $this->errHandler = new ErrorHandler(); + } + + /** + * Runs the installer + * + * @param mixed $version Specific version to install, or false + * @param mixed $installDir Specific installation directory, or false + * @param string $filename Specific filename to save to, or composer.phar + * @param string $channel Specific version channel to use + * @throws Exception If anything other than a RuntimeException is caught + * + * @return bool If the installation succeeded + */ + public function run($version, $installDir, $filename, $channel) + { + try { + $this->initTargets($installDir, $filename); + $this->initTls(); + $this->httpClient = new HttpClient($this->disableTls, $this->cafile); + $result = $this->install($version, $channel); + + // in case --1 or --2 is passed, we leave the default channel for next self-update to stable + if (1 === preg_match('{^\d+$}D', $channel)) { + $channel = 'stable'; + } + + if ($result && $channel !== 'stable' && !$version && defined('PHP_BINARY')) { + $null = (defined('PHP_WINDOWS_VERSION_MAJOR') ? 'NUL' : '/dev/null'); + @exec(escapeshellarg(PHP_BINARY) .' '.escapeshellarg($this->target).' self-update --'.$channel.' --set-channel-only -q > '.$null.' 2> '.$null, $output); + } + } catch (Exception $e) { + $result = false; + } + + // Always clean up + $this->cleanUp($result); + + if (isset($e)) { + // Rethrow anything that is not a RuntimeException + if (!$e instanceof RuntimeException) { + throw $e; + } + out($e->getMessage(), 'error'); + } + return $result; + } + + /** + * Initialization methods to set the required filenames and composer url + * + * @param mixed $installDir Specific installation directory, or false + * @param string $filename Specific filename to save to, or composer.phar + * @throws RuntimeException If the installation directory is not writable + */ + protected function initTargets($installDir, $filename) + { + $this->displayPath = ($installDir ? rtrim($installDir, '/').'/' : '').$filename; + $installDir = $installDir ? realpath($installDir) : getcwd(); + + if (!is_writeable($installDir)) { + throw new RuntimeException('The installation directory "'.$installDir.'" is not writable'); + } + + $this->target = $installDir.DIRECTORY_SEPARATOR.$filename; + $this->tmpFile = $installDir.DIRECTORY_SEPARATOR.basename($this->target, '.phar').'-temp.phar'; + + $uriScheme = $this->disableTls ? 'http' : 'https'; + $this->baseUrl = $uriScheme.'://getcomposer.org'; + } + + /** + * A wrapper around methods to check tls and write public keys + * @throws RuntimeException If SHA384 is not supported + */ + protected function initTls() + { + if ($this->disableTls) { + return; + } + + if (!in_array('sha384', array_map('strtolower', openssl_get_md_methods()))) { + throw new RuntimeException('SHA384 is not supported by your openssl extension'); + } + + $this->algo = defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'SHA384'; + $home = $this->getComposerHome(); + + $this->pubKeys = array( + 'dev' => $this->installKey(self::getPKDev(), $home, 'keys.dev.pub'), + 'tags' => $this->installKey(self::getPKTags(), $home, 'keys.tags.pub') + ); + + if (empty($this->cafile) && !HttpClient::getSystemCaRootBundlePath()) { + $this->cafile = $this->tmpCafile = $this->installKey(HttpClient::getPackagedCaFile(), $home, 'cacert-temp.pem'); + } + } + + /** + * Returns the Composer home directory, creating it if required + * @throws RuntimeException If the directory cannot be created + * + * @return string + */ + protected function getComposerHome() + { + $home = getHomeDir(); + + if (!is_dir($home)) { + $this->errHandler->start(); + + if (!mkdir($home, 0777, true)) { + throw new RuntimeException(sprintf( + 'Unable to create Composer home directory "%s": %s', + $home, + $this->errHandler->message + )); + } + $this->installs[] = $home; + $this->errHandler->stop(); + } + return $home; + } + + /** + * Writes public key data to disc + * + * @param string $data The public key(s) in pem format + * @param string $path The directory to write to + * @param string $filename The name of the file + * @throws RuntimeException If the file cannot be written + * + * @return string The path to the saved data + */ + protected function installKey($data, $path, $filename) + { + $this->errHandler->start(); + + $target = $path.DIRECTORY_SEPARATOR.$filename; + $installed = file_exists($target); + $write = file_put_contents($target, $data, LOCK_EX); + @chmod($target, 0644); + + $this->errHandler->stop(); + + if (!$write) { + throw new RuntimeException(sprintf('Unable to write %s to: %s', $filename, $path)); + } + + if (!$installed) { + $this->installs[] = $target; + } + + return $target; + } + + /** + * The main install function + * + * @param mixed $version Specific version to install, or false + * @param string $channel Version channel to use + * + * @return bool If the installation succeeded + */ + protected function install($version, $channel) + { + $retries = 3; + $result = false; + $infoMsg = 'Downloading...'; + $infoType = 'info'; + + while ($retries--) { + if (!$this->quiet) { + out($infoMsg, $infoType); + $infoMsg = 'Retrying...'; + $infoType = 'error'; + } + + if (!$this->getVersion($channel, $version, $url, $error)) { + out($error, 'error'); + continue; + } + + if (!$this->downloadToTmp($url, $signature, $error)) { + out($error, 'error'); + continue; + } + + if (!$this->verifyAndSave($version, $signature, $error)) { + out($error, 'error'); + continue; + } + + $result = true; + break; + } + + if (!$this->quiet) { + if ($result) { + out(PHP_EOL."Composer (version {$version}) successfully installed to: {$this->target}", 'success'); + out("Use it: php {$this->displayPath}", 'info'); + out(''); + } else { + out('The download failed repeatedly, aborting.', 'error'); + } + } + return $result; + } + + /** + * Sets the version url, downloading version data if required + * + * @param string $channel Version channel to use + * @param false|string $version Version to install, or set by method + * @param null|string $url The versioned url, set by method + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function getVersion($channel, &$version, &$url, &$error) + { + $error = ''; + + if ($version) { + if (empty($url)) { + $url = $this->baseUrl."/download/{$version}/composer.phar"; + } + return true; + } + + $this->errHandler->start(); + + if ($this->downloadVersionData($data, $error)) { + $this->parseVersionData($data, $channel, $version, $url); + } + + $this->errHandler->stop(); + return empty($error); + } + + /** + * Downloads and json-decodes version data + * + * @param null|array $data Downloaded version data, set by method + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function downloadVersionData(&$data, &$error) + { + $url = $this->baseUrl.'/versions'; + $errFmt = 'The "%s" file could not be %s: %s'; + + if (!$json = $this->httpClient->get($url)) { + $error = sprintf($errFmt, $url, 'downloaded', $this->errHandler->message); + return false; + } + + if (!$data = json_decode($json, true)) { + $error = sprintf($errFmt, $url, 'json-decoded', $this->getJsonError()); + return false; + } + return true; + } + + /** + * A wrapper around the methods needed to download and save the phar + * + * @param string $url The versioned download url + * @param null|string $signature Set by method on successful download + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function downloadToTmp($url, &$signature, &$error) + { + $error = ''; + $errFmt = 'The "%s" file could not be downloaded: %s'; + $sigUrl = $url.'.sig'; + $this->errHandler->start(); + + if (!$fh = fopen($this->tmpFile, 'w')) { + $error = sprintf('Could not create file "%s": %s', $this->tmpFile, $this->errHandler->message); + + } elseif (!$this->getSignature($sigUrl, $signature)) { + $error = sprintf($errFmt, $sigUrl, $this->errHandler->message); + + } elseif (!fwrite($fh, $this->httpClient->get($url))) { + $error = sprintf($errFmt, $url, $this->errHandler->message); + } + + if (is_resource($fh)) { + fclose($fh); + } + $this->errHandler->stop(); + return empty($error); + } + + /** + * Verifies the downloaded file and saves it to the target location + * + * @param string $version The composer version downloaded + * @param string $signature The digital signature to check + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function verifyAndSave($version, $signature, &$error) + { + $error = ''; + + if (!$this->validatePhar($this->tmpFile, $pharError)) { + $error = 'The download is corrupt: '.$pharError; + + } elseif (!$this->verifySignature($version, $signature, $this->tmpFile)) { + $error = 'Signature mismatch, could not verify the phar file integrity'; + + } else { + $this->errHandler->start(); + + if (!rename($this->tmpFile, $this->target)) { + $error = sprintf('Could not write to file "%s": %s', $this->target, $this->errHandler->message); + } + chmod($this->target, 0755); + $this->errHandler->stop(); + } + + return empty($error); + } + + /** + * Parses an array of version data to match the required channel + * + * @param array $data Downloaded version data + * @param mixed $channel Version channel to use + * @param false|string $version Set by method + * @param mixed $url The versioned url, set by method + */ + protected function parseVersionData(array $data, $channel, &$version, &$url) + { + foreach ($data[$channel] as $candidate) { + if ($candidate['min-php'] <= PHP_VERSION_ID) { + $version = $candidate['version']; + $url = $this->baseUrl.$candidate['path']; + break; + } + } + + if (!$version) { + $error = sprintf( + 'None of the %d %s version(s) of Composer matches your PHP version (%s / ID: %d)', + count($data[$channel]), + $channel, + PHP_VERSION, + PHP_VERSION_ID + ); + throw new RuntimeException($error); + } + } + + /** + * Downloads the digital signature of required phar file + * + * @param string $url The signature url + * @param null|string $signature Set by method on success + * + * @return bool If the download succeeded + */ + protected function getSignature($url, &$signature) + { + if (!$result = $this->disableTls) { + $signature = $this->httpClient->get($url); + + if ($signature) { + $signature = json_decode($signature, true); + $signature = base64_decode($signature['sha384']); + $result = true; + } + } + + return $result; + } + + /** + * Verifies the signature of the downloaded phar + * + * @param string $version The composer versione + * @param string $signature The downloaded digital signature + * @param string $file The temp phar file + * + * @return bool If the operation succeeded + */ + protected function verifySignature($version, $signature, $file) + { + if (!$result = $this->disableTls) { + $path = preg_match('{^[0-9a-f]{40}$}', $version) ? $this->pubKeys['dev'] : $this->pubKeys['tags']; + $pubkeyid = openssl_pkey_get_public('file://'.$path); + + $result = 1 === openssl_verify( + file_get_contents($file), + $signature, + $pubkeyid, + $this->algo + ); + + // PHP 8 automatically frees the key instance and deprecates the function + if (PHP_VERSION_ID < 80000) { + openssl_free_key($pubkeyid); + } + } + + return $result; + } + + /** + * Validates the downloaded phar file + * + * @param string $pharFile The temp phar file + * @param null|string $error Set by method on failure + * + * @return bool If the operation succeeded + */ + protected function validatePhar($pharFile, &$error) + { + if (ini_get('phar.readonly')) { + return true; + } + + try { + // Test the phar validity + $phar = new Phar($pharFile); + // Free the variable to unlock the file + unset($phar); + $result = true; + + } catch (Exception $e) { + if (!$e instanceof UnexpectedValueException && !$e instanceof PharException) { + throw $e; + } + $error = $e->getMessage(); + $result = false; + } + return $result; + } + + /** + * Returns a string representation of the last json error + * + * @return string The error string or code + */ + protected function getJsonError() + { + if (function_exists('json_last_error_msg')) { + return json_last_error_msg(); + } else { + return 'json_last_error = '.json_last_error(); + } + } + + /** + * Cleans up resources at the end of the installation + * + * @param bool $result If the installation succeeded + */ + protected function cleanUp($result) + { + if ($this->quiet) { + // Ensure output buffers are emptied + $errors = explode(PHP_EOL, (string) ob_get_clean()); + } + + if (!$result) { + // Output buffered errors + if ($this->quiet) { + $this->outputErrors($errors); + } + // Clean up stuff we created + $this->uninstall(); + } elseif ($this->tmpCafile !== null) { + @unlink($this->tmpCafile); + } + } + + /** + * Outputs unique errors when in quiet mode + * + */ + protected function outputErrors(array $errors) + { + $shown = array(); + + foreach ($errors as $error) { + if ($error && !in_array($error, $shown)) { + out($error, 'error'); + $shown[] = $error; + } + } + } + + /** + * Uninstalls newly-created files and directories on failure + * + */ + protected function uninstall() + { + foreach (array_reverse($this->installs) as $target) { + if (is_file($target)) { + @unlink($target); + } elseif (is_dir($target)) { + @rmdir($target); + } + } + + if ($this->tmpFile !== null && file_exists($this->tmpFile)) { + @unlink($this->tmpFile); + } + } + + public static function getPKDev() + { + return <<message) { + $this->message .= PHP_EOL; + } + $this->message .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg); + } + + /** + * Starts error-handling if not already active + * + * Any message is cleared + */ + public function start() + { + if (!$this->active) { + set_error_handler(array($this, 'handleError')); + $this->active = true; + } + $this->message = ''; + } + + /** + * Stops error-handling if active + * + * Any message is preserved until the next call to start() + */ + public function stop() + { + if ($this->active) { + restore_error_handler(); + $this->active = false; + } + } +} + +class NoProxyPattern +{ + private $composerInNoProxy = false; + private $rulePorts = array(); + + public function __construct($pattern) + { + $rules = preg_split('{[\s,]+}', $pattern, null, PREG_SPLIT_NO_EMPTY); + + if ($matches = preg_grep('{getcomposer\.org(?::\d+)?}i', $rules)) { + $this->composerInNoProxy = true; + + foreach ($matches as $match) { + if (strpos($match, ':') !== false) { + list(, $port) = explode(':', $match); + $this->rulePorts[] = (int) $port; + } + } + } + } + + /** + * Returns true if NO_PROXY contains getcomposer.org + * + * @param string $url http(s)://getcomposer.org + * + * @return bool + */ + public function test($url) + { + if (!$this->composerInNoProxy) { + return false; + } + + if (empty($this->rulePorts)) { + return true; + } + + if (strpos($url, 'http://') === 0) { + $port = 80; + } else { + $port = 443; + } + + return in_array($port, $this->rulePorts); + } +} + +class HttpClient { + + /** @var null|string */ + private static $caPath; + + private $options = array('http' => array()); + private $disableTls = false; + + public function __construct($disableTls = false, $cafile = false) + { + $this->disableTls = $disableTls; + if ($this->disableTls === false) { + if (!empty($cafile) && !is_dir($cafile)) { + if (!is_readable($cafile) || !validateCaFile(file_get_contents($cafile))) { + throw new RuntimeException('The configured cafile (' .$cafile. ') was not valid or could not be read.'); + } + } + $options = $this->getTlsStreamContextDefaults($cafile); + $this->options = array_replace_recursive($this->options, $options); + } + } + + public function get($url) + { + $context = $this->getStreamContext($url); + $result = file_get_contents($url, false, $context); + + if ($result && extension_loaded('zlib')) { + $headers = PHP_VERSION_ID >= 80400 ? http_get_last_response_headers() : $http_response_header; + $decode = false; + foreach ($headers as $header) { + if (preg_match('{^content-encoding: *gzip *$}i', $header)) { + $decode = true; + continue; + } elseif (preg_match('{^HTTP/}i', $header)) { + $decode = false; + } + } + + if ($decode) { + if (version_compare(PHP_VERSION, '5.4.0', '>=')) { + $result = zlib_decode($result); + } else { + // work around issue with gzuncompress & co that do not work with all gzip checksums + $result = file_get_contents('compress.zlib://data:application/octet-stream;base64,'.base64_encode($result)); + } + + if (!$result) { + throw new RuntimeException('Failed to decode zlib stream'); + } + } + } + + return $result; + } + + protected function getStreamContext($url) + { + if ($this->disableTls === false) { + if (PHP_VERSION_ID < 50600) { + $this->options['ssl']['SNI_server_name'] = parse_url($url, PHP_URL_HOST); + } + } + // Keeping the above mostly isolated from the code copied from Composer. + return $this->getMergedStreamContext($url); + } + + protected function getTlsStreamContextDefaults($cafile) + { + $ciphers = implode(':', array( + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'DHE-RSA-AES128-GCM-SHA256', + 'DHE-DSS-AES128-GCM-SHA256', + 'kEDH+AESGCM', + 'ECDHE-RSA-AES128-SHA256', + 'ECDHE-ECDSA-AES128-SHA256', + 'ECDHE-RSA-AES128-SHA', + 'ECDHE-ECDSA-AES128-SHA', + 'ECDHE-RSA-AES256-SHA384', + 'ECDHE-ECDSA-AES256-SHA384', + 'ECDHE-RSA-AES256-SHA', + 'ECDHE-ECDSA-AES256-SHA', + 'DHE-RSA-AES128-SHA256', + 'DHE-RSA-AES128-SHA', + 'DHE-DSS-AES128-SHA256', + 'DHE-RSA-AES256-SHA256', + 'DHE-DSS-AES256-SHA', + 'DHE-RSA-AES256-SHA', + 'AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'AES128-SHA256', + 'AES256-SHA256', + 'AES128-SHA', + 'AES256-SHA', + 'AES', + 'CAMELLIA', + 'DES-CBC3-SHA', + '!aNULL', + '!eNULL', + '!EXPORT', + '!DES', + '!RC4', + '!MD5', + '!PSK', + '!aECDH', + '!EDH-DSS-DES-CBC3-SHA', + '!EDH-RSA-DES-CBC3-SHA', + '!KRB5-DES-CBC3-SHA', + )); + + /** + * CN_match and SNI_server_name are only known once a URL is passed. + * They will be set in the getOptionsForUrl() method which receives a URL. + * + * cafile or capath can be overridden by passing in those options to constructor. + */ + $options = array( + 'ssl' => array( + 'ciphers' => $ciphers, + 'verify_peer' => true, + 'verify_depth' => 7, + 'SNI_enabled' => true, + ) + ); + + /** + * Attempt to find a local cafile or throw an exception. + * The user may go download one if this occurs. + */ + if (!$cafile) { + $cafile = self::getSystemCaRootBundlePath(); + } + if (is_dir($cafile)) { + $options['ssl']['capath'] = $cafile; + } elseif ($cafile) { + $options['ssl']['cafile'] = $cafile; + } else { + throw new RuntimeException('A valid cafile could not be located automatically.'); + } + + /** + * Disable TLS compression to prevent CRIME attacks where supported. + */ + if (version_compare(PHP_VERSION, '5.4.13') >= 0) { + $options['ssl']['disable_compression'] = true; + } + + return $options; + } + + /** + * function copied from Composer\Util\StreamContextFactory::initOptions + * + * Any changes should be applied there as well, or backported here. + * + * @param string $url URL the context is to be used for + * @return resource Default context + * @throws \RuntimeException if https proxy required and OpenSSL uninstalled + */ + protected function getMergedStreamContext($url) + { + $options = $this->options; + + // Handle HTTP_PROXY/http_proxy on CLI only for security reasons + if ((PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') && (!empty($_SERVER['HTTP_PROXY']) || !empty($_SERVER['http_proxy']))) { + $proxy = parse_url(!empty($_SERVER['http_proxy']) ? $_SERVER['http_proxy'] : $_SERVER['HTTP_PROXY']); + } + + // Prefer CGI_HTTP_PROXY if available + if (!empty($_SERVER['CGI_HTTP_PROXY'])) { + $proxy = parse_url($_SERVER['CGI_HTTP_PROXY']); + } + + // Override with HTTPS proxy if present and URL is https + if (preg_match('{^https://}i', $url) && (!empty($_SERVER['HTTPS_PROXY']) || !empty($_SERVER['https_proxy']))) { + $proxy = parse_url(!empty($_SERVER['https_proxy']) ? $_SERVER['https_proxy'] : $_SERVER['HTTPS_PROXY']); + } + + // Remove proxy if URL matches no_proxy directive + if (!empty($_SERVER['NO_PROXY']) || !empty($_SERVER['no_proxy']) && parse_url($url, PHP_URL_HOST)) { + $pattern = new NoProxyPattern(!empty($_SERVER['no_proxy']) ? $_SERVER['no_proxy'] : $_SERVER['NO_PROXY']); + if ($pattern->test($url)) { + unset($proxy); + } + } + + if (!empty($proxy)) { + $proxyURL = isset($proxy['scheme']) ? $proxy['scheme'] . '://' : ''; + $proxyURL .= isset($proxy['host']) ? $proxy['host'] : ''; + + if (isset($proxy['port'])) { + $proxyURL .= ":" . $proxy['port']; + } elseif (strpos($proxyURL, 'http://') === 0) { + $proxyURL .= ":80"; + } elseif (strpos($proxyURL, 'https://') === 0) { + $proxyURL .= ":443"; + } + + // check for a secure proxy + if (strpos($proxyURL, 'https://') === 0) { + if (!extension_loaded('openssl')) { + throw new RuntimeException('You must enable the openssl extension to use a secure proxy.'); + } + if (strpos($url, 'https://') === 0) { + throw new RuntimeException('PHP does not support https requests through a secure proxy.'); + } + } + + // http(s):// is not supported in proxy + $proxyURL = str_replace(array('http://', 'https://'), array('tcp://', 'ssl://'), $proxyURL); + + $options['http'] = array( + 'proxy' => $proxyURL, + ); + + // add request_fulluri for http requests + if ('http' === parse_url($url, PHP_URL_SCHEME)) { + $options['http']['request_fulluri'] = true; + } + + // handle proxy auth if present + if (isset($proxy['user'])) { + $auth = rawurldecode($proxy['user']); + if (isset($proxy['pass'])) { + $auth .= ':' . rawurldecode($proxy['pass']); + } + $auth = base64_encode($auth); + + $options['http']['header'] = "Proxy-Authorization: Basic {$auth}\r\n"; + } + } + + if (isset($options['http']['header'])) { + $options['http']['header'] .= "Connection: close\r\n"; + } else { + $options['http']['header'] = "Connection: close\r\n"; + } + if (extension_loaded('zlib')) { + $options['http']['header'] .= "Accept-Encoding: gzip\r\n"; + } + $options['http']['header'] .= "User-Agent: ".COMPOSER_INSTALLER."\r\n"; + $options['http']['protocol_version'] = 1.1; + $options['http']['timeout'] = 600; + + return stream_context_create($options); + } + + /** + * This method was adapted from Sslurp. + * https://github.com/EvanDotPro/Sslurp + * + * (c) Evan Coury + * + * For the full copyright and license information, please see below: + * + * Copyright (c) 2013, Evan Coury + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + public static function getSystemCaRootBundlePath() + { + if (self::$caPath !== null) { + return self::$caPath; + } + + // If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $envCertFile = getenv('SSL_CERT_FILE'); + if ($envCertFile && is_readable($envCertFile) && validateCaFile(file_get_contents($envCertFile))) { + return self::$caPath = $envCertFile; + } + + // If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that. + // This mimics how OpenSSL uses the SSL_CERT_FILE env variable. + $envCertDir = getenv('SSL_CERT_DIR'); + if ($envCertDir && is_dir($envCertDir) && is_readable($envCertDir)) { + return self::$caPath = $envCertDir; + } + + $configured = ini_get('openssl.cafile'); + if ($configured && strlen($configured) > 0 && is_readable($configured) && validateCaFile(file_get_contents($configured))) { + return self::$caPath = $configured; + } + + $configured = ini_get('openssl.capath'); + if ($configured && is_dir($configured) && is_readable($configured)) { + return self::$caPath = $configured; + } + + $caBundlePaths = array( + '/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package) + '/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package) + '/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package) + '/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package) + '/usr/ssl/certs/ca-bundle.crt', // Cygwin + '/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package + '/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option) + '/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat? + '/etc/ssl/cert.pem', // OpenBSD + '/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x + '/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package + '/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package + '/opt/homebrew/etc/openssl@3/cert.pem', // macOS silicon homebrew, openssl@3 package + '/opt/homebrew/etc/openssl@1.1/cert.pem', // macOS silicon homebrew, openssl@1.1 package + ); + + foreach ($caBundlePaths as $caBundle) { + if (@is_readable($caBundle) && validateCaFile(file_get_contents($caBundle))) { + return self::$caPath = $caBundle; + } + } + + foreach ($caBundlePaths as $caBundle) { + $caBundle = dirname($caBundle); + if (is_dir($caBundle) && glob($caBundle.'/*')) { + return self::$caPath = $caBundle; + } + } + + return self::$caPath = false; + } + + public static function getPackagedCaFile() + { + return <<=1.2.3", + "squizlabs/php_codesniffer": "^4.0", + "symfony/process": "^6.0||^7.0", + "webmozart/assert": "^1.11" + }, + "suggest": { + "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Auth\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Auth Library for PHP", + "homepage": "https://github.com/google/google-auth-library-php", + "keywords": [ + "Authentication", + "google", + "oauth2" + ], + "support": { + "docs": "https://cloud.google.com/php/docs/reference/auth/latest", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.48.1" + }, + "time": "2025-09-30T04:22:33+00:00" + }, + { + "name": "google/cloud-dialogflow", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-cloud-php-dialogflow.git", + "reference": "b536e04b66e518505dbc0266c7f288f4d692cf7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-cloud-php-dialogflow/zipball/b536e04b66e518505dbc0266c7f288f4d692cf7a", + "reference": "b536e04b66e518505dbc0266c7f288f4d692cf7a", + "shasum": "" + }, + "require": { + "google/gax": "^1.38.0", + "php": "^8.1" + }, + "require-dev": { + "google/cloud-core": "^1.52.7", + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-grpc": "Enables use of gRPC, a universal high-performance RPC framework created by Google." + }, + "type": "library", + "extra": { + "component": { + "id": "cloud-dialogflow", + "path": "Dialogflow", + "entry": null, + "target": "googleapis/google-cloud-php-dialogflow.git" + } + }, + "autoload": { + "psr-4": { + "Google\\Cloud\\Dialogflow\\": "src", + "GPBMetadata\\Google\\Cloud\\Dialogflow\\": "metadata" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Cloud Dialogflow Client for PHP", + "support": { + "source": "https://github.com/googleapis/google-cloud-php-dialogflow/tree/v2.2.0" + }, + "time": "2025-09-20T01:29:44+00:00" + }, + { + "name": "google/common-protos", + "version": "4.12.4", + "source": { + "type": "git", + "url": "https://github.com/googleapis/common-protos-php.git", + "reference": "0127156899af0df2681bd42024c60bd5360d64e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/0127156899af0df2681bd42024c60bd5360d64e3", + "reference": "0127156899af0df2681bd42024c60bd5360d64e3", + "shasum": "" + }, + "require": { + "google/protobuf": "^4.31", + "php": "^8.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6" + }, + "type": "library", + "extra": { + "component": { + "id": "common-protos", + "path": "CommonProtos", + "entry": "README.md", + "target": "googleapis/common-protos-php.git" + } + }, + "autoload": { + "psr-4": { + "Google\\Api\\": "src/Api", + "Google\\Iam\\": "src/Iam", + "Google\\Rpc\\": "src/Rpc", + "Google\\Type\\": "src/Type", + "Google\\Cloud\\": "src/Cloud", + "GPBMetadata\\Google\\Api\\": "metadata/Api", + "GPBMetadata\\Google\\Iam\\": "metadata/Iam", + "GPBMetadata\\Google\\Rpc\\": "metadata/Rpc", + "GPBMetadata\\Google\\Type\\": "metadata/Type", + "GPBMetadata\\Google\\Cloud\\": "metadata/Cloud", + "GPBMetadata\\Google\\Logging\\": "metadata/Logging" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google API Common Protos for PHP", + "homepage": "https://github.com/googleapis/common-protos-php", + "keywords": [ + "google" + ], + "support": { + "source": "https://github.com/googleapis/common-protos-php/tree/v4.12.4" + }, + "time": "2025-09-20T01:29:44+00:00" + }, + { + "name": "google/gax", + "version": "v1.38.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/gax-php.git", + "reference": "0e1bce4a30722e85485bbb132b2fa811d66b397b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/gax-php/zipball/0e1bce4a30722e85485bbb132b2fa811d66b397b", + "reference": "0e1bce4a30722e85485bbb132b2fa811d66b397b", + "shasum": "" + }, + "require": { + "google/auth": "^1.45", + "google/common-protos": "^4.4", + "google/grpc-gcp": "^0.4", + "google/longrunning": "~0.4", + "google/protobuf": "^4.31", + "grpc/grpc": "^1.13", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.0", + "php": "^8.1", + "ramsey/uuid": "^4.0" + }, + "conflict": { + "ext-protobuf": "<4.31.0" + }, + "require-dev": { + "phpspec/prophecy-phpunit": "^2.1", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "4.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\ApiCore\\": "src", + "GPBMetadata\\ApiCore\\": "metadata/ApiCore" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Google API Core for PHP", + "homepage": "https://github.com/googleapis/gax-php", + "keywords": [ + "google" + ], + "support": { + "issues": "https://github.com/googleapis/gax-php/issues", + "source": "https://github.com/googleapis/gax-php/tree/v1.38.0" + }, + "time": "2025-09-17T18:22:14+00:00" + }, + { + "name": "google/grpc-gcp", + "version": "v0.4.1", + "source": { + "type": "git", + "url": "https://github.com/GoogleCloudPlatform/grpc-gcp-php.git", + "reference": "e585b7721bbe806ef45b5c52ae43dfc2bff89968" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GoogleCloudPlatform/grpc-gcp-php/zipball/e585b7721bbe806ef45b5c52ae43dfc2bff89968", + "reference": "e585b7721bbe806ef45b5c52ae43dfc2bff89968", + "shasum": "" + }, + "require": { + "google/auth": "^1.3", + "google/protobuf": "^v3.25.3||^4.26.1", + "grpc/grpc": "^v1.13.0", + "php": "^8.0", + "psr/cache": "^1.0.1||^2.0.0||^3.0.0" + }, + "require-dev": { + "google/cloud-spanner": "^1.7", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Grpc\\Gcp\\": "src/" + }, + "classmap": [ + "src/generated/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "gRPC GCP library for channel management", + "support": { + "issues": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/issues", + "source": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/tree/v0.4.1" + }, + "time": "2025-02-19T21:53:22+00:00" + }, + { + "name": "google/longrunning", + "version": "0.5.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/php-longrunning.git", + "reference": "715519ab4aaf3c4268adb2b551ee0f34135c8c5f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/715519ab4aaf3c4268adb2b551ee0f34135c8c5f", + "reference": "715519ab4aaf3c4268adb2b551ee0f34135c8c5f", + "shasum": "" + }, + "require-dev": { + "google/gax": "^1.38.0", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "component": { + "id": "longrunning", + "path": "LongRunning", + "entry": null, + "target": "googleapis/php-longrunning" + } + }, + "autoload": { + "psr-4": { + "Google\\LongRunning\\": "src/LongRunning", + "Google\\ApiCore\\LongRunning\\": "src/ApiCore/LongRunning", + "GPBMetadata\\Google\\Longrunning\\": "metadata/Longrunning" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google LongRunning Client for PHP", + "support": { + "source": "https://github.com/googleapis/php-longrunning/tree/v0.5.0" + }, + "time": "2025-09-20T01:29:44+00:00" + }, + { + "name": "google/protobuf", + "version": "v4.32.1", + "source": { + "type": "git", + "url": "https://github.com/protocolbuffers/protobuf-php.git", + "reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb", + "reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb", + "shasum": "" + }, + "require": { + "php": ">=8.1.0" + }, + "require-dev": { + "phpunit/phpunit": ">=5.0.0 <8.5.27" + }, + "suggest": { + "ext-bcmath": "Need to support JSON deserialization" + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Protobuf\\": "src/Google/Protobuf", + "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "proto library for PHP", + "homepage": "https://developers.google.com/protocol-buffers/", + "keywords": [ + "proto" + ], + "support": { + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.32.1" + }, + "time": "2025-09-14T05:14:52+00:00" + }, + { + "name": "grpc/grpc", + "version": "1.74.0", + "source": { + "type": "git", + "url": "https://github.com/grpc/grpc-php.git", + "reference": "32bf4dba256d60d395582fb6e4e8d3936bcdb713" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/grpc/grpc-php/zipball/32bf4dba256d60d395582fb6e4e8d3936bcdb713", + "reference": "32bf4dba256d60d395582fb6e4e8d3936bcdb713", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "google/auth": "^v1.3.0" + }, + "suggest": { + "ext-protobuf": "For better performance, install the protobuf C extension.", + "google/protobuf": "To get started using grpc quickly, install the native protobuf library." + }, + "type": "library", + "autoload": { + "psr-4": { + "Grpc\\": "src/lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "gRPC library for PHP", + "homepage": "https://grpc.io", + "keywords": [ + "rpc" + ], + "support": { + "source": "https://github.com/grpc/grpc-php/tree/v1.74.0" + }, + "time": "2025-07-24T20:02:16+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.10.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2025-08-23T22:36:01+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "481557b130ef3790cf82b713667b43030dc9c957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2025-08-22T14:34:08+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "21dc724a0583619cd1652f673303492272778051" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.8.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2025-08-23T21:21:41+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.1.1" + }, + "time": "2025-03-22T05:38:12+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.9.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.25", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.9.1" + }, + "time": "2025-09-04T20:59:21+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": {}, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/gcp_creds/dialogflow_key.json b/gcp_creds/dialogflow_key.json new file mode 100644 index 0000000..e12a346 --- /dev/null +++ b/gcp_creds/dialogflow_key.json @@ -0,0 +1,28 @@ +{ "type": "service_account", "project_id": "chrivia-asxi", "private_key_id": "6053badd24ceb066aba55c264b0dc5051bb3ce69", "private_key": "-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMCXYJzgk2AR64 +rxAVMq9Kf8yD4uYCjIxjtZcYoyrSSmC6V/i6GqQ/CRASzaY5L9NTRWEUN0Ukvlub +lYvIHQoBnsr+Zm28PmuougyJdjLr4GKH++HhviNellkQ/QvwGtBG8WAMwu4HuCyK +8yeEl6mJpdlJGthOvgt2w23BCsfLjOf6aA1dgZwohCzS5GJhsgwggREPjWnSyRIK +YDZaXyfYBgM4imcBSh3lA0ekR87yb+zUY03KLDEo3uWuOplI2d9heKt1ZZoYJCSe +UwZ0kFYwCsPDI8vDVV/dLjX7cB8eqZAHLlgYbGJyFBqTZ3qZv8ezAXUYRdOYcpgg +nyz8dt3nAgMBAAECggEALlil0dNVv0kg19WYIyCItbTy2TBki8auKwX4BNYnZ24S +q7FI48kibtkZqBPDgrDs4TjctNFbKN3+hAhDoJiMCdMui/vrSDuri797EoxhQ7gL +2ZSq+fKNKTKgl53LJOaKUdsJNMzgcatxnrxdyR4EGiqsgRESekxr4TXCC/vtZzw6 +GVUBJMAxh8UY8sSCMO4QWBmxbfth722scCs0eCb1yp9K+1M5g24qFxan4fZVHmDE +z/0r+caLSE9KPf+oGnJaccKGz7mcAEOla24/GALrW3JMgnXlcgB1DYNQyUxul+/G +c3xT6TR5OG/T4MKDknN9eaHmRd8H5sMwdmj/BT5g2QKBgQDuBZwASn9LzPpwwbVq +gNLvo03NRwicLhoSe+Kl8Yao+m7GOKbpfzZgFej2zgq40jgBAJ2zSds1VKEBwKeX +CSaXJenKk3DN5trtzTsj3H8AvagNyZcV3YKlKLMc0HUPAWVKX5O6h322SJT3JV30 +NZTM46rTAD7dFeb9m+JmZ8+B7wKBgQDbcrgCNcijvtSApVw/hXLyhqzPqLDUGGhS +XtXx0r6mVuMKOVkgr48/mO/xgSL4wjs4Ps4S0/yqtt5PSFloCOuytpWeTQrBCLL0 +Or9dPuS+qLmJxkvWV1uoZkfdKpTY2s2ovyilQtovPdoACJnK83pdwArWp3VkrM9 +Al6Hp0v7iQKBgAx27rx1KkVl7peJDV8Ob/1sp95gIetL3sGpCy11gH/I3ZQz00nX +B5nwi8qg757OI3Cp/5gr/fbE/8l/tUcLi6HOsneRUQ73T++0F6zBF0WKqQpPzEGw +3+6WOwr/P6IRiKRkbPAPuF2bX3Gx20G2rJwuL/vsv14Ej5woVarXNN6xAoGAaUP9 +SmocRZfLfa5Uss/D1NyPVslXkVXn7OM7A1YRR99T51qdC1XLhDlLl/BXIzagi5ls +5pEzmXxA5Y0R/hqRXVfCK35PU0tl9Eud8g+yUFbFMXaieD1NZNkzTb8YSXGjx3dy ++ts3p+z66dNurUjQ7FW+Cg3cuk81lWVmjPHOO+kCgYEA5TJu0h6YSPr5dnNjPgrw +UxaGC0wtKX61w+tYOmpUKKCawi2K2tVTa3r/jJy27ClLHodwrNka4R/tNQD7EuRb +jD58iSXrHeaPVtbvBZCTASM+ssxEVrhDouz9KH8pKi7TLgA8WNQQjXoV9XRdg4Vj +7GFbXwUhhsoOgFWjAKjLol0= +-----END PRIVATE KEY-----", "client_email": "chirivia@chrivia-asxi.iam.gserviceaccount.com", "client_id": "109471356352632635196", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/chirivia%40chrivia-asxi.iam.gserviceaccount.com" } \ No newline at end of file diff --git a/index.php b/index.php index 7b6cd7c..09cb9b5 100644 --- a/index.php +++ b/index.php @@ -330,7 +330,8 @@ if (!isset($_SESSION['streak'])) {
diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 0000000..1d19169 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,22 @@ +* +- `MathException` now extends `Exception` instead of `RuntimeException` + +* You may now run into type errors if you were passing `Stringable` objects to `of()` or any of the methods +internally calling `of()`, with `strict_types` enabled. You can fix this by casting `Stringable` objects to `string` +first. + +## [0.10.2](https://github.com/brick/math/releases/tag/0.10.2) - 2022-08-11 + +👌 **Improvements** + +- `BigRational::toFloat()` now simplifies the fraction before performing division (#73) thanks to @olsavmic + +## [0.10.1](https://github.com/brick/math/releases/tag/0.10.1) - 2022-08-02 + +✨ **New features** + +- `BigInteger::gcdMultiple()` returns the GCD of multiple `BigInteger` numbers + +## [0.10.0](https://github.com/brick/math/releases/tag/0.10.0) - 2022-06-18 + +💥 **Breaking changes** + +- Minimum PHP version is now 7.4 + +## [0.9.3](https://github.com/brick/math/releases/tag/0.9.3) - 2021-08-15 + +🚀 **Compatibility with PHP 8.1** + +- Support for custom object serialization; this removes a warning on PHP 8.1 due to the `Serializable` interface being deprecated (#60) thanks @TRowbotham + +## [0.9.2](https://github.com/brick/math/releases/tag/0.9.2) - 2021-01-20 + +🐛 **Bug fix** + +- Incorrect results could be returned when using the BCMath calculator, with a default scale set with `bcscale()`, on PHP >= 7.2 (#55). + +## [0.9.1](https://github.com/brick/math/releases/tag/0.9.1) - 2020-08-19 + +✨ **New features** + +- `BigInteger::not()` returns the bitwise `NOT` value + +🐛 **Bug fixes** + +- `BigInteger::toBytes()` could return an incorrect binary representation for some numbers +- The bitwise operations `and()`, `or()`, `xor()` on `BigInteger` could return an incorrect result when the GMP extension is not available + +## [0.9.0](https://github.com/brick/math/releases/tag/0.9.0) - 2020-08-18 + +👌 **Improvements** + +- `BigNumber::of()` now accepts `.123` and `123.` formats, both of which return a `BigDecimal` + +💥 **Breaking changes** + +- Deprecated method `BigInteger::powerMod()` has been removed - use `modPow()` instead +- Deprecated method `BigInteger::parse()` has been removed - use `fromBase()` instead + +## [0.8.17](https://github.com/brick/math/releases/tag/0.8.17) - 2020-08-19 + +🐛 **Bug fix** + +- `BigInteger::toBytes()` could return an incorrect binary representation for some numbers +- The bitwise operations `and()`, `or()`, `xor()` on `BigInteger` could return an incorrect result when the GMP extension is not available + +## [0.8.16](https://github.com/brick/math/releases/tag/0.8.16) - 2020-08-18 + +🚑 **Critical fix** + +- This version reintroduces the deprecated `BigInteger::parse()` method, that has been removed by mistake in version `0.8.9` and should have lasted for the whole `0.8` release cycle. + +✨ **New features** + +- `BigInteger::modInverse()` calculates a modular multiplicative inverse +- `BigInteger::fromBytes()` creates a `BigInteger` from a byte string +- `BigInteger::toBytes()` converts a `BigInteger` to a byte string +- `BigInteger::randomBits()` creates a pseudo-random `BigInteger` of a given bit length +- `BigInteger::randomRange()` creates a pseudo-random `BigInteger` between two bounds + +💩 **Deprecations** + +- `BigInteger::powerMod()` is now deprecated in favour of `modPow()` + +## [0.8.15](https://github.com/brick/math/releases/tag/0.8.15) - 2020-04-15 + +🐛 **Fixes** + +- added missing `ext-json` requirement, due to `BigNumber` implementing `JsonSerializable` + +⚡️ **Optimizations** + +- additional optimization in `BigInteger::remainder()` + +## [0.8.14](https://github.com/brick/math/releases/tag/0.8.14) - 2020-02-18 + +✨ **New features** + +- `BigInteger::getLowestSetBit()` returns the index of the rightmost one bit + +## [0.8.13](https://github.com/brick/math/releases/tag/0.8.13) - 2020-02-16 + +✨ **New features** + +- `BigInteger::isEven()` tests whether the number is even +- `BigInteger::isOdd()` tests whether the number is odd +- `BigInteger::testBit()` tests if a bit is set +- `BigInteger::getBitLength()` returns the number of bits in the minimal representation of the number + +## [0.8.12](https://github.com/brick/math/releases/tag/0.8.12) - 2020-02-03 + +🛠️ **Maintenance release** + +Classes are now annotated for better static analysis with [psalm](https://psalm.dev/). + +This is a maintenance release: no bug fixes, no new features, no breaking changes. + +## [0.8.11](https://github.com/brick/math/releases/tag/0.8.11) - 2020-01-23 + +✨ **New feature** + +`BigInteger::powerMod()` performs a power-with-modulo operation. Useful for crypto. + +## [0.8.10](https://github.com/brick/math/releases/tag/0.8.10) - 2020-01-21 + +✨ **New feature** + +`BigInteger::mod()` returns the **modulo** of two numbers. The *modulo* differs from the *remainder* when the signs of the operands are different. + +## [0.8.9](https://github.com/brick/math/releases/tag/0.8.9) - 2020-01-08 + +⚡️ **Performance improvements** + +A few additional optimizations in `BigInteger` and `BigDecimal` when one of the operands can be returned as is. Thanks to @tomtomsen in #24. + +## [0.8.8](https://github.com/brick/math/releases/tag/0.8.8) - 2019-04-25 + +🐛 **Bug fixes** + +- `BigInteger::toBase()` could return an empty string for zero values (BCMath & Native calculators only, GMP calculator unaffected) + +✨ **New features** + +- `BigInteger::toArbitraryBase()` converts a number to an arbitrary base, using a custom alphabet +- `BigInteger::fromArbitraryBase()` converts a string in an arbitrary base, using a custom alphabet, back to a number + +These methods can be used as the foundation to convert strings between different bases/alphabets, using BigInteger as an intermediate representation. + +💩 **Deprecations** + +- `BigInteger::parse()` is now deprecated in favour of `fromBase()` + +`BigInteger::fromBase()` works the same way as `parse()`, with 2 minor differences: + +- the `$base` parameter is required, it does not default to `10` +- it throws a `NumberFormatException` instead of an `InvalidArgumentException` when the number is malformed + +## [0.8.7](https://github.com/brick/math/releases/tag/0.8.7) - 2019-04-20 + +**Improvements** + +- Safer conversion from `float` when using custom locales +- **Much faster** `NativeCalculator` implementation 🚀 + +You can expect **at least a 3x performance improvement** for common arithmetic operations when using the library on systems without GMP or BCMath; it gets exponentially faster on multiplications with a high number of digits. This is due to calculations now being performed on whole blocks of digits (the block size depending on the platform, 32-bit or 64-bit) instead of digit-by-digit as before. + +## [0.8.6](https://github.com/brick/math/releases/tag/0.8.6) - 2019-04-11 + +**New method** + +`BigNumber::sum()` returns the sum of one or more numbers. + +## [0.8.5](https://github.com/brick/math/releases/tag/0.8.5) - 2019-02-12 + +**Bug fix**: `of()` factory methods could fail when passing a `float` in environments using a `LC_NUMERIC` locale with a decimal separator other than `'.'` (#20). + +Thanks @manowark 👍 + +## [0.8.4](https://github.com/brick/math/releases/tag/0.8.4) - 2018-12-07 + +**New method** + +`BigDecimal::sqrt()` calculates the square root of a decimal number, to a given scale. + +## [0.8.3](https://github.com/brick/math/releases/tag/0.8.3) - 2018-12-06 + +**New method** + +`BigInteger::sqrt()` calculates the square root of a number (thanks @peter279k). + +**New exception** + +`NegativeNumberException` is thrown when calling `sqrt()` on a negative number. + +## [0.8.2](https://github.com/brick/math/releases/tag/0.8.2) - 2018-11-08 + +**Performance update** + +- Further improvement of `toInt()` performance +- `NativeCalculator` can now perform some multiplications more efficiently + +## [0.8.1](https://github.com/brick/math/releases/tag/0.8.1) - 2018-11-07 + +Performance optimization of `toInt()` methods. + +## [0.8.0](https://github.com/brick/math/releases/tag/0.8.0) - 2018-10-13 + +**Breaking changes** + +The following deprecated methods have been removed. Use the new method name instead: + +| Method removed | Replacement method | +| --- | --- | +| `BigDecimal::getIntegral()` | `BigDecimal::getIntegralPart()` | +| `BigDecimal::getFraction()` | `BigDecimal::getFractionalPart()` | + +--- + +**New features** + +`BigInteger` has been augmented with 5 new methods for bitwise operations: + +| New method | Description | +| --- | --- | +| `and()` | performs a bitwise `AND` operation on two numbers | +| `or()` | performs a bitwise `OR` operation on two numbers | +| `xor()` | performs a bitwise `XOR` operation on two numbers | +| `shiftedLeft()` | returns the number shifted left by a number of bits | +| `shiftedRight()` | returns the number shifted right by a number of bits | + +Thanks to @DASPRiD 👍 + +## [0.7.3](https://github.com/brick/math/releases/tag/0.7.3) - 2018-08-20 + +**New method:** `BigDecimal::hasNonZeroFractionalPart()` + +**Renamed/deprecated methods:** + +- `BigDecimal::getIntegral()` has been renamed to `getIntegralPart()` and is now deprecated +- `BigDecimal::getFraction()` has been renamed to `getFractionalPart()` and is now deprecated + +## [0.7.2](https://github.com/brick/math/releases/tag/0.7.2) - 2018-07-21 + +**Performance update** + +`BigInteger::parse()` and `toBase()` now use GMP's built-in base conversion features when available. + +## [0.7.1](https://github.com/brick/math/releases/tag/0.7.1) - 2018-03-01 + +This is a maintenance release, no code has been changed. + +- When installed with `--no-dev`, the autoloader does not autoload tests anymore +- Tests and other files unnecessary for production are excluded from the dist package + +This will help make installations more compact. + +## [0.7.0](https://github.com/brick/math/releases/tag/0.7.0) - 2017-10-02 + +Methods renamed: + +- `BigNumber:sign()` has been renamed to `getSign()` +- `BigDecimal::unscaledValue()` has been renamed to `getUnscaledValue()` +- `BigDecimal::scale()` has been renamed to `getScale()` +- `BigDecimal::integral()` has been renamed to `getIntegral()` +- `BigDecimal::fraction()` has been renamed to `getFraction()` +- `BigRational::numerator()` has been renamed to `getNumerator()` +- `BigRational::denominator()` has been renamed to `getDenominator()` + +Classes renamed: + +- `ArithmeticException` has been renamed to `MathException` + +## [0.6.2](https://github.com/brick/math/releases/tag/0.6.2) - 2017-10-02 + +The base class for all exceptions is now `MathException`. +`ArithmeticException` has been deprecated, and will be removed in 0.7.0. + +## [0.6.1](https://github.com/brick/math/releases/tag/0.6.1) - 2017-10-02 + +A number of methods have been renamed: + +- `BigNumber:sign()` is deprecated; use `getSign()` instead +- `BigDecimal::unscaledValue()` is deprecated; use `getUnscaledValue()` instead +- `BigDecimal::scale()` is deprecated; use `getScale()` instead +- `BigDecimal::integral()` is deprecated; use `getIntegral()` instead +- `BigDecimal::fraction()` is deprecated; use `getFraction()` instead +- `BigRational::numerator()` is deprecated; use `getNumerator()` instead +- `BigRational::denominator()` is deprecated; use `getDenominator()` instead + +The old methods will be removed in version 0.7.0. + +## [0.6.0](https://github.com/brick/math/releases/tag/0.6.0) - 2017-08-25 + +- Minimum PHP version is now [7.1](https://gophp71.org/); for PHP 5.6 and PHP 7.0 support, use version `0.5` +- Deprecated method `BigDecimal::withScale()` has been removed; use `toScale()` instead +- Method `BigNumber::toInteger()` has been renamed to `toInt()` + +## [0.5.4](https://github.com/brick/math/releases/tag/0.5.4) - 2016-10-17 + +`BigNumber` classes now implement [JsonSerializable](http://php.net/manual/en/class.jsonserializable.php). +The JSON output is always a string. + +## [0.5.3](https://github.com/brick/math/releases/tag/0.5.3) - 2016-03-31 + +This is a bugfix release. Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6. + +## [0.5.2](https://github.com/brick/math/releases/tag/0.5.2) - 2015-08-06 + +The `$scale` parameter of `BigDecimal::dividedBy()` is now optional again. + +## [0.5.1](https://github.com/brick/math/releases/tag/0.5.1) - 2015-07-05 + +**New method: `BigNumber::toScale()`** + +This allows to convert any `BigNumber` to a `BigDecimal` with a given scale, using rounding if necessary. + +## [0.5.0](https://github.com/brick/math/releases/tag/0.5.0) - 2015-07-04 + +**New features** +- Common `BigNumber` interface for all classes, with the following methods: + - `sign()` and derived methods (`isZero()`, `isPositive()`, ...) + - `compareTo()` and derived methods (`isEqualTo()`, `isGreaterThan()`, ...) that work across different `BigNumber` types + - `toBigInteger()`, `toBigDecimal()`, `toBigRational`() conversion methods + - `toInteger()` and `toFloat()` conversion methods to native types +- Unified `of()` behaviour: every class now accepts any type of number, provided that it can be safely converted to the current type +- New method: `BigDecimal::exactlyDividedBy()`; this method automatically computes the scale of the result, provided that the division yields a finite number of digits +- New methods: `BigRational::quotient()` and `remainder()` +- Fine-grained exceptions: `DivisionByZeroException`, `RoundingNecessaryException`, `NumberFormatException` +- Factory methods `zero()`, `one()` and `ten()` available in all classes +- Rounding mode reintroduced in `BigInteger::dividedBy()` + +This release also comes with many performance improvements. + +--- + +**Breaking changes** +- `BigInteger`: + - `getSign()` is renamed to `sign()` + - `toString()` is renamed to `toBase()` + - `BigInteger::dividedBy()` now throws an exception by default if the remainder is not zero; use `quotient()` to get the previous behaviour +- `BigDecimal`: + - `getSign()` is renamed to `sign()` + - `getUnscaledValue()` is renamed to `unscaledValue()` + - `getScale()` is renamed to `scale()` + - `getIntegral()` is renamed to `integral()` + - `getFraction()` is renamed to `fraction()` + - `divideAndRemainder()` is renamed to `quotientAndRemainder()` + - `dividedBy()` now takes a **mandatory** `$scale` parameter **before** the rounding mode + - `toBigInteger()` does not accept a `$roundingMode` parameter anymore + - `toBigRational()` does not simplify the fraction anymore; explicitly add `->simplified()` to get the previous behaviour +- `BigRational`: + - `getSign()` is renamed to `sign()` + - `getNumerator()` is renamed to `numerator()` + - `getDenominator()` is renamed to `denominator()` + - `of()` is renamed to `nd()`, while `parse()` is renamed to `of()` +- Miscellaneous: + - `ArithmeticException` is moved to an `Exception\` sub-namespace + - `of()` factory methods now throw `NumberFormatException` instead of `InvalidArgumentException` + +## [0.4.3](https://github.com/brick/math/releases/tag/0.4.3) - 2016-03-31 + +Backport of two bug fixes from the 0.5 branch: +- `BigInteger::parse()` did not always throw `InvalidArgumentException` as expected +- Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6. + +## [0.4.2](https://github.com/brick/math/releases/tag/0.4.2) - 2015-06-16 + +New method: `BigDecimal::stripTrailingZeros()` + +## [0.4.1](https://github.com/brick/math/releases/tag/0.4.1) - 2015-06-12 + +Introducing a `BigRational` class, to perform calculations on fractions of any size. + +## [0.4.0](https://github.com/brick/math/releases/tag/0.4.0) - 2015-06-12 + +Rounding modes have been removed from `BigInteger`, and are now a concept specific to `BigDecimal`. + +`BigInteger::dividedBy()` now always returns the quotient of the division. + +## [0.3.5](https://github.com/brick/math/releases/tag/0.3.5) - 2016-03-31 + +Backport of two bug fixes from the 0.5 branch: + +- `BigInteger::parse()` did not always throw `InvalidArgumentException` as expected +- Dividing by a negative power of 1 with the same scale as the dividend could trigger an incorrect optimization which resulted in a wrong result. See #6. + +## [0.3.4](https://github.com/brick/math/releases/tag/0.3.4) - 2015-06-11 + +New methods: +- `BigInteger::remainder()` returns the remainder of a division only +- `BigInteger::gcd()` returns the greatest common divisor of two numbers + +## [0.3.3](https://github.com/brick/math/releases/tag/0.3.3) - 2015-06-07 + +Fix `toString()` not handling negative numbers. + +## [0.3.2](https://github.com/brick/math/releases/tag/0.3.2) - 2015-06-07 + +`BigInteger` and `BigDecimal` now have a `getSign()` method that returns: +- `-1` if the number is negative +- `0` if the number is zero +- `1` if the number is positive + +## [0.3.1](https://github.com/brick/math/releases/tag/0.3.1) - 2015-06-05 + +Minor performance improvements + +## [0.3.0](https://github.com/brick/math/releases/tag/0.3.0) - 2015-06-04 + +The `$roundingMode` and `$scale` parameters have been swapped in `BigDecimal::dividedBy()`. + +## [0.2.2](https://github.com/brick/math/releases/tag/0.2.2) - 2015-06-04 + +Stronger immutability guarantee for `BigInteger` and `BigDecimal`. + +So far, it would have been possible to break immutability of these classes by calling the `unserialize()` internal function. This release fixes that. + +## [0.2.1](https://github.com/brick/math/releases/tag/0.2.1) - 2015-06-02 + +Added `BigDecimal::divideAndRemainder()` + +## [0.2.0](https://github.com/brick/math/releases/tag/0.2.0) - 2015-05-22 + +- `min()` and `max()` do not accept an `array` anymore, but a variable number of parameters +- **minimum PHP version is now 5.6** +- continuous integration with PHP 7 + +## [0.1.1](https://github.com/brick/math/releases/tag/0.1.1) - 2014-09-01 + +- Added `BigInteger::power()` +- Added HHVM support + +## [0.1.0](https://github.com/brick/math/releases/tag/0.1.0) - 2014-08-31 + +First beta release. + diff --git a/vendor/brick/math/LICENSE b/vendor/brick/math/LICENSE new file mode 100644 index 0000000..f9b724f --- /dev/null +++ b/vendor/brick/math/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013-present Benjamin Morel + +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/brick/math/composer.json b/vendor/brick/math/composer.json new file mode 100644 index 0000000..ad1dfe0 --- /dev/null +++ b/vendor/brick/math/composer.json @@ -0,0 +1,39 @@ +{ + "name": "brick/math", + "description": "Arbitrary-precision arithmetic library", + "type": "library", + "keywords": [ + "Brick", + "Math", + "Mathematics", + "Arbitrary-precision", + "Arithmetic", + "BigInteger", + "BigDecimal", + "BigRational", + "BigNumber", + "Bignum", + "Decimal", + "Rational", + "Integer" + ], + "license": "MIT", + "require": { + "php": "^8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.5", + "php-coveralls/php-coveralls": "^2.2", + "phpstan/phpstan": "2.1.22" + }, + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Brick\\Math\\Tests\\": "tests/" + } + } +} diff --git a/vendor/brick/math/phpstan.neon b/vendor/brick/math/phpstan.neon new file mode 100644 index 0000000..216ba1e --- /dev/null +++ b/vendor/brick/math/phpstan.neon @@ -0,0 +1,14 @@ +parameters: + level: 10 + checkUninitializedProperties: true + paths: + - src + ignoreErrors: + - '~Impure call to function array_shift\(\) in pure method~' + - '~Possibly impure call to function assert\(\) in pure method~' + - '~Possibly impure call to function hex2bin\(\) in pure method~' + - '~Possibly impure call to function preg_match\(\) in pure method~' + - '~Impure static variable in pure method Brick\\Math\\Big(Integer|Decimal|Rational)::(zero|one|ten)\(\)~' + - + message: '~Parameter #\d \$\S+ of function bc\S+ expects numeric-string, string given~' + path: src/Internal/Calculator/BcMathCalculator.php diff --git a/vendor/brick/math/src/BigDecimal.php b/vendor/brick/math/src/BigDecimal.php new file mode 100644 index 0000000..1a540c7 --- /dev/null +++ b/vendor/brick/math/src/BigDecimal.php @@ -0,0 +1,862 @@ +value = $value; + $this->scale = $scale; + } + + #[Override] + protected static function from(BigNumber $number): static + { + return $number->toBigDecimal(); + } + + /** + * Creates a BigDecimal from an unscaled value and a scale. + * + * Example: `(12345, 3)` will result in the BigDecimal `12.345`. + * + * @param BigNumber|int|float|string $value The unscaled value. Must be convertible to a BigInteger. + * @param int $scale The scale of the number. If negative, the scale will be set to zero + * and the unscaled value will be adjusted accordingly. + * + * @pure + */ + public static function ofUnscaledValue(BigNumber|int|float|string $value, int $scale = 0) : BigDecimal + { + $value = (string) BigInteger::of($value); + + if ($scale < 0) { + if ($value !== '0') { + $value .= \str_repeat('0', -$scale); + } + $scale = 0; + } + + return new BigDecimal($value, $scale); + } + + /** + * Returns a BigDecimal representing zero, with a scale of zero. + * + * @pure + */ + public static function zero() : BigDecimal + { + /** @var BigDecimal|null $zero */ + static $zero; + + if ($zero === null) { + $zero = new BigDecimal('0'); + } + + return $zero; + } + + /** + * Returns a BigDecimal representing one, with a scale of zero. + * + * @pure + */ + public static function one() : BigDecimal + { + /** @var BigDecimal|null $one */ + static $one; + + if ($one === null) { + $one = new BigDecimal('1'); + } + + return $one; + } + + /** + * Returns a BigDecimal representing ten, with a scale of zero. + * + * @pure + */ + public static function ten() : BigDecimal + { + /** @var BigDecimal|null $ten */ + static $ten; + + if ($ten === null) { + $ten = new BigDecimal('10'); + } + + return $ten; + } + + /** + * Returns the sum of this number and the given one. + * + * The result has a scale of `max($this->scale, $that->scale)`. + * + * @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigDecimal. + * + * @throws MathException If the number is not valid, or is not convertible to a BigDecimal. + * + * @pure + */ + public function plus(BigNumber|int|float|string $that) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->value === '0' && $that->scale <= $this->scale) { + return $this; + } + + if ($this->value === '0' && $this->scale <= $that->scale) { + return $that; + } + + [$a, $b] = $this->scaleValues($this, $that); + + $value = CalculatorRegistry::get()->add($a, $b); + $scale = $this->scale > $that->scale ? $this->scale : $that->scale; + + return new BigDecimal($value, $scale); + } + + /** + * Returns the difference of this number and the given one. + * + * The result has a scale of `max($this->scale, $that->scale)`. + * + * @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigDecimal. + * + * @throws MathException If the number is not valid, or is not convertible to a BigDecimal. + * + * @pure + */ + public function minus(BigNumber|int|float|string $that) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->value === '0' && $that->scale <= $this->scale) { + return $this; + } + + [$a, $b] = $this->scaleValues($this, $that); + + $value = CalculatorRegistry::get()->sub($a, $b); + $scale = $this->scale > $that->scale ? $this->scale : $that->scale; + + return new BigDecimal($value, $scale); + } + + /** + * Returns the product of this number and the given one. + * + * The result has a scale of `$this->scale + $that->scale`. + * + * @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigDecimal. + * + * @throws MathException If the multiplier is not a valid number, or is not convertible to a BigDecimal. + * + * @pure + */ + public function multipliedBy(BigNumber|int|float|string $that) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->value === '1' && $that->scale === 0) { + return $this; + } + + if ($this->value === '1' && $this->scale === 0) { + return $that; + } + + $value = CalculatorRegistry::get()->mul($this->value, $that->value); + $scale = $this->scale + $that->scale; + + return new BigDecimal($value, $scale); + } + + /** + * Returns the result of the division of this number by the given one, at the given scale. + * + * @param BigNumber|int|float|string $that The divisor. + * @param int|null $scale The desired scale, or null to use the scale of this number. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY. + * + * @throws \InvalidArgumentException If the scale or rounding mode is invalid. + * @throws MathException If the number is invalid, is zero, or rounding was necessary. + * + * @pure + */ + public function dividedBy(BigNumber|int|float|string $that, ?int $scale = null, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->isZero()) { + throw DivisionByZeroException::divisionByZero(); + } + + if ($scale === null) { + $scale = $this->scale; + } elseif ($scale < 0) { + throw new \InvalidArgumentException('Scale cannot be negative.'); + } + + if ($that->value === '1' && $that->scale === 0 && $scale === $this->scale) { + return $this; + } + + $p = $this->valueWithMinScale($that->scale + $scale); + $q = $that->valueWithMinScale($this->scale - $scale); + + $result = CalculatorRegistry::get()->divRound($p, $q, $roundingMode); + + return new BigDecimal($result, $scale); + } + + /** + * Returns the exact result of the division of this number by the given one. + * + * The scale of the result is automatically calculated to fit all the fraction digits. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * + * @throws MathException If the divisor is not a valid number, is not convertible to a BigDecimal, is zero, + * or the result yields an infinite number of digits. + * + * @pure + */ + public function exactlyDividedBy(BigNumber|int|float|string $that) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->value === '0') { + throw DivisionByZeroException::divisionByZero(); + } + + [, $b] = $this->scaleValues($this, $that); + + $d = \rtrim($b, '0'); + $scale = \strlen($b) - \strlen($d); + + $calculator = CalculatorRegistry::get(); + + foreach ([5, 2] as $prime) { + for (;;) { + $lastDigit = (int) $d[-1]; + + if ($lastDigit % $prime !== 0) { + break; + } + + $d = $calculator->divQ($d, (string) $prime); + $scale++; + } + } + + return $this->dividedBy($that, $scale)->stripTrailingZeros(); + } + + /** + * Limits (clamps) this number between the given minimum and maximum values. + * + * If the number is lower than $min, returns a copy of $min. + * If the number is greater than $max, returns a copy of $max. + * Otherwise, returns this number unchanged. + * + * @param BigNumber|int|float|string $min The minimum. Must be convertible to a BigDecimal. + * @param BigNumber|int|float|string $max The maximum. Must be convertible to a BigDecimal. + * + * @throws MathException If min/max are not convertible to a BigDecimal. + */ + public function clamp(BigNumber|int|float|string $min, BigNumber|int|float|string $max) : BigDecimal + { + if ($this->isLessThan($min)) { + return BigDecimal::of($min); + } elseif ($this->isGreaterThan($max)) { + return BigDecimal::of($max); + } + return $this; + } + + /** + * Returns this number exponentiated to the given value. + * + * The result has a scale of `$this->scale * $exponent`. + * + * @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000. + * + * @pure + */ + public function power(int $exponent) : BigDecimal + { + if ($exponent === 0) { + return BigDecimal::one(); + } + + if ($exponent === 1) { + return $this; + } + + if ($exponent < 0 || $exponent > Calculator::MAX_POWER) { + throw new \InvalidArgumentException(\sprintf( + 'The exponent %d is not in the range 0 to %d.', + $exponent, + Calculator::MAX_POWER + )); + } + + return new BigDecimal(CalculatorRegistry::get()->pow($this->value, $exponent), $this->scale * $exponent); + } + + /** + * Returns the quotient of the division of this number by the given one. + * + * The quotient has a scale of `0`. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * + * @throws MathException If the divisor is not a valid decimal number, or is zero. + * + * @pure + */ + public function quotient(BigNumber|int|float|string $that) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->isZero()) { + throw DivisionByZeroException::divisionByZero(); + } + + $p = $this->valueWithMinScale($that->scale); + $q = $that->valueWithMinScale($this->scale); + + $quotient = CalculatorRegistry::get()->divQ($p, $q); + + return new BigDecimal($quotient, 0); + } + + /** + * Returns the remainder of the division of this number by the given one. + * + * The remainder has a scale of `max($this->scale, $that->scale)`. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * + * @throws MathException If the divisor is not a valid decimal number, or is zero. + * + * @pure + */ + public function remainder(BigNumber|int|float|string $that) : BigDecimal + { + $that = BigDecimal::of($that); + + if ($that->isZero()) { + throw DivisionByZeroException::divisionByZero(); + } + + $p = $this->valueWithMinScale($that->scale); + $q = $that->valueWithMinScale($this->scale); + + $remainder = CalculatorRegistry::get()->divR($p, $q); + + $scale = $this->scale > $that->scale ? $this->scale : $that->scale; + + return new BigDecimal($remainder, $scale); + } + + /** + * Returns the quotient and remainder of the division of this number by the given one. + * + * The quotient has a scale of `0`, and the remainder has a scale of `max($this->scale, $that->scale)`. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigDecimal. + * + * @return array{BigDecimal, BigDecimal} An array containing the quotient and the remainder. + * + * @throws MathException If the divisor is not a valid decimal number, or is zero. + * + * @pure + */ + public function quotientAndRemainder(BigNumber|int|float|string $that) : array + { + $that = BigDecimal::of($that); + + if ($that->isZero()) { + throw DivisionByZeroException::divisionByZero(); + } + + $p = $this->valueWithMinScale($that->scale); + $q = $that->valueWithMinScale($this->scale); + + [$quotient, $remainder] = CalculatorRegistry::get()->divQR($p, $q); + + $scale = $this->scale > $that->scale ? $this->scale : $that->scale; + + $quotient = new BigDecimal($quotient, 0); + $remainder = new BigDecimal($remainder, $scale); + + return [$quotient, $remainder]; + } + + /** + * Returns the square root of this number, rounded down to the given number of decimals. + * + * @throws \InvalidArgumentException If the scale is negative. + * @throws NegativeNumberException If this number is negative. + * + * @pure + */ + public function sqrt(int $scale) : BigDecimal + { + if ($scale < 0) { + throw new \InvalidArgumentException('Scale cannot be negative.'); + } + + if ($this->value === '0') { + return new BigDecimal('0', $scale); + } + + if ($this->value[0] === '-') { + throw new NegativeNumberException('Cannot calculate the square root of a negative number.'); + } + + $value = $this->value; + $addDigits = 2 * $scale - $this->scale; + + if ($addDigits > 0) { + // add zeros + $value .= \str_repeat('0', $addDigits); + } elseif ($addDigits < 0) { + // trim digits + if (-$addDigits >= \strlen($this->value)) { + // requesting a scale too low, will always yield a zero result + return new BigDecimal('0', $scale); + } + + $value = \substr($value, 0, $addDigits); + } + + $value = CalculatorRegistry::get()->sqrt($value); + + return new BigDecimal($value, $scale); + } + + /** + * Returns a copy of this BigDecimal with the decimal point moved $n places to the left. + * + * @pure + */ + public function withPointMovedLeft(int $n) : BigDecimal + { + if ($n === 0) { + return $this; + } + + if ($n < 0) { + return $this->withPointMovedRight(-$n); + } + + return new BigDecimal($this->value, $this->scale + $n); + } + + /** + * Returns a copy of this BigDecimal with the decimal point moved $n places to the right. + * + * @pure + */ + public function withPointMovedRight(int $n) : BigDecimal + { + if ($n === 0) { + return $this; + } + + if ($n < 0) { + return $this->withPointMovedLeft(-$n); + } + + $value = $this->value; + $scale = $this->scale - $n; + + if ($scale < 0) { + if ($value !== '0') { + $value .= \str_repeat('0', -$scale); + } + $scale = 0; + } + + return new BigDecimal($value, $scale); + } + + /** + * Returns a copy of this BigDecimal with any trailing zeros removed from the fractional part. + * + * @pure + */ + public function stripTrailingZeros() : BigDecimal + { + if ($this->scale === 0) { + return $this; + } + + $trimmedValue = \rtrim($this->value, '0'); + + if ($trimmedValue === '') { + return BigDecimal::zero(); + } + + $trimmableZeros = \strlen($this->value) - \strlen($trimmedValue); + + if ($trimmableZeros === 0) { + return $this; + } + + if ($trimmableZeros > $this->scale) { + $trimmableZeros = $this->scale; + } + + $value = \substr($this->value, 0, -$trimmableZeros); + $scale = $this->scale - $trimmableZeros; + + return new BigDecimal($value, $scale); + } + + /** + * Returns the absolute value of this number. + * + * @pure + */ + public function abs() : BigDecimal + { + return $this->isNegative() ? $this->negated() : $this; + } + + /** + * Returns the negated value of this number. + * + * @pure + */ + public function negated() : BigDecimal + { + return new BigDecimal(CalculatorRegistry::get()->neg($this->value), $this->scale); + } + + #[Override] + public function compareTo(BigNumber|int|float|string $that) : int + { + $that = BigNumber::of($that); + + if ($that instanceof BigInteger) { + $that = $that->toBigDecimal(); + } + + if ($that instanceof BigDecimal) { + [$a, $b] = $this->scaleValues($this, $that); + + return CalculatorRegistry::get()->cmp($a, $b); + } + + return - $that->compareTo($this); + } + + #[Override] + public function getSign() : int + { + return ($this->value === '0') ? 0 : (($this->value[0] === '-') ? -1 : 1); + } + + /** + * @pure + */ + public function getUnscaledValue() : BigInteger + { + return self::newBigInteger($this->value); + } + + /** + * @pure + */ + public function getScale() : int + { + return $this->scale; + } + + /** + * Returns the number of significant digits in the number. + * + * This is the number of digits to both sides of the decimal point, stripped of leading zeros. + * The sign has no impact on the result. + * + * Examples: + * 0 => 0 + * 0.0 => 0 + * 123 => 3 + * 123.456 => 6 + * 0.00123 => 3 + * 0.0012300 => 5 + * + * @pure + */ + public function getPrecision(): int + { + $value = $this->value; + + if ($value === '0') { + return 0; + } + + $length = \strlen($value); + + return ($value[0] === '-') ? $length - 1 : $length; + } + + /** + * Returns a string representing the integral part of this decimal number. + * + * Example: `-123.456` => `-123`. + * + * @pure + */ + public function getIntegralPart() : string + { + if ($this->scale === 0) { + return $this->value; + } + + $value = $this->getUnscaledValueWithLeadingZeros(); + + return \substr($value, 0, -$this->scale); + } + + /** + * Returns a string representing the fractional part of this decimal number. + * + * If the scale is zero, an empty string is returned. + * + * Examples: `-123.456` => '456', `123` => ''. + * + * @pure + */ + public function getFractionalPart() : string + { + if ($this->scale === 0) { + return ''; + } + + $value = $this->getUnscaledValueWithLeadingZeros(); + + return \substr($value, -$this->scale); + } + + /** + * Returns whether this decimal number has a non-zero fractional part. + * + * @pure + */ + public function hasNonZeroFractionalPart() : bool + { + return $this->getFractionalPart() !== \str_repeat('0', $this->scale); + } + + #[Override] + public function toBigInteger() : BigInteger + { + $zeroScaleDecimal = $this->scale === 0 ? $this : $this->dividedBy(1, 0); + + return self::newBigInteger($zeroScaleDecimal->value); + } + + #[Override] + public function toBigDecimal() : BigDecimal + { + return $this; + } + + #[Override] + public function toBigRational() : BigRational + { + $numerator = self::newBigInteger($this->value); + $denominator = self::newBigInteger('1' . \str_repeat('0', $this->scale)); + + return self::newBigRational($numerator, $denominator, false); + } + + #[Override] + public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal + { + if ($scale === $this->scale) { + return $this; + } + + return $this->dividedBy(BigDecimal::one(), $scale, $roundingMode); + } + + #[Override] + public function toInt() : int + { + return $this->toBigInteger()->toInt(); + } + + #[Override] + public function toFloat() : float + { + return (float) (string) $this; + } + + /** + * @return numeric-string + */ + #[Override] + public function __toString() : string + { + if ($this->scale === 0) { + /** @var numeric-string */ + return $this->value; + } + + $value = $this->getUnscaledValueWithLeadingZeros(); + + /** @phpstan-ignore return.type */ + return \substr($value, 0, -$this->scale) . '.' . \substr($value, -$this->scale); + } + + /** + * This method is required for serializing the object and SHOULD NOT be accessed directly. + * + * @internal + * + * @return array{value: string, scale: int} + */ + public function __serialize(): array + { + return ['value' => $this->value, 'scale' => $this->scale]; + } + + /** + * This method is only here to allow unserializing the object and cannot be accessed directly. + * + * @internal + * + * @param array{value: string, scale: int} $data + * + * @throws \LogicException + */ + public function __unserialize(array $data): void + { + /** @phpstan-ignore isset.initializedProperty */ + if (isset($this->value)) { + throw new \LogicException('__unserialize() is an internal function, it must not be called directly.'); + } + + /** @phpstan-ignore deadCode.unreachable */ + $this->value = $data['value']; + $this->scale = $data['scale']; + } + + /** + * Puts the internal values of the given decimal numbers on the same scale. + * + * @return array{string, string} The scaled integer values of $x and $y. + * + * @pure + */ + private function scaleValues(BigDecimal $x, BigDecimal $y) : array + { + $a = $x->value; + $b = $y->value; + + if ($b !== '0' && $x->scale > $y->scale) { + $b .= \str_repeat('0', $x->scale - $y->scale); + } elseif ($a !== '0' && $x->scale < $y->scale) { + $a .= \str_repeat('0', $y->scale - $x->scale); + } + + return [$a, $b]; + } + + /** + * @pure + */ + private function valueWithMinScale(int $scale) : string + { + $value = $this->value; + + if ($this->value !== '0' && $scale > $this->scale) { + $value .= \str_repeat('0', $scale - $this->scale); + } + + return $value; + } + + /** + * Adds leading zeros if necessary to the unscaled value to represent the full decimal number. + * + * @pure + */ + private function getUnscaledValueWithLeadingZeros() : string + { + $value = $this->value; + $targetLength = $this->scale + 1; + $negative = ($value[0] === '-'); + $length = \strlen($value); + + if ($negative) { + $length--; + } + + if ($length >= $targetLength) { + return $this->value; + } + + if ($negative) { + $value = \substr($value, 1); + } + + $value = \str_pad($value, $targetLength, '0', STR_PAD_LEFT); + + if ($negative) { + $value = '-' . $value; + } + + return $value; + } +} diff --git a/vendor/brick/math/src/BigInteger.php b/vendor/brick/math/src/BigInteger.php new file mode 100644 index 0000000..48a7bb3 --- /dev/null +++ b/vendor/brick/math/src/BigInteger.php @@ -0,0 +1,1139 @@ +value = $value; + } + + #[Override] + protected static function from(BigNumber $number): static + { + return $number->toBigInteger(); + } + + /** + * Creates a number from a string in a given base. + * + * The string can optionally be prefixed with the `+` or `-` sign. + * + * Bases greater than 36 are not supported by this method, as there is no clear consensus on which of the lowercase + * or uppercase characters should come first. Instead, this method accepts any base up to 36, and does not + * differentiate lowercase and uppercase characters, which are considered equal. + * + * For bases greater than 36, and/or custom alphabets, use the fromArbitraryBase() method. + * + * @param string $number The number to convert, in the given base. + * @param int $base The base of the number, between 2 and 36. + * + * @throws NumberFormatException If the number is empty, or contains invalid chars for the given base. + * @throws \InvalidArgumentException If the base is out of range. + * + * @pure + */ + public static function fromBase(string $number, int $base) : BigInteger + { + if ($number === '') { + throw new NumberFormatException('The number cannot be empty.'); + } + + if ($base < 2 || $base > 36) { + throw new \InvalidArgumentException(\sprintf('Base %d is not in range 2 to 36.', $base)); + } + + if ($number[0] === '-') { + $sign = '-'; + $number = \substr($number, 1); + } elseif ($number[0] === '+') { + $sign = ''; + $number = \substr($number, 1); + } else { + $sign = ''; + } + + if ($number === '') { + throw new NumberFormatException('The number cannot be empty.'); + } + + $number = \ltrim($number, '0'); + + if ($number === '') { + // The result will be the same in any base, avoid further calculation. + return BigInteger::zero(); + } + + if ($number === '1') { + // The result will be the same in any base, avoid further calculation. + return new BigInteger($sign . '1'); + } + + $pattern = '/[^' . \substr(Calculator::ALPHABET, 0, $base) . ']/'; + + if (\preg_match($pattern, \strtolower($number), $matches) === 1) { + throw new NumberFormatException(\sprintf('"%s" is not a valid character in base %d.', $matches[0], $base)); + } + + if ($base === 10) { + // The number is usable as is, avoid further calculation. + return new BigInteger($sign . $number); + } + + $result = CalculatorRegistry::get()->fromBase($number, $base); + + return new BigInteger($sign . $result); + } + + /** + * Parses a string containing an integer in an arbitrary base, using a custom alphabet. + * + * Because this method accepts an alphabet with any character, including dash, it does not handle negative numbers. + * + * @param string $number The number to parse. + * @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8. + * + * @throws NumberFormatException If the given number is empty or contains invalid chars for the given alphabet. + * @throws \InvalidArgumentException If the alphabet does not contain at least 2 chars. + * + * @pure + */ + public static function fromArbitraryBase(string $number, string $alphabet) : BigInteger + { + if ($number === '') { + throw new NumberFormatException('The number cannot be empty.'); + } + + $base = \strlen($alphabet); + + if ($base < 2) { + throw new \InvalidArgumentException('The alphabet must contain at least 2 chars.'); + } + + $pattern = '/[^' . \preg_quote($alphabet, '/') . ']/'; + + if (\preg_match($pattern, $number, $matches) === 1) { + throw NumberFormatException::charNotInAlphabet($matches[0]); + } + + $number = CalculatorRegistry::get()->fromArbitraryBase($number, $alphabet, $base); + + return new BigInteger($number); + } + + /** + * Translates a string of bytes containing the binary representation of a BigInteger into a BigInteger. + * + * The input string is assumed to be in big-endian byte-order: the most significant byte is in the zeroth element. + * + * If `$signed` is true, the input is assumed to be in two's-complement representation, and the leading bit is + * interpreted as a sign bit. If `$signed` is false, the input is interpreted as an unsigned number, and the + * resulting BigInteger will always be positive or zero. + * + * This method can be used to retrieve a number exported by `toBytes()`, as long as the `$signed` flags match. + * + * @param string $value The byte string. + * @param bool $signed Whether to interpret as a signed number in two's-complement representation with a leading + * sign bit. + * + * @throws NumberFormatException If the string is empty. + * + * @pure + */ + public static function fromBytes(string $value, bool $signed = true) : BigInteger + { + if ($value === '') { + throw new NumberFormatException('The byte string must not be empty.'); + } + + $twosComplement = false; + + if ($signed) { + $x = \ord($value[0]); + + if (($twosComplement = ($x >= 0x80))) { + $value = ~$value; + } + } + + $number = self::fromBase(\bin2hex($value), 16); + + if ($twosComplement) { + return $number->plus(1)->negated(); + } + + return $number; + } + + /** + * Generates a pseudo-random number in the range 0 to 2^numBits - 1. + * + * Using the default random bytes generator, this method is suitable for cryptographic use. + * + * @param int $numBits The number of bits. + * @param (callable(int): string)|null $randomBytesGenerator A function that accepts a number of bytes, and returns + * a string of random bytes of the given length. Defaults + * to the `random_bytes()` function. + * + * @throws \InvalidArgumentException If $numBits is negative. + */ + public static function randomBits(int $numBits, ?callable $randomBytesGenerator = null) : BigInteger + { + if ($numBits < 0) { + throw new \InvalidArgumentException('The number of bits cannot be negative.'); + } + + if ($numBits === 0) { + return BigInteger::zero(); + } + + if ($randomBytesGenerator === null) { + $randomBytesGenerator = random_bytes(...); + } + + /** @var int<1, max> $byteLength */ + $byteLength = \intdiv($numBits - 1, 8) + 1; + + $extraBits = ($byteLength * 8 - $numBits); + $bitmask = \chr(0xFF >> $extraBits); + + $randomBytes = $randomBytesGenerator($byteLength); + $randomBytes[0] = $randomBytes[0] & $bitmask; + + return self::fromBytes($randomBytes, false); + } + + /** + * Generates a pseudo-random number between `$min` and `$max`. + * + * Using the default random bytes generator, this method is suitable for cryptographic use. + * + * @param BigNumber|int|float|string $min The lower bound. Must be convertible to a BigInteger. + * @param BigNumber|int|float|string $max The upper bound. Must be convertible to a BigInteger. + * @param (callable(int): string)|null $randomBytesGenerator A function that accepts a number of bytes, and returns + * a string of random bytes of the given length. Defaults + * to the `random_bytes()` function. + * + * @throws MathException If one of the parameters cannot be converted to a BigInteger, + * or `$min` is greater than `$max`. + */ + public static function randomRange( + BigNumber|int|float|string $min, + BigNumber|int|float|string $max, + ?callable $randomBytesGenerator = null + ) : BigInteger { + $min = BigInteger::of($min); + $max = BigInteger::of($max); + + if ($min->isGreaterThan($max)) { + throw new MathException('$min cannot be greater than $max.'); + } + + if ($min->isEqualTo($max)) { + return $min; + } + + $diff = $max->minus($min); + $bitLength = $diff->getBitLength(); + + // try until the number is in range (50% to 100% chance of success) + do { + $randomNumber = self::randomBits($bitLength, $randomBytesGenerator); + } while ($randomNumber->isGreaterThan($diff)); + + return $randomNumber->plus($min); + } + + /** + * Returns a BigInteger representing zero. + * + * @pure + */ + public static function zero() : BigInteger + { + /** @var BigInteger|null $zero */ + static $zero; + + if ($zero === null) { + $zero = new BigInteger('0'); + } + + return $zero; + } + + /** + * Returns a BigInteger representing one. + * + * @pure + */ + public static function one() : BigInteger + { + /** @var BigInteger|null $one */ + static $one; + + if ($one === null) { + $one = new BigInteger('1'); + } + + return $one; + } + + /** + * Returns a BigInteger representing ten. + * + * @pure + */ + public static function ten() : BigInteger + { + /** @var BigInteger|null $ten */ + static $ten; + + if ($ten === null) { + $ten = new BigInteger('10'); + } + + return $ten; + } + + /** + * @pure + */ + public static function gcdMultiple(BigInteger $a, BigInteger ...$n): BigInteger + { + $result = $a; + + foreach ($n as $next) { + $result = $result->gcd($next); + + if ($result->isEqualTo(1)) { + return $result; + } + } + + return $result; + } + + /** + * Returns the sum of this number and the given one. + * + * @param BigNumber|int|float|string $that The number to add. Must be convertible to a BigInteger. + * + * @throws MathException If the number is not valid, or is not convertible to a BigInteger. + * + * @pure + */ + public function plus(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '0') { + return $this; + } + + if ($this->value === '0') { + return $that; + } + + $value = CalculatorRegistry::get()->add($this->value, $that->value); + + return new BigInteger($value); + } + + /** + * Returns the difference of this number and the given one. + * + * @param BigNumber|int|float|string $that The number to subtract. Must be convertible to a BigInteger. + * + * @throws MathException If the number is not valid, or is not convertible to a BigInteger. + * + * @pure + */ + public function minus(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '0') { + return $this; + } + + $value = CalculatorRegistry::get()->sub($this->value, $that->value); + + return new BigInteger($value); + } + + /** + * Returns the product of this number and the given one. + * + * @param BigNumber|int|float|string $that The multiplier. Must be convertible to a BigInteger. + * + * @throws MathException If the multiplier is not a valid number, or is not convertible to a BigInteger. + * + * @pure + */ + public function multipliedBy(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '1') { + return $this; + } + + if ($this->value === '1') { + return $that; + } + + $value = CalculatorRegistry::get()->mul($this->value, $that->value); + + return new BigInteger($value); + } + + /** + * Returns the result of the division of this number by the given one. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY. + * + * @throws MathException If the divisor is not a valid number, is not convertible to a BigInteger, is zero, + * or RoundingMode::UNNECESSARY is used and the remainder is not zero. + * + * @pure + */ + public function dividedBy(BigNumber|int|float|string $that, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '1') { + return $this; + } + + if ($that->value === '0') { + throw DivisionByZeroException::divisionByZero(); + } + + $result = CalculatorRegistry::get()->divRound($this->value, $that->value, $roundingMode); + + return new BigInteger($result); + } + + /** + * Limits (clamps) this number between the given minimum and maximum values. + * + * If the number is lower than $min, returns a copy of $min. + * If the number is greater than $max, returns a copy of $max. + * Otherwise, returns this number unchanged. + * + * @param BigNumber|int|float|string $min The minimum. Must be convertible to a BigInteger. + * @param BigNumber|int|float|string $max The maximum. Must be convertible to a BigInteger. + * + * @throws MathException If min/max are not convertible to a BigInteger. + */ + public function clamp(BigNumber|int|float|string $min, BigNumber|int|float|string $max) : BigInteger + { + if ($this->isLessThan($min)) { + return BigInteger::of($min); + } elseif ($this->isGreaterThan($max)) { + return BigInteger::of($max); + } + return $this; + } + + + /** + * Returns this number exponentiated to the given value. + * + * @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000. + * + * @pure + */ + public function power(int $exponent) : BigInteger + { + if ($exponent === 0) { + return BigInteger::one(); + } + + if ($exponent === 1) { + return $this; + } + + if ($exponent < 0 || $exponent > Calculator::MAX_POWER) { + throw new \InvalidArgumentException(\sprintf( + 'The exponent %d is not in the range 0 to %d.', + $exponent, + Calculator::MAX_POWER + )); + } + + return new BigInteger(CalculatorRegistry::get()->pow($this->value, $exponent)); + } + + /** + * Returns the quotient of the division of this number by the given one. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * + * @throws DivisionByZeroException If the divisor is zero. + * + * @pure + */ + public function quotient(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '1') { + return $this; + } + + if ($that->value === '0') { + throw DivisionByZeroException::divisionByZero(); + } + + $quotient = CalculatorRegistry::get()->divQ($this->value, $that->value); + + return new BigInteger($quotient); + } + + /** + * Returns the remainder of the division of this number by the given one. + * + * The remainder, when non-zero, has the same sign as the dividend. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * + * @throws DivisionByZeroException If the divisor is zero. + * + * @pure + */ + public function remainder(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '1') { + return BigInteger::zero(); + } + + if ($that->value === '0') { + throw DivisionByZeroException::divisionByZero(); + } + + $remainder = CalculatorRegistry::get()->divR($this->value, $that->value); + + return new BigInteger($remainder); + } + + /** + * Returns the quotient and remainder of the division of this number by the given one. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * + * @return array{BigInteger, BigInteger} An array containing the quotient and the remainder. + * + * @throws DivisionByZeroException If the divisor is zero. + * + * @pure + */ + public function quotientAndRemainder(BigNumber|int|float|string $that) : array + { + $that = BigInteger::of($that); + + if ($that->value === '0') { + throw DivisionByZeroException::divisionByZero(); + } + + [$quotient, $remainder] = CalculatorRegistry::get()->divQR($this->value, $that->value); + + return [ + new BigInteger($quotient), + new BigInteger($remainder) + ]; + } + + /** + * Returns the modulo of this number and the given one. + * + * The modulo operation yields the same result as the remainder operation when both operands are of the same sign, + * and may differ when signs are different. + * + * The result of the modulo operation, when non-zero, has the same sign as the divisor. + * + * @param BigNumber|int|float|string $that The divisor. Must be convertible to a BigInteger. + * + * @throws DivisionByZeroException If the divisor is zero. + * + * @pure + */ + public function mod(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '0') { + throw DivisionByZeroException::modulusMustNotBeZero(); + } + + $value = CalculatorRegistry::get()->mod($this->value, $that->value); + + return new BigInteger($value); + } + + /** + * Returns the modular multiplicative inverse of this BigInteger modulo $m. + * + * @throws DivisionByZeroException If $m is zero. + * @throws NegativeNumberException If $m is negative. + * @throws MathException If this BigInteger has no multiplicative inverse mod m (that is, this BigInteger + * is not relatively prime to m). + * + * @pure + */ + public function modInverse(BigInteger $m) : BigInteger + { + if ($m->value === '0') { + throw DivisionByZeroException::modulusMustNotBeZero(); + } + + if ($m->isNegative()) { + throw new NegativeNumberException('Modulus must not be negative.'); + } + + if ($m->value === '1') { + return BigInteger::zero(); + } + + $value = CalculatorRegistry::get()->modInverse($this->value, $m->value); + + if ($value === null) { + throw new MathException('Unable to compute the modInverse for the given modulus.'); + } + + return new BigInteger($value); + } + + /** + * Returns this number raised into power with modulo. + * + * This operation only works on positive numbers. + * + * @param BigNumber|int|float|string $exp The exponent. Must be positive or zero. + * @param BigNumber|int|float|string $mod The modulus. Must be strictly positive. + * + * @throws NegativeNumberException If any of the operands is negative. + * @throws DivisionByZeroException If the modulus is zero. + * + * @pure + */ + public function modPow(BigNumber|int|float|string $exp, BigNumber|int|float|string $mod) : BigInteger + { + $exp = BigInteger::of($exp); + $mod = BigInteger::of($mod); + + if ($this->isNegative() || $exp->isNegative() || $mod->isNegative()) { + throw new NegativeNumberException('The operands cannot be negative.'); + } + + if ($mod->isZero()) { + throw DivisionByZeroException::modulusMustNotBeZero(); + } + + $result = CalculatorRegistry::get()->modPow($this->value, $exp->value, $mod->value); + + return new BigInteger($result); + } + + /** + * Returns the greatest common divisor of this number and the given one. + * + * The GCD is always positive, unless both operands are zero, in which case it is zero. + * + * @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number. + * + * @pure + */ + public function gcd(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + if ($that->value === '0' && $this->value[0] !== '-') { + return $this; + } + + if ($this->value === '0' && $that->value[0] !== '-') { + return $that; + } + + $value = CalculatorRegistry::get()->gcd($this->value, $that->value); + + return new BigInteger($value); + } + + /** + * Returns the integer square root number of this number, rounded down. + * + * The result is the largest x such that x² ≤ n. + * + * @throws NegativeNumberException If this number is negative. + * + * @pure + */ + public function sqrt() : BigInteger + { + if ($this->value[0] === '-') { + throw new NegativeNumberException('Cannot calculate the square root of a negative number.'); + } + + $value = CalculatorRegistry::get()->sqrt($this->value); + + return new BigInteger($value); + } + + /** + * Returns the absolute value of this number. + * + * @pure + */ + public function abs() : BigInteger + { + return $this->isNegative() ? $this->negated() : $this; + } + + /** + * Returns the inverse of this number. + * + * @pure + */ + public function negated() : BigInteger + { + return new BigInteger(CalculatorRegistry::get()->neg($this->value)); + } + + /** + * Returns the integer bitwise-and combined with another integer. + * + * This method returns a negative BigInteger if and only if both operands are negative. + * + * @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number. + * + * @pure + */ + public function and(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + return new BigInteger(CalculatorRegistry::get()->and($this->value, $that->value)); + } + + /** + * Returns the integer bitwise-or combined with another integer. + * + * This method returns a negative BigInteger if and only if either of the operands is negative. + * + * @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number. + * + * @pure + */ + public function or(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + return new BigInteger(CalculatorRegistry::get()->or($this->value, $that->value)); + } + + /** + * Returns the integer bitwise-xor combined with another integer. + * + * This method returns a negative BigInteger if and only if exactly one of the operands is negative. + * + * @param BigNumber|int|float|string $that The operand. Must be convertible to an integer number. + * + * @pure + */ + public function xor(BigNumber|int|float|string $that) : BigInteger + { + $that = BigInteger::of($that); + + return new BigInteger(CalculatorRegistry::get()->xor($this->value, $that->value)); + } + + /** + * Returns the bitwise-not of this BigInteger. + * + * @pure + */ + public function not() : BigInteger + { + return $this->negated()->minus(1); + } + + /** + * Returns the integer left shifted by a given number of bits. + * + * @pure + */ + public function shiftedLeft(int $distance) : BigInteger + { + if ($distance === 0) { + return $this; + } + + if ($distance < 0) { + return $this->shiftedRight(- $distance); + } + + return $this->multipliedBy(BigInteger::of(2)->power($distance)); + } + + /** + * Returns the integer right shifted by a given number of bits. + * + * @pure + */ + public function shiftedRight(int $distance) : BigInteger + { + if ($distance === 0) { + return $this; + } + + if ($distance < 0) { + return $this->shiftedLeft(- $distance); + } + + $operand = BigInteger::of(2)->power($distance); + + if ($this->isPositiveOrZero()) { + return $this->quotient($operand); + } + + return $this->dividedBy($operand, RoundingMode::UP); + } + + /** + * Returns the number of bits in the minimal two's-complement representation of this BigInteger, excluding a sign bit. + * + * For positive BigIntegers, this is equivalent to the number of bits in the ordinary binary representation. + * Computes (ceil(log2(this < 0 ? -this : this+1))). + * + * @pure + */ + public function getBitLength() : int + { + if ($this->value === '0') { + return 0; + } + + if ($this->isNegative()) { + return $this->abs()->minus(1)->getBitLength(); + } + + return \strlen($this->toBase(2)); + } + + /** + * Returns the index of the rightmost (lowest-order) one bit in this BigInteger. + * + * Returns -1 if this BigInteger contains no one bits. + * + * @pure + */ + public function getLowestSetBit() : int + { + $n = $this; + $bitLength = $this->getBitLength(); + + for ($i = 0; $i <= $bitLength; $i++) { + if ($n->isOdd()) { + return $i; + } + + $n = $n->shiftedRight(1); + } + + return -1; + } + + /** + * Returns whether this number is even. + * + * @pure + */ + public function isEven() : bool + { + return \in_array($this->value[-1], ['0', '2', '4', '6', '8'], true); + } + + /** + * Returns whether this number is odd. + * + * @pure + */ + public function isOdd() : bool + { + return \in_array($this->value[-1], ['1', '3', '5', '7', '9'], true); + } + + /** + * Returns true if and only if the designated bit is set. + * + * Computes ((this & (1<shiftedRight($n)->isOdd(); + } + + #[Override] + public function compareTo(BigNumber|int|float|string $that) : int + { + $that = BigNumber::of($that); + + if ($that instanceof BigInteger) { + return CalculatorRegistry::get()->cmp($this->value, $that->value); + } + + return - $that->compareTo($this); + } + + #[Override] + public function getSign() : int + { + return ($this->value === '0') ? 0 : (($this->value[0] === '-') ? -1 : 1); + } + + #[Override] + public function toBigInteger() : BigInteger + { + return $this; + } + + #[Override] + public function toBigDecimal() : BigDecimal + { + return self::newBigDecimal($this->value); + } + + #[Override] + public function toBigRational() : BigRational + { + return self::newBigRational($this, BigInteger::one(), false); + } + + #[Override] + public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal + { + return $this->toBigDecimal()->toScale($scale, $roundingMode); + } + + #[Override] + public function toInt() : int + { + $intValue = (int) $this->value; + + if ($this->value !== (string) $intValue) { + throw IntegerOverflowException::toIntOverflow($this); + } + + return $intValue; + } + + #[Override] + public function toFloat() : float + { + return (float) $this->value; + } + + /** + * Returns a string representation of this number in the given base. + * + * The output will always be lowercase for bases greater than 10. + * + * @throws \InvalidArgumentException If the base is out of range. + * + * @pure + */ + public function toBase(int $base) : string + { + if ($base === 10) { + return $this->value; + } + + if ($base < 2 || $base > 36) { + throw new \InvalidArgumentException(\sprintf('Base %d is out of range [2, 36]', $base)); + } + + return CalculatorRegistry::get()->toBase($this->value, $base); + } + + /** + * Returns a string representation of this number in an arbitrary base with a custom alphabet. + * + * Because this method accepts an alphabet with any character, including dash, it does not handle negative numbers; + * a NegativeNumberException will be thrown when attempting to call this method on a negative number. + * + * @param string $alphabet The alphabet, for example '01' for base 2, or '01234567' for base 8. + * + * @throws NegativeNumberException If this number is negative. + * @throws \InvalidArgumentException If the given alphabet does not contain at least 2 chars. + * + * @pure + */ + public function toArbitraryBase(string $alphabet) : string + { + $base = \strlen($alphabet); + + if ($base < 2) { + throw new \InvalidArgumentException('The alphabet must contain at least 2 chars.'); + } + + if ($this->value[0] === '-') { + throw new NegativeNumberException(__FUNCTION__ . '() does not support negative numbers.'); + } + + return CalculatorRegistry::get()->toArbitraryBase($this->value, $alphabet, $base); + } + + /** + * Returns a string of bytes containing the binary representation of this BigInteger. + * + * The string is in big-endian byte-order: the most significant byte is in the zeroth element. + * + * If `$signed` is true, the output will be in two's-complement representation, and a sign bit will be prepended to + * the output. If `$signed` is false, no sign bit will be prepended, and this method will throw an exception if the + * number is negative. + * + * The string will contain the minimum number of bytes required to represent this BigInteger, including a sign bit + * if `$signed` is true. + * + * This representation is compatible with the `fromBytes()` factory method, as long as the `$signed` flags match. + * + * @param bool $signed Whether to output a signed number in two's-complement representation with a leading sign bit. + * + * @throws NegativeNumberException If $signed is false, and the number is negative. + * + * @pure + */ + public function toBytes(bool $signed = true) : string + { + if (! $signed && $this->isNegative()) { + throw new NegativeNumberException('Cannot convert a negative number to a byte string when $signed is false.'); + } + + $hex = $this->abs()->toBase(16); + + if (\strlen($hex) % 2 !== 0) { + $hex = '0' . $hex; + } + + $baseHexLength = \strlen($hex); + + if ($signed) { + if ($this->isNegative()) { + $bin = \hex2bin($hex); + assert($bin !== false); + + $hex = \bin2hex(~$bin); + $hex = self::fromBase($hex, 16)->plus(1)->toBase(16); + + $hexLength = \strlen($hex); + + if ($hexLength < $baseHexLength) { + $hex = \str_repeat('0', $baseHexLength - $hexLength) . $hex; + } + + if ($hex[0] < '8') { + $hex = 'FF' . $hex; + } + } else { + if ($hex[0] >= '8') { + $hex = '00' . $hex; + } + } + } + + $result = \hex2bin($hex); + assert($result !== false); + + return $result; + } + + /** + * @return numeric-string + */ + #[Override] + public function __toString() : string + { + /** @var numeric-string */ + return $this->value; + } + + /** + * This method is required for serializing the object and SHOULD NOT be accessed directly. + * + * @internal + * + * @return array{value: string} + */ + public function __serialize(): array + { + return ['value' => $this->value]; + } + + /** + * This method is only here to allow unserializing the object and cannot be accessed directly. + * + * @internal + * + * @param array{value: string} $data + * + * @throws \LogicException + */ + public function __unserialize(array $data): void + { + /** @phpstan-ignore isset.initializedProperty */ + if (isset($this->value)) { + throw new \LogicException('__unserialize() is an internal function, it must not be called directly.'); + } + + /** @phpstan-ignore deadCode.unreachable */ + $this->value = $data['value']; + } +} diff --git a/vendor/brick/math/src/BigNumber.php b/vendor/brick/math/src/BigNumber.php new file mode 100644 index 0000000..2fbdf69 --- /dev/null +++ b/vendor/brick/math/src/BigNumber.php @@ -0,0 +1,556 @@ +[\-\+])?' . + '(?[0-9]+)?' . + '(?\.)?' . + '(?[0-9]+)?' . + '(?:[eE](?[\-\+]?[0-9]+))?' . + '$/'; + + /** + * The regular expression used to parse rational numbers. + */ + private const PARSE_REGEXP_RATIONAL = + '/^' . + '(?[\-\+])?' . + '(?[0-9]+)' . + '\/?' . + '(?[0-9]+)' . + '$/'; + + /** + * Creates a BigNumber of the given value. + * + * When of() is called on BigNumber, the concrete return type is dependent on the given value, with the following + * rules: + * + * - BigNumber instances are returned as is + * - integer numbers are returned as BigInteger + * - floating point numbers are converted to a string then parsed as such + * - strings containing a `/` character are returned as BigRational + * - strings containing a `.` character or using an exponential notation are returned as BigDecimal + * - strings containing only digits with an optional leading `+` or `-` sign are returned as BigInteger + * + * When of() is called on BigInteger, BigDecimal, or BigRational, the resulting number is converted to an instance + * of the subclass when possible; otherwise a RoundingNecessaryException exception is thrown. + * + * @throws NumberFormatException If the format of the number is not valid. + * @throws DivisionByZeroException If the value represents a rational number with a denominator of zero. + * @throws RoundingNecessaryException If the value cannot be converted to an instance of the subclass without rounding. + * + * @pure + */ + final public static function of(BigNumber|int|float|string $value) : static + { + $value = self::_of($value); + + if (static::class === BigNumber::class) { + assert($value instanceof static); + + return $value; + } + + return static::from($value); + } + + /** + * @throws NumberFormatException If the format of the number is not valid. + * @throws DivisionByZeroException If the value represents a rational number with a denominator of zero. + * + * @pure + */ + private static function _of(BigNumber|int|float|string $value) : BigNumber + { + if ($value instanceof BigNumber) { + return $value; + } + + if (\is_int($value)) { + return new BigInteger((string) $value); + } + + if (is_float($value)) { + $value = (string) $value; + } + + if (str_contains($value, '/')) { + // Rational number + if (\preg_match(self::PARSE_REGEXP_RATIONAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) { + throw NumberFormatException::invalidFormat($value); + } + + $sign = $matches['sign']; + $numerator = $matches['numerator']; + $denominator = $matches['denominator']; + + $numerator = self::cleanUp($sign, $numerator); + $denominator = self::cleanUp(null, $denominator); + + if ($denominator === '0') { + throw DivisionByZeroException::denominatorMustNotBeZero(); + } + + return new BigRational( + new BigInteger($numerator), + new BigInteger($denominator), + false + ); + } else { + // Integer or decimal number + if (\preg_match(self::PARSE_REGEXP_NUMERICAL, $value, $matches, PREG_UNMATCHED_AS_NULL) !== 1) { + throw NumberFormatException::invalidFormat($value); + } + + $sign = $matches['sign']; + $point = $matches['point']; + $integral = $matches['integral']; + $fractional = $matches['fractional']; + $exponent = $matches['exponent']; + + if ($integral === null && $fractional === null) { + throw NumberFormatException::invalidFormat($value); + } + + if ($integral === null) { + $integral = '0'; + } + + if ($point !== null || $exponent !== null) { + $fractional ??= ''; + $exponent = ($exponent !== null) ? (int)$exponent : 0; + + if ($exponent === PHP_INT_MIN || $exponent === PHP_INT_MAX) { + throw new NumberFormatException('Exponent too large.'); + } + + $unscaledValue = self::cleanUp($sign, $integral . $fractional); + + $scale = \strlen($fractional) - $exponent; + + if ($scale < 0) { + if ($unscaledValue !== '0') { + $unscaledValue .= \str_repeat('0', -$scale); + } + $scale = 0; + } + + return new BigDecimal($unscaledValue, $scale); + } + + $integral = self::cleanUp($sign, $integral); + + return new BigInteger($integral); + } + } + + /** + * Overridden by subclasses to convert a BigNumber to an instance of the subclass. + * + * @throws RoundingNecessaryException If the value cannot be converted. + * + * @pure + */ + abstract protected static function from(BigNumber $number): static; + + /** + * Proxy method to access BigInteger's protected constructor from sibling classes. + * + * @pure + * @internal + */ + final protected function newBigInteger(string $value) : BigInteger + { + return new BigInteger($value); + } + + /** + * Proxy method to access BigDecimal's protected constructor from sibling classes. + * + * @pure + * @internal + */ + final protected function newBigDecimal(string $value, int $scale = 0) : BigDecimal + { + return new BigDecimal($value, $scale); + } + + /** + * Proxy method to access BigRational's protected constructor from sibling classes. + * + * @pure + * @internal + */ + final protected function newBigRational(BigInteger $numerator, BigInteger $denominator, bool $checkDenominator) : BigRational + { + return new BigRational($numerator, $denominator, $checkDenominator); + } + + /** + * Returns the minimum of the given values. + * + * @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers need to be convertible + * to an instance of the class this method is called on. + * + * @throws \InvalidArgumentException If no values are given. + * @throws MathException If an argument is not valid. + * + * @pure + */ + final public static function min(BigNumber|int|float|string ...$values) : static + { + $min = null; + + foreach ($values as $value) { + $value = static::of($value); + + if ($min === null || $value->isLessThan($min)) { + $min = $value; + } + } + + if ($min === null) { + throw new \InvalidArgumentException(__METHOD__ . '() expects at least one value.'); + } + + return $min; + } + + /** + * Returns the maximum of the given values. + * + * @param BigNumber|int|float|string ...$values The numbers to compare. All the numbers need to be convertible + * to an instance of the class this method is called on. + * + * @throws \InvalidArgumentException If no values are given. + * @throws MathException If an argument is not valid. + * + * @pure + */ + final public static function max(BigNumber|int|float|string ...$values) : static + { + $max = null; + + foreach ($values as $value) { + $value = static::of($value); + + if ($max === null || $value->isGreaterThan($max)) { + $max = $value; + } + } + + if ($max === null) { + throw new \InvalidArgumentException(__METHOD__ . '() expects at least one value.'); + } + + return $max; + } + + /** + * Returns the sum of the given values. + * + * When called on BigNumber, sum() accepts any supported type and returns a result whose type is the widest among + * the given values (BigInteger < BigDecimal < BigRational). + * + * When called on BigInteger, BigDecimal, or BigRational, sum() requires that all values can be converted to that + * specific subclass, and returns a result of the same type. + * + * @param BigNumber|int|float|string ...$values The values to add. All values must be convertible to the class on + * which this method is called. + * + * @throws \InvalidArgumentException If no values are given. + * @throws MathException If an argument is not valid. + * + * @pure + */ + final public static function sum(BigNumber|int|float|string ...$values) : static + { + $first = array_shift($values); + + if ($first === null) { + throw new \InvalidArgumentException(__METHOD__ . '() expects at least one value.'); + } + + $sum = static::of($first); + + foreach ($values as $value) { + $sum = self::add($sum, static::of($value)); + } + + assert($sum instanceof static); + + return $sum; + } + + /** + * Adds two BigNumber instances in the correct order to avoid a RoundingNecessaryException. + * + * @pure + */ + private static function add(BigNumber $a, BigNumber $b) : BigNumber + { + if ($a instanceof BigRational) { + return $a->plus($b); + } + + if ($b instanceof BigRational) { + return $b->plus($a); + } + + if ($a instanceof BigDecimal) { + return $a->plus($b); + } + + if ($b instanceof BigDecimal) { + return $b->plus($a); + } + + return $a->plus($b); + } + + /** + * Removes optional leading zeros and applies sign. + * + * @param string|null $sign The sign, '+' or '-', optional. Null is allowed for convenience and treated as '+'. + * @param string $number The number, validated as a string of digits. + * + * @pure + */ + private static function cleanUp(string|null $sign, string $number) : string + { + $number = \ltrim($number, '0'); + + if ($number === '') { + return '0'; + } + + return $sign === '-' ? '-' . $number : $number; + } + + /** + * Checks if this number is equal to the given one. + * + * @pure + */ + final public function isEqualTo(BigNumber|int|float|string $that) : bool + { + return $this->compareTo($that) === 0; + } + + /** + * Checks if this number is strictly lower than the given one. + * + * @pure + */ + final public function isLessThan(BigNumber|int|float|string $that) : bool + { + return $this->compareTo($that) < 0; + } + + /** + * Checks if this number is lower than or equal to the given one. + * + * @pure + */ + final public function isLessThanOrEqualTo(BigNumber|int|float|string $that) : bool + { + return $this->compareTo($that) <= 0; + } + + /** + * Checks if this number is strictly greater than the given one. + * + * @pure + */ + final public function isGreaterThan(BigNumber|int|float|string $that) : bool + { + return $this->compareTo($that) > 0; + } + + /** + * Checks if this number is greater than or equal to the given one. + * + * @pure + */ + final public function isGreaterThanOrEqualTo(BigNumber|int|float|string $that) : bool + { + return $this->compareTo($that) >= 0; + } + + /** + * Checks if this number equals zero. + * + * @pure + */ + final public function isZero() : bool + { + return $this->getSign() === 0; + } + + /** + * Checks if this number is strictly negative. + * + * @pure + */ + final public function isNegative() : bool + { + return $this->getSign() < 0; + } + + /** + * Checks if this number is negative or zero. + * + * @pure + */ + final public function isNegativeOrZero() : bool + { + return $this->getSign() <= 0; + } + + /** + * Checks if this number is strictly positive. + * + * @pure + */ + final public function isPositive() : bool + { + return $this->getSign() > 0; + } + + /** + * Checks if this number is positive or zero. + * + * @pure + */ + final public function isPositiveOrZero() : bool + { + return $this->getSign() >= 0; + } + + /** + * Returns the sign of this number. + * + * Returns -1 if the number is negative, 0 if zero, 1 if positive. + * + * @return -1|0|1 + * + * @pure + */ + abstract public function getSign() : int; + + /** + * Compares this number to the given one. + * + * Returns -1 if `$this` is lower than, 0 if equal to, 1 if greater than `$that`. + * + * @return -1|0|1 + * + * @throws MathException If the number is not valid. + * + * @pure + */ + abstract public function compareTo(BigNumber|int|float|string $that) : int; + + /** + * Converts this number to a BigInteger. + * + * @throws RoundingNecessaryException If this number cannot be converted to a BigInteger without rounding. + * + * @pure + */ + abstract public function toBigInteger() : BigInteger; + + /** + * Converts this number to a BigDecimal. + * + * @throws RoundingNecessaryException If this number cannot be converted to a BigDecimal without rounding. + * + * @pure + */ + abstract public function toBigDecimal() : BigDecimal; + + /** + * Converts this number to a BigRational. + * + * @pure + */ + abstract public function toBigRational() : BigRational; + + /** + * Converts this number to a BigDecimal with the given scale, using rounding if necessary. + * + * @param int $scale The scale of the resulting `BigDecimal`. + * @param RoundingMode $roundingMode An optional rounding mode, defaults to UNNECESSARY. + * + * @throws RoundingNecessaryException If this number cannot be converted to the given scale without rounding. + * This only applies when RoundingMode::UNNECESSARY is used. + * + * @pure + */ + abstract public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal; + + /** + * Returns the exact value of this number as a native integer. + * + * If this number cannot be converted to a native integer without losing precision, an exception is thrown. + * Note that the acceptable range for an integer depends on the platform and differs for 32-bit and 64-bit. + * + * @throws MathException If this number cannot be exactly converted to a native integer. + * + * @pure + */ + abstract public function toInt() : int; + + /** + * Returns an approximation of this number as a floating-point value. + * + * Note that this method can discard information as the precision of a floating-point value + * is inherently limited. + * + * If the number is greater than the largest representable floating point number, positive infinity is returned. + * If the number is less than the smallest representable floating point number, negative infinity is returned. + * + * @pure + */ + abstract public function toFloat() : float; + + /** + * Returns a string representation of this number. + * + * The output of this method can be parsed by the `of()` factory method; + * this will yield an object equal to this one, without any information loss. + * + * @pure + */ + abstract public function __toString() : string; + + #[Override] + final public function jsonSerialize() : string + { + return $this->__toString(); + } +} diff --git a/vendor/brick/math/src/BigRational.php b/vendor/brick/math/src/BigRational.php new file mode 100644 index 0000000..56045e5 --- /dev/null +++ b/vendor/brick/math/src/BigRational.php @@ -0,0 +1,441 @@ +isZero()) { + throw DivisionByZeroException::denominatorMustNotBeZero(); + } + + if ($denominator->isNegative()) { + $numerator = $numerator->negated(); + $denominator = $denominator->negated(); + } + } + + $this->numerator = $numerator; + $this->denominator = $denominator; + } + + #[Override] + protected static function from(BigNumber $number): static + { + return $number->toBigRational(); + } + + /** + * Creates a BigRational out of a numerator and a denominator. + * + * If the denominator is negative, the signs of both the numerator and the denominator + * will be inverted to ensure that the denominator is always positive. + * + * @param BigNumber|int|float|string $numerator The numerator. Must be convertible to a BigInteger. + * @param BigNumber|int|float|string $denominator The denominator. Must be convertible to a BigInteger. + * + * @throws NumberFormatException If an argument does not represent a valid number. + * @throws RoundingNecessaryException If an argument represents a non-integer number. + * @throws DivisionByZeroException If the denominator is zero. + * + * @pure + */ + public static function nd( + BigNumber|int|float|string $numerator, + BigNumber|int|float|string $denominator, + ) : BigRational { + $numerator = BigInteger::of($numerator); + $denominator = BigInteger::of($denominator); + + return new BigRational($numerator, $denominator, true); + } + + /** + * Returns a BigRational representing zero. + * + * @pure + */ + public static function zero() : BigRational + { + /** @var BigRational|null $zero */ + static $zero; + + if ($zero === null) { + $zero = new BigRational(BigInteger::zero(), BigInteger::one(), false); + } + + return $zero; + } + + /** + * Returns a BigRational representing one. + * + * @pure + */ + public static function one() : BigRational + { + /** @var BigRational|null $one */ + static $one; + + if ($one === null) { + $one = new BigRational(BigInteger::one(), BigInteger::one(), false); + } + + return $one; + } + + /** + * Returns a BigRational representing ten. + * + * @pure + */ + public static function ten() : BigRational + { + /** @var BigRational|null $ten */ + static $ten; + + if ($ten === null) { + $ten = new BigRational(BigInteger::ten(), BigInteger::one(), false); + } + + return $ten; + } + + /** + * @pure + */ + public function getNumerator() : BigInteger + { + return $this->numerator; + } + + /** + * @pure + */ + public function getDenominator() : BigInteger + { + return $this->denominator; + } + + /** + * Returns the quotient of the division of the numerator by the denominator. + * + * @pure + */ + public function quotient() : BigInteger + { + return $this->numerator->quotient($this->denominator); + } + + /** + * Returns the remainder of the division of the numerator by the denominator. + * + * @pure + */ + public function remainder() : BigInteger + { + return $this->numerator->remainder($this->denominator); + } + + /** + * Returns the quotient and remainder of the division of the numerator by the denominator. + * + * @return array{BigInteger, BigInteger} + * + * @pure + */ + public function quotientAndRemainder() : array + { + return $this->numerator->quotientAndRemainder($this->denominator); + } + + /** + * Returns the sum of this number and the given one. + * + * @param BigNumber|int|float|string $that The number to add. + * + * @throws MathException If the number is not valid. + * + * @pure + */ + public function plus(BigNumber|int|float|string $that) : BigRational + { + $that = BigRational::of($that); + + $numerator = $this->numerator->multipliedBy($that->denominator); + $numerator = $numerator->plus($that->numerator->multipliedBy($this->denominator)); + $denominator = $this->denominator->multipliedBy($that->denominator); + + return new BigRational($numerator, $denominator, false); + } + + /** + * Returns the difference of this number and the given one. + * + * @param BigNumber|int|float|string $that The number to subtract. + * + * @throws MathException If the number is not valid. + * + * @pure + */ + public function minus(BigNumber|int|float|string $that) : BigRational + { + $that = BigRational::of($that); + + $numerator = $this->numerator->multipliedBy($that->denominator); + $numerator = $numerator->minus($that->numerator->multipliedBy($this->denominator)); + $denominator = $this->denominator->multipliedBy($that->denominator); + + return new BigRational($numerator, $denominator, false); + } + + /** + * Returns the product of this number and the given one. + * + * @param BigNumber|int|float|string $that The multiplier. + * + * @throws MathException If the multiplier is not a valid number. + * + * @pure + */ + public function multipliedBy(BigNumber|int|float|string $that) : BigRational + { + $that = BigRational::of($that); + + $numerator = $this->numerator->multipliedBy($that->numerator); + $denominator = $this->denominator->multipliedBy($that->denominator); + + return new BigRational($numerator, $denominator, false); + } + + /** + * Returns the result of the division of this number by the given one. + * + * @param BigNumber|int|float|string $that The divisor. + * + * @throws MathException If the divisor is not a valid number, or is zero. + * + * @pure + */ + public function dividedBy(BigNumber|int|float|string $that) : BigRational + { + $that = BigRational::of($that); + + $numerator = $this->numerator->multipliedBy($that->denominator); + $denominator = $this->denominator->multipliedBy($that->numerator); + + return new BigRational($numerator, $denominator, true); + } + + /** + * Returns this number exponentiated to the given value. + * + * @throws \InvalidArgumentException If the exponent is not in the range 0 to 1,000,000. + * + * @pure + */ + public function power(int $exponent) : BigRational + { + if ($exponent === 0) { + $one = BigInteger::one(); + + return new BigRational($one, $one, false); + } + + if ($exponent === 1) { + return $this; + } + + return new BigRational( + $this->numerator->power($exponent), + $this->denominator->power($exponent), + false + ); + } + + /** + * Returns the reciprocal of this BigRational. + * + * The reciprocal has the numerator and denominator swapped. + * + * @throws DivisionByZeroException If the numerator is zero. + * + * @pure + */ + public function reciprocal() : BigRational + { + return new BigRational($this->denominator, $this->numerator, true); + } + + /** + * Returns the absolute value of this BigRational. + * + * @pure + */ + public function abs() : BigRational + { + return new BigRational($this->numerator->abs(), $this->denominator, false); + } + + /** + * Returns the negated value of this BigRational. + * + * @pure + */ + public function negated() : BigRational + { + return new BigRational($this->numerator->negated(), $this->denominator, false); + } + + /** + * Returns the simplified value of this BigRational. + * + * @pure + */ + public function simplified() : BigRational + { + $gcd = $this->numerator->gcd($this->denominator); + + $numerator = $this->numerator->quotient($gcd); + $denominator = $this->denominator->quotient($gcd); + + return new BigRational($numerator, $denominator, false); + } + + #[Override] + public function compareTo(BigNumber|int|float|string $that) : int + { + return $this->minus($that)->getSign(); + } + + #[Override] + public function getSign() : int + { + return $this->numerator->getSign(); + } + + #[Override] + public function toBigInteger() : BigInteger + { + $simplified = $this->simplified(); + + if (! $simplified->denominator->isEqualTo(1)) { + throw new RoundingNecessaryException('This rational number cannot be represented as an integer value without rounding.'); + } + + return $simplified->numerator; + } + + #[Override] + public function toBigDecimal() : BigDecimal + { + return $this->numerator->toBigDecimal()->exactlyDividedBy($this->denominator); + } + + #[Override] + public function toBigRational() : BigRational + { + return $this; + } + + #[Override] + public function toScale(int $scale, RoundingMode $roundingMode = RoundingMode::UNNECESSARY) : BigDecimal + { + return $this->numerator->toBigDecimal()->dividedBy($this->denominator, $scale, $roundingMode); + } + + #[Override] + public function toInt() : int + { + return $this->toBigInteger()->toInt(); + } + + #[Override] + public function toFloat() : float + { + $simplified = $this->simplified(); + return $simplified->numerator->toFloat() / $simplified->denominator->toFloat(); + } + + #[Override] + public function __toString() : string + { + $numerator = (string) $this->numerator; + $denominator = (string) $this->denominator; + + if ($denominator === '1') { + return $numerator; + } + + return $numerator . '/' . $denominator; + } + + /** + * This method is required for serializing the object and SHOULD NOT be accessed directly. + * + * @internal + * + * @return array{numerator: BigInteger, denominator: BigInteger} + */ + public function __serialize(): array + { + return ['numerator' => $this->numerator, 'denominator' => $this->denominator]; + } + + /** + * This method is only here to allow unserializing the object and cannot be accessed directly. + * + * @internal + * + * @param array{numerator: BigInteger, denominator: BigInteger} $data + * + * @throws \LogicException + */ + public function __unserialize(array $data): void + { + /** @phpstan-ignore isset.initializedProperty */ + if (isset($this->numerator)) { + throw new \LogicException('__unserialize() is an internal function, it must not be called directly.'); + } + + /** @phpstan-ignore deadCode.unreachable */ + $this->numerator = $data['numerator']; + $this->denominator = $data['denominator']; + } +} diff --git a/vendor/brick/math/src/Exception/DivisionByZeroException.php b/vendor/brick/math/src/Exception/DivisionByZeroException.php new file mode 100644 index 0000000..2daaf5e --- /dev/null +++ b/vendor/brick/math/src/Exception/DivisionByZeroException.php @@ -0,0 +1,35 @@ + 126) { + $char = \strtoupper(\dechex($ord)); + + if ($ord < 10) { + $char = '0' . $char; + } + } else { + $char = '"' . $char . '"'; + } + + return new self(\sprintf('Char %s is not a valid character in the given alphabet.', $char)); + } +} diff --git a/vendor/brick/math/src/Exception/RoundingNecessaryException.php b/vendor/brick/math/src/Exception/RoundingNecessaryException.php new file mode 100644 index 0000000..034a040 --- /dev/null +++ b/vendor/brick/math/src/Exception/RoundingNecessaryException.php @@ -0,0 +1,19 @@ +init($a, $b); + + if ($aNeg && ! $bNeg) { + return -1; + } + + if ($bNeg && ! $aNeg) { + return 1; + } + + $aLen = \strlen($aDig); + $bLen = \strlen($bDig); + + if ($aLen < $bLen) { + $result = -1; + } elseif ($aLen > $bLen) { + $result = 1; + } else { + $result = $aDig <=> $bDig; + } + + return $aNeg ? -$result : $result; + } + + /** + * Adds two numbers. + * + * @pure + */ + abstract public function add(string $a, string $b) : string; + + /** + * Subtracts two numbers. + * + * @pure + */ + abstract public function sub(string $a, string $b) : string; + + /** + * Multiplies two numbers. + * + * @pure + */ + abstract public function mul(string $a, string $b) : string; + + /** + * Returns the quotient of the division of two numbers. + * + * @param string $a The dividend. + * @param string $b The divisor, must not be zero. + * + * @return string The quotient. + * + * @pure + */ + abstract public function divQ(string $a, string $b) : string; + + /** + * Returns the remainder of the division of two numbers. + * + * @param string $a The dividend. + * @param string $b The divisor, must not be zero. + * + * @return string The remainder. + * + * @pure + */ + abstract public function divR(string $a, string $b) : string; + + /** + * Returns the quotient and remainder of the division of two numbers. + * + * @param string $a The dividend. + * @param string $b The divisor, must not be zero. + * + * @return array{string, string} An array containing the quotient and remainder. + * + * @pure + */ + abstract public function divQR(string $a, string $b) : array; + + /** + * Exponentiates a number. + * + * @param string $a The base number. + * @param int $e The exponent, validated as an integer between 0 and MAX_POWER. + * + * @return string The power. + * + * @pure + */ + abstract public function pow(string $a, int $e) : string; + + /** + * @param string $b The modulus; must not be zero. + * + * @pure + */ + public function mod(string $a, string $b) : string + { + return $this->divR($this->add($this->divR($a, $b), $b), $b); + } + + /** + * Returns the modular multiplicative inverse of $x modulo $m. + * + * If $x has no multiplicative inverse mod m, this method must return null. + * + * This method can be overridden by the concrete implementation if the underlying library has built-in support. + * + * @param string $m The modulus; must not be negative or zero. + * + * @pure + */ + public function modInverse(string $x, string $m) : ?string + { + if ($m === '1') { + return '0'; + } + + $modVal = $x; + + if ($x[0] === '-' || ($this->cmp($this->abs($x), $m) >= 0)) { + $modVal = $this->mod($x, $m); + } + + [$g, $x] = $this->gcdExtended($modVal, $m); + + if ($g !== '1') { + return null; + } + + return $this->mod($this->add($this->mod($x, $m), $m), $m); + } + + /** + * Raises a number into power with modulo. + * + * @param string $base The base number; must be positive or zero. + * @param string $exp The exponent; must be positive or zero. + * @param string $mod The modulus; must be strictly positive. + * + * @pure + */ + abstract public function modPow(string $base, string $exp, string $mod) : string; + + /** + * Returns the greatest common divisor of the two numbers. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for GCD calculations. + * + * @return string The GCD, always positive, or zero if both arguments are zero. + * + * @pure + */ + public function gcd(string $a, string $b) : string + { + if ($a === '0') { + return $this->abs($b); + } + + if ($b === '0') { + return $this->abs($a); + } + + return $this->gcd($b, $this->divR($a, $b)); + } + + /** + * @return array{string, string, string} GCD, X, Y + * + * @pure + */ + private function gcdExtended(string $a, string $b) : array + { + if ($a === '0') { + return [$b, '0', '1']; + } + + [$gcd, $x1, $y1] = $this->gcdExtended($this->mod($b, $a), $a); + + $x = $this->sub($y1, $this->mul($this->divQ($b, $a), $x1)); + $y = $x1; + + return [$gcd, $x, $y]; + } + + /** + * Returns the square root of the given number, rounded down. + * + * The result is the largest x such that x² ≤ n. + * The input MUST NOT be negative. + * + * @pure + */ + abstract public function sqrt(string $n) : string; + + /** + * Converts a number from an arbitrary base. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for base conversion. + * + * @param string $number The number, positive or zero, non-empty, case-insensitively validated for the given base. + * @param int $base The base of the number, validated from 2 to 36. + * + * @return string The converted number, following the Calculator conventions. + * + * @pure + */ + public function fromBase(string $number, int $base) : string + { + return $this->fromArbitraryBase(\strtolower($number), self::ALPHABET, $base); + } + + /** + * Converts a number to an arbitrary base. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for base conversion. + * + * @param string $number The number to convert, following the Calculator conventions. + * @param int $base The base to convert to, validated from 2 to 36. + * + * @return string The converted number, lowercase. + * + * @pure + */ + public function toBase(string $number, int $base) : string + { + $negative = ($number[0] === '-'); + + if ($negative) { + $number = \substr($number, 1); + } + + $number = $this->toArbitraryBase($number, self::ALPHABET, $base); + + if ($negative) { + return '-' . $number; + } + + return $number; + } + + /** + * Converts a non-negative number in an arbitrary base using a custom alphabet, to base 10. + * + * @param string $number The number to convert, validated as a non-empty string, + * containing only chars in the given alphabet/base. + * @param string $alphabet The alphabet that contains every digit, validated as 2 chars minimum. + * @param int $base The base of the number, validated from 2 to alphabet length. + * + * @return string The number in base 10, following the Calculator conventions. + * + * @pure + */ + final public function fromArbitraryBase(string $number, string $alphabet, int $base) : string + { + // remove leading "zeros" + $number = \ltrim($number, $alphabet[0]); + + if ($number === '') { + return '0'; + } + + // optimize for "one" + if ($number === $alphabet[1]) { + return '1'; + } + + $result = '0'; + $power = '1'; + + $base = (string) $base; + + for ($i = \strlen($number) - 1; $i >= 0; $i--) { + $index = \strpos($alphabet, $number[$i]); + + if ($index !== 0) { + $result = $this->add($result, ($index === 1) + ? $power + : $this->mul($power, (string) $index) + ); + } + + if ($i !== 0) { + $power = $this->mul($power, $base); + } + } + + return $result; + } + + /** + * Converts a non-negative number to an arbitrary base using a custom alphabet. + * + * @param string $number The number to convert, positive or zero, following the Calculator conventions. + * @param string $alphabet The alphabet that contains every digit, validated as 2 chars minimum. + * @param int $base The base to convert to, validated from 2 to alphabet length. + * + * @return string The converted number in the given alphabet. + * + * @pure + */ + final public function toArbitraryBase(string $number, string $alphabet, int $base) : string + { + if ($number === '0') { + return $alphabet[0]; + } + + $base = (string) $base; + $result = ''; + + while ($number !== '0') { + [$number, $remainder] = $this->divQR($number, $base); + $remainder = (int) $remainder; + + $result .= $alphabet[$remainder]; + } + + return \strrev($result); + } + + /** + * Performs a rounded division. + * + * Rounding is performed when the remainder of the division is not zero. + * + * @param string $a The dividend. + * @param string $b The divisor, must not be zero. + * @param RoundingMode $roundingMode The rounding mode. + * + * @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is provided but rounding is necessary. + * + * @pure + */ + final public function divRound(string $a, string $b, RoundingMode $roundingMode) : string + { + [$quotient, $remainder] = $this->divQR($a, $b); + + $hasDiscardedFraction = ($remainder !== '0'); + $isPositiveOrZero = ($a[0] === '-') === ($b[0] === '-'); + + $discardedFractionSign = function() use ($remainder, $b) : int { + $r = $this->abs($this->mul($remainder, '2')); + $b = $this->abs($b); + + return $this->cmp($r, $b); + }; + + $increment = false; + + switch ($roundingMode) { + case RoundingMode::UNNECESSARY: + if ($hasDiscardedFraction) { + throw RoundingNecessaryException::roundingNecessary(); + } + break; + + case RoundingMode::UP: + $increment = $hasDiscardedFraction; + break; + + case RoundingMode::DOWN: + break; + + case RoundingMode::CEILING: + $increment = $hasDiscardedFraction && $isPositiveOrZero; + break; + + case RoundingMode::FLOOR: + $increment = $hasDiscardedFraction && ! $isPositiveOrZero; + break; + + case RoundingMode::HALF_UP: + $increment = $discardedFractionSign() >= 0; + break; + + case RoundingMode::HALF_DOWN: + $increment = $discardedFractionSign() > 0; + break; + + case RoundingMode::HALF_CEILING: + $increment = $isPositiveOrZero ? $discardedFractionSign() >= 0 : $discardedFractionSign() > 0; + break; + + case RoundingMode::HALF_FLOOR: + $increment = $isPositiveOrZero ? $discardedFractionSign() > 0 : $discardedFractionSign() >= 0; + break; + + case RoundingMode::HALF_EVEN: + $lastDigit = (int) $quotient[-1]; + $lastDigitIsEven = ($lastDigit % 2 === 0); + $increment = $lastDigitIsEven ? $discardedFractionSign() > 0 : $discardedFractionSign() >= 0; + break; + } + + if ($increment) { + return $this->add($quotient, $isPositiveOrZero ? '1' : '-1'); + } + + return $quotient; + } + + /** + * Calculates bitwise AND of two numbers. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for bitwise operations. + * + * @pure + */ + public function and(string $a, string $b) : string + { + return $this->bitwise('and', $a, $b); + } + + /** + * Calculates bitwise OR of two numbers. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for bitwise operations. + * + * @pure + */ + public function or(string $a, string $b) : string + { + return $this->bitwise('or', $a, $b); + } + + /** + * Calculates bitwise XOR of two numbers. + * + * This method can be overridden by the concrete implementation if the underlying library + * has built-in support for bitwise operations. + * + * @pure + */ + public function xor(string $a, string $b) : string + { + return $this->bitwise('xor', $a, $b); + } + + /** + * Performs a bitwise operation on a decimal number. + * + * @param 'and'|'or'|'xor' $operator The operator to use. + * @param string $a The left operand. + * @param string $b The right operand. + * + * @pure + */ + private function bitwise(string $operator, string $a, string $b) : string + { + [$aNeg, $bNeg, $aDig, $bDig] = $this->init($a, $b); + + $aBin = $this->toBinary($aDig); + $bBin = $this->toBinary($bDig); + + $aLen = \strlen($aBin); + $bLen = \strlen($bBin); + + if ($aLen > $bLen) { + $bBin = \str_repeat("\x00", $aLen - $bLen) . $bBin; + } elseif ($bLen > $aLen) { + $aBin = \str_repeat("\x00", $bLen - $aLen) . $aBin; + } + + if ($aNeg) { + $aBin = $this->twosComplement($aBin); + } + if ($bNeg) { + $bBin = $this->twosComplement($bBin); + } + + $value = match ($operator) { + 'and' => $aBin & $bBin, + 'or' => $aBin | $bBin, + 'xor' => $aBin ^ $bBin, + }; + + $negative = match ($operator) { + 'and' => $aNeg and $bNeg, + 'or' => $aNeg or $bNeg, + 'xor' => $aNeg xor $bNeg, + }; + + if ($negative) { + $value = $this->twosComplement($value); + } + + $result = $this->toDecimal($value); + + return $negative ? $this->neg($result) : $result; + } + + /** + * @param string $number A positive, binary number. + * + * @pure + */ + private function twosComplement(string $number) : string + { + $xor = \str_repeat("\xff", \strlen($number)); + + $number ^= $xor; + + for ($i = \strlen($number) - 1; $i >= 0; $i--) { + $byte = \ord($number[$i]); + + if (++$byte !== 256) { + $number[$i] = \chr($byte); + break; + } + + $number[$i] = "\x00"; + + if ($i === 0) { + $number = "\x01" . $number; + } + } + + return $number; + } + + /** + * Converts a decimal number to a binary string. + * + * @param string $number The number to convert, positive or zero, only digits. + * + * @pure + */ + private function toBinary(string $number) : string + { + $result = ''; + + while ($number !== '0') { + [$number, $remainder] = $this->divQR($number, '256'); + $result .= \chr((int) $remainder); + } + + return \strrev($result); + } + + /** + * Returns the positive decimal representation of a binary number. + * + * @param string $bytes The bytes representing the number. + * + * @pure + */ + private function toDecimal(string $bytes) : string + { + $result = '0'; + $power = '1'; + + for ($i = \strlen($bytes) - 1; $i >= 0; $i--) { + $index = \ord($bytes[$i]); + + if ($index !== 0) { + $result = $this->add($result, ($index === 1) + ? $power + : $this->mul($power, (string) $index) + ); + } + + if ($i !== 0) { + $power = $this->mul($power, '256'); + } + } + + return $result; + } +} diff --git a/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php new file mode 100644 index 0000000..5ba961e --- /dev/null +++ b/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php @@ -0,0 +1,73 @@ +maxDigits = match (PHP_INT_SIZE) { + 4 => 9, + 8 => 18, + }; + } + + #[Override] + public function add(string $a, string $b) : string + { + /** + * @var numeric-string $a + * @var numeric-string $b + */ + $result = $a + $b; + + if (is_int($result)) { + return (string) $result; + } + + if ($a === '0') { + return $b; + } + + if ($b === '0') { + return $a; + } + + [$aNeg, $bNeg, $aDig, $bDig] = $this->init($a, $b); + + $result = $aNeg === $bNeg ? $this->doAdd($aDig, $bDig) : $this->doSub($aDig, $bDig); + + if ($aNeg) { + $result = $this->neg($result); + } + + return $result; + } + + #[Override] + public function sub(string $a, string $b) : string + { + return $this->add($a, $this->neg($b)); + } + + #[Override] + public function mul(string $a, string $b) : string + { + /** + * @var numeric-string $a + * @var numeric-string $b + */ + $result = $a * $b; + + if (is_int($result)) { + return (string) $result; + } + + if ($a === '0' || $b === '0') { + return '0'; + } + + if ($a === '1') { + return $b; + } + + if ($b === '1') { + return $a; + } + + if ($a === '-1') { + return $this->neg($b); + } + + if ($b === '-1') { + return $this->neg($a); + } + + [$aNeg, $bNeg, $aDig, $bDig] = $this->init($a, $b); + + $result = $this->doMul($aDig, $bDig); + + if ($aNeg !== $bNeg) { + $result = $this->neg($result); + } + + return $result; + } + + #[Override] + public function divQ(string $a, string $b) : string + { + return $this->divQR($a, $b)[0]; + } + + #[Override] + public function divR(string $a, string $b): string + { + return $this->divQR($a, $b)[1]; + } + + #[Override] + public function divQR(string $a, string $b) : array + { + if ($a === '0') { + return ['0', '0']; + } + + if ($a === $b) { + return ['1', '0']; + } + + if ($b === '1') { + return [$a, '0']; + } + + if ($b === '-1') { + return [$this->neg($a), '0']; + } + + /** @var numeric-string $a */ + $na = $a * 1; // cast to number + + if (is_int($na)) { + /** @var numeric-string $b */ + $nb = $b * 1; + + if (is_int($nb)) { + // the only division that may overflow is PHP_INT_MIN / -1, + // which cannot happen here as we've already handled a divisor of -1 above. + $q = intdiv($na, $nb); + $r = $na % $nb; + + return [ + (string) $q, + (string) $r + ]; + } + } + + [$aNeg, $bNeg, $aDig, $bDig] = $this->init($a, $b); + + [$q, $r] = $this->doDiv($aDig, $bDig); + + if ($aNeg !== $bNeg) { + $q = $this->neg($q); + } + + if ($aNeg) { + $r = $this->neg($r); + } + + return [$q, $r]; + } + + #[Override] + public function pow(string $a, int $e) : string + { + if ($e === 0) { + return '1'; + } + + if ($e === 1) { + return $a; + } + + $odd = $e % 2; + $e -= $odd; + + $aa = $this->mul($a, $a); + + $result = $this->pow($aa, $e / 2); + + if ($odd === 1) { + $result = $this->mul($result, $a); + } + + return $result; + } + + /** + * Algorithm from: https://www.geeksforgeeks.org/modular-exponentiation-power-in-modular-arithmetic/ + */ + #[Override] + public function modPow(string $base, string $exp, string $mod) : string + { + // special case: the algorithm below fails with 0 power 0 mod 1 (returns 1 instead of 0) + if ($base === '0' && $exp === '0' && $mod === '1') { + return '0'; + } + + // special case: the algorithm below fails with power 0 mod 1 (returns 1 instead of 0) + if ($exp === '0' && $mod === '1') { + return '0'; + } + + $x = $base; + + $res = '1'; + + // numbers are positive, so we can use remainder instead of modulo + $x = $this->divR($x, $mod); + + while ($exp !== '0') { + if (in_array($exp[-1], ['1', '3', '5', '7', '9'])) { // odd + $res = $this->divR($this->mul($res, $x), $mod); + } + + $exp = $this->divQ($exp, '2'); + $x = $this->divR($this->mul($x, $x), $mod); + } + + return $res; + } + + /** + * Adapted from https://cp-algorithms.com/num_methods/roots_newton.html + */ + #[Override] + public function sqrt(string $n) : string + { + if ($n === '0') { + return '0'; + } + + // initial approximation + $x = \str_repeat('9', \intdiv(\strlen($n), 2) ?: 1); + + $decreased = false; + + for (;;) { + $nx = $this->divQ($this->add($x, $this->divQ($n, $x)), '2'); + + if ($x === $nx || $this->cmp($nx, $x) > 0 && $decreased) { + break; + } + + $decreased = $this->cmp($nx, $x) < 0; + $x = $nx; + } + + return $x; + } + + /** + * Performs the addition of two non-signed large integers. + * + * @pure + */ + private function doAdd(string $a, string $b) : string + { + [$a, $b, $length] = $this->pad($a, $b); + + $carry = 0; + $result = ''; + + for ($i = $length - $this->maxDigits;; $i -= $this->maxDigits) { + $blockLength = $this->maxDigits; + + if ($i < 0) { + $blockLength += $i; + $i = 0; + } + + /** @var numeric-string $blockA */ + $blockA = \substr($a, $i, $blockLength); + + /** @var numeric-string $blockB */ + $blockB = \substr($b, $i, $blockLength); + + $sum = (string) ($blockA + $blockB + $carry); + $sumLength = \strlen($sum); + + if ($sumLength > $blockLength) { + $sum = \substr($sum, 1); + $carry = 1; + } else { + if ($sumLength < $blockLength) { + $sum = \str_repeat('0', $blockLength - $sumLength) . $sum; + } + $carry = 0; + } + + $result = $sum . $result; + + if ($i === 0) { + break; + } + } + + if ($carry === 1) { + $result = '1' . $result; + } + + return $result; + } + + /** + * Performs the subtraction of two non-signed large integers. + * + * @pure + */ + private function doSub(string $a, string $b) : string + { + if ($a === $b) { + return '0'; + } + + // Ensure that we always subtract to a positive result: biggest minus smallest. + $cmp = $this->doCmp($a, $b); + + $invert = ($cmp === -1); + + if ($invert) { + $c = $a; + $a = $b; + $b = $c; + } + + [$a, $b, $length] = $this->pad($a, $b); + + $carry = 0; + $result = ''; + + $complement = 10 ** $this->maxDigits; + + for ($i = $length - $this->maxDigits;; $i -= $this->maxDigits) { + $blockLength = $this->maxDigits; + + if ($i < 0) { + $blockLength += $i; + $i = 0; + } + + /** @var numeric-string $blockA */ + $blockA = \substr($a, $i, $blockLength); + + /** @var numeric-string $blockB */ + $blockB = \substr($b, $i, $blockLength); + + $sum = $blockA - $blockB - $carry; + + if ($sum < 0) { + $sum += $complement; + $carry = 1; + } else { + $carry = 0; + } + + $sum = (string) $sum; + $sumLength = \strlen($sum); + + if ($sumLength < $blockLength) { + $sum = \str_repeat('0', $blockLength - $sumLength) . $sum; + } + + $result = $sum . $result; + + if ($i === 0) { + break; + } + } + + // Carry cannot be 1 when the loop ends, as a > b + assert($carry === 0); + + $result = \ltrim($result, '0'); + + if ($invert) { + $result = $this->neg($result); + } + + return $result; + } + + /** + * Performs the multiplication of two non-signed large integers. + * + * @pure + */ + private function doMul(string $a, string $b) : string + { + $x = \strlen($a); + $y = \strlen($b); + + $maxDigits = \intdiv($this->maxDigits, 2); + $complement = 10 ** $maxDigits; + + $result = '0'; + + for ($i = $x - $maxDigits;; $i -= $maxDigits) { + $blockALength = $maxDigits; + + if ($i < 0) { + $blockALength += $i; + $i = 0; + } + + $blockA = (int) \substr($a, $i, $blockALength); + + $line = ''; + $carry = 0; + + for ($j = $y - $maxDigits;; $j -= $maxDigits) { + $blockBLength = $maxDigits; + + if ($j < 0) { + $blockBLength += $j; + $j = 0; + } + + $blockB = (int) \substr($b, $j, $blockBLength); + + $mul = $blockA * $blockB + $carry; + $value = $mul % $complement; + $carry = ($mul - $value) / $complement; + + $value = (string) $value; + $value = \str_pad($value, $maxDigits, '0', STR_PAD_LEFT); + + $line = $value . $line; + + if ($j === 0) { + break; + } + } + + if ($carry !== 0) { + $line = $carry . $line; + } + + $line = \ltrim($line, '0'); + + if ($line !== '') { + $line .= \str_repeat('0', $x - $blockALength - $i); + $result = $this->add($result, $line); + } + + if ($i === 0) { + break; + } + } + + return $result; + } + + /** + * Performs the division of two non-signed large integers. + * + * @return string[] The quotient and remainder. + * + * @pure + */ + private function doDiv(string $a, string $b) : array + { + $cmp = $this->doCmp($a, $b); + + if ($cmp === -1) { + return ['0', $a]; + } + + $x = \strlen($a); + $y = \strlen($b); + + // we now know that a >= b && x >= y + + $q = '0'; // quotient + $r = $a; // remainder + $z = $y; // focus length, always $y or $y+1 + + /** @var numeric-string $b */ + $nb = $b * 1; // cast to number + // performance optimization in cases where the remainder will never cause int overflow + if (is_int(($nb - 1) * 10 + 9)) { + $r = (int) \substr($a, 0, $z - 1); + + for ($i = $z - 1; $i < $x; $i++) { + $n = $r * 10 + (int) $a[$i]; + /** @var int $nb */ + $q .= \intdiv($n, $nb); + $r = $n % $nb; + } + + return [\ltrim($q, '0') ?: '0', (string) $r]; + } + + for (;;) { + $focus = \substr($a, 0, $z); + + $cmp = $this->doCmp($focus, $b); + + if ($cmp === -1) { + if ($z === $x) { // remainder < dividend + break; + } + + $z++; + } + + $zeros = \str_repeat('0', $x - $z); + + $q = $this->add($q, '1' . $zeros); + $a = $this->sub($a, $b . $zeros); + + $r = $a; + + if ($r === '0') { // remainder == 0 + break; + } + + $x = \strlen($a); + + if ($x < $y) { // remainder < dividend + break; + } + + $z = $y; + } + + return [$q, $r]; + } + + /** + * Compares two non-signed large numbers. + * + * @return -1|0|1 + * + * @pure + */ + private function doCmp(string $a, string $b) : int + { + $x = \strlen($a); + $y = \strlen($b); + + $cmp = $x <=> $y; + + if ($cmp !== 0) { + return $cmp; + } + + return \strcmp($a, $b) <=> 0; // enforce -1|0|1 + } + + /** + * Pads the left of one of the given numbers with zeros if necessary to make both numbers the same length. + * + * The numbers must only consist of digits, without leading minus sign. + * + * @return array{string, string, int} + * + * @pure + */ + private function pad(string $a, string $b) : array + { + $x = \strlen($a); + $y = \strlen($b); + + if ($x > $y) { + $b = \str_repeat('0', $x - $y) . $b; + + return [$a, $b, $x]; + } + + if ($x < $y) { + $a = \str_repeat('0', $y - $x) . $a; + + return [$a, $b, $y]; + } + + return [$a, $b, $x]; + } +} diff --git a/vendor/brick/math/src/Internal/CalculatorRegistry.php b/vendor/brick/math/src/Internal/CalculatorRegistry.php new file mode 100644 index 0000000..394fae6 --- /dev/null +++ b/vendor/brick/math/src/Internal/CalculatorRegistry.php @@ -0,0 +1,73 @@ += 0.5; otherwise, behaves as for DOWN. + * Note that this is the rounding mode commonly taught at school. + */ + case HALF_UP; + + /** + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round down. + * + * Behaves as for UP if the discarded fraction is > 0.5; otherwise, behaves as for DOWN. + */ + case HALF_DOWN; + + /** + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards positive infinity. + * + * If the result is positive, behaves as for HALF_UP; if negative, behaves as for HALF_DOWN. + */ + case HALF_CEILING; + + /** + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards negative infinity. + * + * If the result is positive, behaves as for HALF_DOWN; if negative, behaves as for HALF_UP. + */ + case HALF_FLOOR; + + /** + * Rounds towards the "nearest neighbor" unless both neighbors are equidistant, in which case rounds towards the even neighbor. + * + * Behaves as for HALF_UP if the digit to the left of the discarded fraction is odd; + * behaves as for HALF_DOWN if it's even. + * + * Note that this is the rounding mode that statistically minimizes + * cumulative error when applied repeatedly over a sequence of calculations. + * It is sometimes known as "Banker's rounding", and is chiefly used in the USA. + */ + case HALF_EVEN; +} diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php new file mode 100644 index 0000000..7824d8f --- /dev/null +++ b/vendor/composer/ClassLoader.php @@ -0,0 +1,579 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..2052022 --- /dev/null +++ b/vendor/composer/InstalledVersions.php @@ -0,0 +1,396 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to + * @internal + */ + private static $selfDir = null; + + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool + */ + private static $installedIsLocalDir; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + + // when using reload, we disable the duplicate protection to ensure that self::$installed data is + // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, + // so we have to assume it does not, and that may result in duplicate data being returned when listing + // all installed packages for example + self::$installedIsLocalDir = false; + } + + /** + * @return string + */ + private static function getSelfDir() + { + if (self::$selfDir === null) { + self::$selfDir = strtr(__DIR__, '\\', '/'); + } + + return self::$selfDir; + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + $copiedLocalDir = false; + + if (self::$canGetVendors) { + $selfDir = self::getSelfDir(); + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + $vendorDir = strtr($vendorDir, '\\', '/'); + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + self::$installedByVendor[$vendorDir] = $required; + $installed[] = $required; + if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { + self::$installed = $required; + self::$installedIsLocalDir = true; + } + } + if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { + $copiedLocalDir = true; + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array() && !$copiedLocalDir) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, 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 +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/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..c8f885c --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,16 @@ + $vendorDir . '/composer/InstalledVersions.php', + 'GPBMetadata\\GrpcGcp' => $vendorDir . '/google/grpc-gcp/src/generated/GPBMetadata/GrpcGcp.php', + 'Grpc\\Gcp\\AffinityConfig' => $vendorDir . '/google/grpc-gcp/src/generated/Grpc/Gcp/AffinityConfig.php', + 'Grpc\\Gcp\\AffinityConfig_Command' => $vendorDir . '/google/grpc-gcp/src/generated/Grpc/Gcp/AffinityConfig_Command.php', + 'Grpc\\Gcp\\ApiConfig' => $vendorDir . '/google/grpc-gcp/src/generated/Grpc/Gcp/ApiConfig.php', + 'Grpc\\Gcp\\ChannelPoolConfig' => $vendorDir . '/google/grpc-gcp/src/generated/Grpc/Gcp/ChannelPoolConfig.php', + 'Grpc\\Gcp\\MethodConfig' => $vendorDir . '/google/grpc-gcp/src/generated/Grpc/Gcp/MethodConfig.php', +); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php new file mode 100644 index 0000000..e0dff4e --- /dev/null +++ b/vendor/composer/autoload_files.php @@ -0,0 +1,13 @@ + $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', + '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', + '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', + 'e39a8b23c42d4e1452234d762b03835a' => $vendorDir . '/ramsey/uuid/src/functions.php', +); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..15a2ff3 --- /dev/null +++ b/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/ramsey/uuid/src'), + 'Ramsey\\Collection\\' => array($vendorDir . '/ramsey/collection/src'), + 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'), + 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'), + 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'), + 'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'), + 'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'), + 'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'), + 'Grpc\\Gcp\\' => array($vendorDir . '/google/grpc-gcp/src'), + 'Grpc\\' => array($vendorDir . '/grpc/grpc/src/lib'), + 'Google\\Type\\' => array($vendorDir . '/google/common-protos/src/Type'), + 'Google\\Rpc\\' => array($vendorDir . '/google/common-protos/src/Rpc'), + 'Google\\Protobuf\\' => array($vendorDir . '/google/protobuf/src/Google/Protobuf'), + 'Google\\LongRunning\\' => array($vendorDir . '/google/longrunning/src/LongRunning'), + 'Google\\Iam\\' => array($vendorDir . '/google/common-protos/src/Iam'), + 'Google\\Cloud\\Dialogflow\\' => array($vendorDir . '/google/cloud-dialogflow/src'), + 'Google\\Cloud\\' => array($vendorDir . '/google/common-protos/src/Cloud'), + 'Google\\Auth\\' => array($vendorDir . '/google/auth/src'), + 'Google\\Api\\' => array($vendorDir . '/google/common-protos/src/Api'), + 'Google\\ApiCore\\LongRunning\\' => array($vendorDir . '/google/longrunning/src/ApiCore/LongRunning'), + 'Google\\ApiCore\\' => array($vendorDir . '/google/gax/src'), + 'GPBMetadata\\Google\\Type\\' => array($vendorDir . '/google/common-protos/metadata/Type'), + 'GPBMetadata\\Google\\Rpc\\' => array($vendorDir . '/google/common-protos/metadata/Rpc'), + 'GPBMetadata\\Google\\Protobuf\\' => array($vendorDir . '/google/protobuf/src/GPBMetadata/Google/Protobuf'), + 'GPBMetadata\\Google\\Longrunning\\' => array($vendorDir . '/google/longrunning/metadata/Longrunning'), + 'GPBMetadata\\Google\\Logging\\' => array($vendorDir . '/google/common-protos/metadata/Logging'), + 'GPBMetadata\\Google\\Iam\\' => array($vendorDir . '/google/common-protos/metadata/Iam'), + 'GPBMetadata\\Google\\Cloud\\Dialogflow\\' => array($vendorDir . '/google/cloud-dialogflow/metadata'), + 'GPBMetadata\\Google\\Cloud\\' => array($vendorDir . '/google/common-protos/metadata/Cloud'), + 'GPBMetadata\\Google\\Api\\' => array($vendorDir . '/google/common-protos/metadata/Api'), + 'GPBMetadata\\ApiCore\\' => array($vendorDir . '/google/gax/metadata/ApiCore'), + 'Firebase\\JWT\\' => array($vendorDir . '/firebase/php-jwt/src'), + 'Brick\\Math\\' => array($vendorDir . '/brick/math/src'), +); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php new file mode 100644 index 0000000..0655b22 --- /dev/null +++ b/vendor/composer/autoload_real.php @@ -0,0 +1,50 @@ +register(true); + + $filesToLoad = \Composer\Autoload\ComposerStaticInit5835386f60e88a2d37220bdb9cc5dd48::$files; + $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } + }, null, null); + foreach ($filesToLoad as $fileIdentifier => $file) { + $requireFile($fileIdentifier, $file); + } + + return $loader; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..6d8cf64 --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,227 @@ + __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', + '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', + '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', + 'e39a8b23c42d4e1452234d762b03835a' => __DIR__ . '/..' . '/ramsey/uuid/src/functions.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'R' => + array ( + 'Ramsey\\Uuid\\' => 12, + 'Ramsey\\Collection\\' => 18, + ), + 'P' => + array ( + 'Psr\\Log\\' => 8, + 'Psr\\Http\\Message\\' => 17, + 'Psr\\Http\\Client\\' => 16, + 'Psr\\Cache\\' => 10, + ), + 'G' => + array ( + 'GuzzleHttp\\Psr7\\' => 16, + 'GuzzleHttp\\Promise\\' => 19, + 'GuzzleHttp\\' => 11, + 'Grpc\\Gcp\\' => 9, + 'Grpc\\' => 5, + 'Google\\Type\\' => 12, + 'Google\\Rpc\\' => 11, + 'Google\\Protobuf\\' => 16, + 'Google\\LongRunning\\' => 19, + 'Google\\Iam\\' => 11, + 'Google\\Cloud\\Dialogflow\\' => 24, + 'Google\\Cloud\\' => 13, + 'Google\\Auth\\' => 12, + 'Google\\Api\\' => 11, + 'Google\\ApiCore\\LongRunning\\' => 27, + 'Google\\ApiCore\\' => 15, + 'GPBMetadata\\Google\\Type\\' => 24, + 'GPBMetadata\\Google\\Rpc\\' => 23, + 'GPBMetadata\\Google\\Protobuf\\' => 28, + 'GPBMetadata\\Google\\Longrunning\\' => 31, + 'GPBMetadata\\Google\\Logging\\' => 27, + 'GPBMetadata\\Google\\Iam\\' => 23, + 'GPBMetadata\\Google\\Cloud\\Dialogflow\\' => 36, + 'GPBMetadata\\Google\\Cloud\\' => 25, + 'GPBMetadata\\Google\\Api\\' => 23, + 'GPBMetadata\\ApiCore\\' => 20, + ), + 'F' => + array ( + 'Firebase\\JWT\\' => 13, + ), + 'B' => + array ( + 'Brick\\Math\\' => 11, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Ramsey\\Uuid\\' => + array ( + 0 => __DIR__ . '/..' . '/ramsey/uuid/src', + ), + 'Ramsey\\Collection\\' => + array ( + 0 => __DIR__ . '/..' . '/ramsey/collection/src', + ), + 'Psr\\Log\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/log/src', + ), + 'Psr\\Http\\Message\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-factory/src', + 1 => __DIR__ . '/..' . '/psr/http-message/src', + ), + 'Psr\\Http\\Client\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-client/src', + ), + 'Psr\\Cache\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/cache/src', + ), + 'GuzzleHttp\\Psr7\\' => + array ( + 0 => __DIR__ . '/..' . '/guzzlehttp/psr7/src', + ), + 'GuzzleHttp\\Promise\\' => + array ( + 0 => __DIR__ . '/..' . '/guzzlehttp/promises/src', + ), + 'GuzzleHttp\\' => + array ( + 0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src', + ), + 'Grpc\\Gcp\\' => + array ( + 0 => __DIR__ . '/..' . '/google/grpc-gcp/src', + ), + 'Grpc\\' => + array ( + 0 => __DIR__ . '/..' . '/grpc/grpc/src/lib', + ), + 'Google\\Type\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/src/Type', + ), + 'Google\\Rpc\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/src/Rpc', + ), + 'Google\\Protobuf\\' => + array ( + 0 => __DIR__ . '/..' . '/google/protobuf/src/Google/Protobuf', + ), + 'Google\\LongRunning\\' => + array ( + 0 => __DIR__ . '/..' . '/google/longrunning/src/LongRunning', + ), + 'Google\\Iam\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/src/Iam', + ), + 'Google\\Cloud\\Dialogflow\\' => + array ( + 0 => __DIR__ . '/..' . '/google/cloud-dialogflow/src', + ), + 'Google\\Cloud\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/src/Cloud', + ), + 'Google\\Auth\\' => + array ( + 0 => __DIR__ . '/..' . '/google/auth/src', + ), + 'Google\\Api\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/src/Api', + ), + 'Google\\ApiCore\\LongRunning\\' => + array ( + 0 => __DIR__ . '/..' . '/google/longrunning/src/ApiCore/LongRunning', + ), + 'Google\\ApiCore\\' => + array ( + 0 => __DIR__ . '/..' . '/google/gax/src', + ), + 'GPBMetadata\\Google\\Type\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/metadata/Type', + ), + 'GPBMetadata\\Google\\Rpc\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/metadata/Rpc', + ), + 'GPBMetadata\\Google\\Protobuf\\' => + array ( + 0 => __DIR__ . '/..' . '/google/protobuf/src/GPBMetadata/Google/Protobuf', + ), + 'GPBMetadata\\Google\\Longrunning\\' => + array ( + 0 => __DIR__ . '/..' . '/google/longrunning/metadata/Longrunning', + ), + 'GPBMetadata\\Google\\Logging\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/metadata/Logging', + ), + 'GPBMetadata\\Google\\Iam\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/metadata/Iam', + ), + 'GPBMetadata\\Google\\Cloud\\Dialogflow\\' => + array ( + 0 => __DIR__ . '/..' . '/google/cloud-dialogflow/metadata', + ), + 'GPBMetadata\\Google\\Cloud\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/metadata/Cloud', + ), + 'GPBMetadata\\Google\\Api\\' => + array ( + 0 => __DIR__ . '/..' . '/google/common-protos/metadata/Api', + ), + 'GPBMetadata\\ApiCore\\' => + array ( + 0 => __DIR__ . '/..' . '/google/gax/metadata/ApiCore', + ), + 'Firebase\\JWT\\' => + array ( + 0 => __DIR__ . '/..' . '/firebase/php-jwt/src', + ), + 'Brick\\Math\\' => + array ( + 0 => __DIR__ . '/..' . '/brick/math/src', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'GPBMetadata\\GrpcGcp' => __DIR__ . '/..' . '/google/grpc-gcp/src/generated/GPBMetadata/GrpcGcp.php', + 'Grpc\\Gcp\\AffinityConfig' => __DIR__ . '/..' . '/google/grpc-gcp/src/generated/Grpc/Gcp/AffinityConfig.php', + 'Grpc\\Gcp\\AffinityConfig_Command' => __DIR__ . '/..' . '/google/grpc-gcp/src/generated/Grpc/Gcp/AffinityConfig_Command.php', + 'Grpc\\Gcp\\ApiConfig' => __DIR__ . '/..' . '/google/grpc-gcp/src/generated/Grpc/Gcp/ApiConfig.php', + 'Grpc\\Gcp\\ChannelPoolConfig' => __DIR__ . '/..' . '/google/grpc-gcp/src/generated/Grpc/Gcp/ChannelPoolConfig.php', + 'Grpc\\Gcp\\MethodConfig' => __DIR__ . '/..' . '/google/grpc-gcp/src/generated/Grpc/Gcp/MethodConfig.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit5835386f60e88a2d37220bdb9cc5dd48::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit5835386f60e88a2d37220bdb9cc5dd48::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit5835386f60e88a2d37220bdb9cc5dd48::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json new file mode 100644 index 0000000..e1c8db7 --- /dev/null +++ b/vendor/composer/installed.json @@ -0,0 +1,1448 @@ +{ + "packages": [ + { + "name": "brick/math", + "version": "0.14.0", + "version_normalized": "0.14.0.0", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "shasum": "" + }, + "require": { + "php": "^8.2" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" + }, + "time": "2025-08-29T12:40:03+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.14.0" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "install-path": "../brick/math" + }, + { + "name": "firebase/php-jwt", + "version": "v6.11.1", + "version_normalized": "6.11.1.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d1e91ecf8c598d073d0995afa8cd5c75c6e19e66", + "reference": "d1e91ecf8c598d073d0995afa8cd5c75c6e19e66", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^7.4", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psr/cache": "^2.0||^3.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-sodium": "Support EdDSA (Ed25519) signatures", + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "time": "2025-04-09T20:32:01+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.11.1" + }, + "install-path": "../firebase/php-jwt" + }, + { + "name": "google/auth", + "version": "v1.48.1", + "version_normalized": "1.48.1.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-auth-library-php.git", + "reference": "023f41a2c80fb98a493dfb9dffcab643481a7ab0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/023f41a2c80fb98a493dfb9dffcab643481a7ab0", + "reference": "023f41a2c80fb98a493dfb9dffcab643481a7ab0", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "^6.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.4.5", + "php": "^8.1", + "psr/cache": "^2.0||^3.0", + "psr/http-message": "^1.1||^2.0", + "psr/log": "^3.0" + }, + "require-dev": { + "guzzlehttp/promises": "^2.0", + "kelvinmo/simplejwt": "0.7.1", + "phpseclib/phpseclib": "^3.0.35", + "phpspec/prophecy-phpunit": "^2.1", + "phpunit/phpunit": "^9.6", + "sebastian/comparator": ">=1.2.3", + "squizlabs/php_codesniffer": "^4.0", + "symfony/process": "^6.0||^7.0", + "webmozart/assert": "^1.11" + }, + "suggest": { + "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." + }, + "time": "2025-09-30T04:22:33+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\Auth\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Auth Library for PHP", + "homepage": "https://github.com/google/google-auth-library-php", + "keywords": [ + "Authentication", + "google", + "oauth2" + ], + "support": { + "docs": "https://cloud.google.com/php/docs/reference/auth/latest", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.48.1" + }, + "install-path": "../google/auth" + }, + { + "name": "google/cloud-dialogflow", + "version": "v2.2.0", + "version_normalized": "2.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-cloud-php-dialogflow.git", + "reference": "b536e04b66e518505dbc0266c7f288f4d692cf7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-cloud-php-dialogflow/zipball/b536e04b66e518505dbc0266c7f288f4d692cf7a", + "reference": "b536e04b66e518505dbc0266c7f288f4d692cf7a", + "shasum": "" + }, + "require": { + "google/gax": "^1.38.0", + "php": "^8.1" + }, + "require-dev": { + "google/cloud-core": "^1.52.7", + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-grpc": "Enables use of gRPC, a universal high-performance RPC framework created by Google." + }, + "time": "2025-09-20T01:29:44+00:00", + "type": "library", + "extra": { + "component": { + "id": "cloud-dialogflow", + "path": "Dialogflow", + "entry": null, + "target": "googleapis/google-cloud-php-dialogflow.git" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\Cloud\\Dialogflow\\": "src", + "GPBMetadata\\Google\\Cloud\\Dialogflow\\": "metadata" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Cloud Dialogflow Client for PHP", + "support": { + "source": "https://github.com/googleapis/google-cloud-php-dialogflow/tree/v2.2.0" + }, + "install-path": "../google/cloud-dialogflow" + }, + { + "name": "google/common-protos", + "version": "4.12.4", + "version_normalized": "4.12.4.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/common-protos-php.git", + "reference": "0127156899af0df2681bd42024c60bd5360d64e3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/common-protos-php/zipball/0127156899af0df2681bd42024c60bd5360d64e3", + "reference": "0127156899af0df2681bd42024c60bd5360d64e3", + "shasum": "" + }, + "require": { + "google/protobuf": "^4.31", + "php": "^8.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6" + }, + "time": "2025-09-20T01:29:44+00:00", + "type": "library", + "extra": { + "component": { + "id": "common-protos", + "path": "CommonProtos", + "entry": "README.md", + "target": "googleapis/common-protos-php.git" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\Api\\": "src/Api", + "Google\\Iam\\": "src/Iam", + "Google\\Rpc\\": "src/Rpc", + "Google\\Type\\": "src/Type", + "Google\\Cloud\\": "src/Cloud", + "GPBMetadata\\Google\\Api\\": "metadata/Api", + "GPBMetadata\\Google\\Iam\\": "metadata/Iam", + "GPBMetadata\\Google\\Rpc\\": "metadata/Rpc", + "GPBMetadata\\Google\\Type\\": "metadata/Type", + "GPBMetadata\\Google\\Cloud\\": "metadata/Cloud", + "GPBMetadata\\Google\\Logging\\": "metadata/Logging" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google API Common Protos for PHP", + "homepage": "https://github.com/googleapis/common-protos-php", + "keywords": [ + "google" + ], + "support": { + "source": "https://github.com/googleapis/common-protos-php/tree/v4.12.4" + }, + "install-path": "../google/common-protos" + }, + { + "name": "google/gax", + "version": "v1.38.0", + "version_normalized": "1.38.0.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/gax-php.git", + "reference": "0e1bce4a30722e85485bbb132b2fa811d66b397b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/gax-php/zipball/0e1bce4a30722e85485bbb132b2fa811d66b397b", + "reference": "0e1bce4a30722e85485bbb132b2fa811d66b397b", + "shasum": "" + }, + "require": { + "google/auth": "^1.45", + "google/common-protos": "^4.4", + "google/grpc-gcp": "^0.4", + "google/longrunning": "~0.4", + "google/protobuf": "^4.31", + "grpc/grpc": "^1.13", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.0", + "php": "^8.1", + "ramsey/uuid": "^4.0" + }, + "conflict": { + "ext-protobuf": "<4.31.0" + }, + "require-dev": { + "phpspec/prophecy-phpunit": "^2.1", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "4.*" + }, + "time": "2025-09-17T18:22:14+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\ApiCore\\": "src", + "GPBMetadata\\ApiCore\\": "metadata/ApiCore" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Google API Core for PHP", + "homepage": "https://github.com/googleapis/gax-php", + "keywords": [ + "google" + ], + "support": { + "issues": "https://github.com/googleapis/gax-php/issues", + "source": "https://github.com/googleapis/gax-php/tree/v1.38.0" + }, + "install-path": "../google/gax" + }, + { + "name": "google/grpc-gcp", + "version": "v0.4.1", + "version_normalized": "0.4.1.0", + "source": { + "type": "git", + "url": "https://github.com/GoogleCloudPlatform/grpc-gcp-php.git", + "reference": "e585b7721bbe806ef45b5c52ae43dfc2bff89968" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GoogleCloudPlatform/grpc-gcp-php/zipball/e585b7721bbe806ef45b5c52ae43dfc2bff89968", + "reference": "e585b7721bbe806ef45b5c52ae43dfc2bff89968", + "shasum": "" + }, + "require": { + "google/auth": "^1.3", + "google/protobuf": "^v3.25.3||^4.26.1", + "grpc/grpc": "^v1.13.0", + "php": "^8.0", + "psr/cache": "^1.0.1||^2.0.0||^3.0.0" + }, + "require-dev": { + "google/cloud-spanner": "^1.7", + "phpunit/phpunit": "^9.0" + }, + "time": "2025-02-19T21:53:22+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Grpc\\Gcp\\": "src/" + }, + "classmap": [ + "src/generated/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "gRPC GCP library for channel management", + "support": { + "issues": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/issues", + "source": "https://github.com/GoogleCloudPlatform/grpc-gcp-php/tree/v0.4.1" + }, + "install-path": "../google/grpc-gcp" + }, + { + "name": "google/longrunning", + "version": "0.5.0", + "version_normalized": "0.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/php-longrunning.git", + "reference": "715519ab4aaf3c4268adb2b551ee0f34135c8c5f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/php-longrunning/zipball/715519ab4aaf3c4268adb2b551ee0f34135c8c5f", + "reference": "715519ab4aaf3c4268adb2b551ee0f34135c8c5f", + "shasum": "" + }, + "require-dev": { + "google/gax": "^1.38.0", + "phpunit/phpunit": "^9.0" + }, + "time": "2025-09-20T01:29:44+00:00", + "type": "library", + "extra": { + "component": { + "id": "longrunning", + "path": "LongRunning", + "entry": null, + "target": "googleapis/php-longrunning" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\LongRunning\\": "src/LongRunning", + "Google\\ApiCore\\LongRunning\\": "src/ApiCore/LongRunning", + "GPBMetadata\\Google\\Longrunning\\": "metadata/Longrunning" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google LongRunning Client for PHP", + "support": { + "source": "https://github.com/googleapis/php-longrunning/tree/v0.5.0" + }, + "install-path": "../google/longrunning" + }, + { + "name": "google/protobuf", + "version": "v4.32.1", + "version_normalized": "4.32.1.0", + "source": { + "type": "git", + "url": "https://github.com/protocolbuffers/protobuf-php.git", + "reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb", + "reference": "c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb", + "shasum": "" + }, + "require": { + "php": ">=8.1.0" + }, + "require-dev": { + "phpunit/phpunit": ">=5.0.0 <8.5.27" + }, + "suggest": { + "ext-bcmath": "Need to support JSON deserialization" + }, + "time": "2025-09-14T05:14:52+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Google\\Protobuf\\": "src/Google/Protobuf", + "GPBMetadata\\Google\\Protobuf\\": "src/GPBMetadata/Google/Protobuf" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "proto library for PHP", + "homepage": "https://developers.google.com/protocol-buffers/", + "keywords": [ + "proto" + ], + "support": { + "source": "https://github.com/protocolbuffers/protobuf-php/tree/v4.32.1" + }, + "install-path": "../google/protobuf" + }, + { + "name": "grpc/grpc", + "version": "1.74.0", + "version_normalized": "1.74.0.0", + "source": { + "type": "git", + "url": "https://github.com/grpc/grpc-php.git", + "reference": "32bf4dba256d60d395582fb6e4e8d3936bcdb713" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/grpc/grpc-php/zipball/32bf4dba256d60d395582fb6e4e8d3936bcdb713", + "reference": "32bf4dba256d60d395582fb6e4e8d3936bcdb713", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "google/auth": "^v1.3.0" + }, + "suggest": { + "ext-protobuf": "For better performance, install the protobuf C extension.", + "google/protobuf": "To get started using grpc quickly, install the native protobuf library." + }, + "time": "2025-07-24T20:02:16+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Grpc\\": "src/lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "gRPC library for PHP", + "homepage": "https://grpc.io", + "keywords": [ + "rpc" + ], + "support": { + "source": "https://github.com/grpc/grpc-php/tree/v1.74.0" + }, + "install-path": "../grpc/grpc" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.10.0", + "version_normalized": "7.10.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "time": "2025-08-23T22:36:01+00:00", + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "install-path": "../guzzlehttp/guzzle" + }, + { + "name": "guzzlehttp/promises", + "version": "2.3.0", + "version_normalized": "2.3.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "481557b130ef3790cf82b713667b43030dc9c957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "time": "2025-08-22T14:34:08+00:00", + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "install-path": "../guzzlehttp/promises" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.8.0", + "version_normalized": "2.8.0.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "21dc724a0583619cd1652f673303492272778051" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "time": "2025-08-23T21:21:41+00:00", + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.8.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "install-path": "../guzzlehttp/psr7" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "time": "2021-02-03T23:26:27+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "install-path": "../psr/cache" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "version_normalized": "1.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "time": "2023-09-23T14:17:50+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "install-path": "../psr/http-client" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "version_normalized": "1.1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "time": "2024-04-15T12:06:14+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "install-path": "../psr/http-factory" + }, + { + "name": "psr/http-message", + "version": "2.0", + "version_normalized": "2.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "time": "2023-04-04T09:54:51+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "install-path": "../psr/http-message" + }, + { + "name": "psr/log", + "version": "3.0.2", + "version_normalized": "3.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "time": "2024-09-11T13:17:53+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "install-path": "../psr/log" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "version_normalized": "3.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "time": "2019-03-08T08:55:37+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "install-path": "../ralouphie/getallheaders" + }, + { + "name": "ramsey/collection", + "version": "2.1.1", + "version_normalized": "2.1.1.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" + }, + "time": "2025-03-22T05:38:12+00:00", + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.1.1" + }, + "install-path": "../ramsey/collection" + }, + { + "name": "ramsey/uuid", + "version": "4.9.1", + "version_normalized": "4.9.1.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.25", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "time": "2025-09-04T20:59:21+00:00", + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.9.1" + }, + "install-path": "../ramsey/uuid" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", + "version_normalized": "3.6.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "time": "2024-09-25T14:21:43+00:00", + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "install-path": "../symfony/deprecation-contracts" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php new file mode 100644 index 0000000..a3438ff --- /dev/null +++ b/vendor/composer/installed.php @@ -0,0 +1,245 @@ + array( + 'name' => '__root__', + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => '923befa860dd5affe32046f42c857fdd3071b664', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => 'dev-master', + 'version' => 'dev-master', + 'reference' => '923befa860dd5affe32046f42c857fdd3071b664', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'brick/math' => array( + 'pretty_version' => '0.14.0', + 'version' => '0.14.0.0', + 'reference' => '113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2', + 'type' => 'library', + 'install_path' => __DIR__ . '/../brick/math', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'firebase/php-jwt' => array( + 'pretty_version' => 'v6.11.1', + 'version' => '6.11.1.0', + 'reference' => 'd1e91ecf8c598d073d0995afa8cd5c75c6e19e66', + 'type' => 'library', + 'install_path' => __DIR__ . '/../firebase/php-jwt', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/auth' => array( + 'pretty_version' => 'v1.48.1', + 'version' => '1.48.1.0', + 'reference' => '023f41a2c80fb98a493dfb9dffcab643481a7ab0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/auth', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/cloud-dialogflow' => array( + 'pretty_version' => 'v2.2.0', + 'version' => '2.2.0.0', + 'reference' => 'b536e04b66e518505dbc0266c7f288f4d692cf7a', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/cloud-dialogflow', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/common-protos' => array( + 'pretty_version' => '4.12.4', + 'version' => '4.12.4.0', + 'reference' => '0127156899af0df2681bd42024c60bd5360d64e3', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/common-protos', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/gax' => array( + 'pretty_version' => 'v1.38.0', + 'version' => '1.38.0.0', + 'reference' => '0e1bce4a30722e85485bbb132b2fa811d66b397b', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/gax', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/grpc-gcp' => array( + 'pretty_version' => 'v0.4.1', + 'version' => '0.4.1.0', + 'reference' => 'e585b7721bbe806ef45b5c52ae43dfc2bff89968', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/grpc-gcp', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/longrunning' => array( + 'pretty_version' => '0.5.0', + 'version' => '0.5.0.0', + 'reference' => '715519ab4aaf3c4268adb2b551ee0f34135c8c5f', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/longrunning', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'google/protobuf' => array( + 'pretty_version' => 'v4.32.1', + 'version' => '4.32.1.0', + 'reference' => 'c4ed1c1f9bbc1e91766e2cd6c0af749324fe87cb', + 'type' => 'library', + 'install_path' => __DIR__ . '/../google/protobuf', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'grpc/grpc' => array( + 'pretty_version' => '1.74.0', + 'version' => '1.74.0.0', + 'reference' => '32bf4dba256d60d395582fb6e4e8d3936bcdb713', + 'type' => 'library', + 'install_path' => __DIR__ . '/../grpc/grpc', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'guzzlehttp/guzzle' => array( + 'pretty_version' => '7.10.0', + 'version' => '7.10.0.0', + 'reference' => 'b51ac707cfa420b7bfd4e4d5e510ba8008e822b4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'guzzlehttp/promises' => array( + 'pretty_version' => '2.3.0', + 'version' => '2.3.0.0', + 'reference' => '481557b130ef3790cf82b713667b43030dc9c957', + 'type' => 'library', + 'install_path' => __DIR__ . '/../guzzlehttp/promises', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'guzzlehttp/psr7' => array( + 'pretty_version' => '2.8.0', + 'version' => '2.8.0.0', + 'reference' => '21dc724a0583619cd1652f673303492272778051', + 'type' => 'library', + 'install_path' => __DIR__ . '/../guzzlehttp/psr7', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/cache' => array( + 'pretty_version' => '3.0.0', + 'version' => '3.0.0.0', + 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/cache', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-client' => array( + 'pretty_version' => '1.0.3', + 'version' => '1.0.3.0', + 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-client', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-client-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '1.0', + ), + ), + 'psr/http-factory' => array( + 'pretty_version' => '1.1.0', + 'version' => '1.1.0.0', + 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-factory', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-factory-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '1.0', + ), + ), + 'psr/http-message' => array( + 'pretty_version' => '2.0', + 'version' => '2.0.0.0', + 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-message', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-message-implementation' => array( + 'dev_requirement' => false, + 'provided' => array( + 0 => '1.0', + ), + ), + 'psr/log' => array( + 'pretty_version' => '3.0.2', + 'version' => '3.0.2.0', + 'reference' => 'f16e1d5863e37f8d8c2a01719f5b34baa2b714d3', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/log', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'ralouphie/getallheaders' => array( + 'pretty_version' => '3.0.3', + 'version' => '3.0.3.0', + 'reference' => '120b605dfeb996808c31b6477290a714d356e822', + 'type' => 'library', + 'install_path' => __DIR__ . '/../ralouphie/getallheaders', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'ramsey/collection' => array( + 'pretty_version' => '2.1.1', + 'version' => '2.1.1.0', + 'reference' => '344572933ad0181accbf4ba763e85a0306a8c5e2', + 'type' => 'library', + 'install_path' => __DIR__ . '/../ramsey/collection', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'ramsey/uuid' => array( + 'pretty_version' => '4.9.1', + 'version' => '4.9.1.0', + 'reference' => '81f941f6f729b1e3ceea61d9d014f8b6c6800440', + 'type' => 'library', + 'install_path' => __DIR__ . '/../ramsey/uuid', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'rhumsaa/uuid' => array( + 'dev_requirement' => false, + 'replaced' => array( + 0 => '4.9.1', + ), + ), + 'symfony/deprecation-contracts' => array( + 'pretty_version' => 'v3.6.0', + 'version' => '3.6.0.0', + 'reference' => '63afe740e99a13ba87ec199bb07bbdee937a5b62', + 'type' => 'library', + 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php new file mode 100644 index 0000000..14bf88d --- /dev/null +++ b/vendor/composer/platform_check.php @@ -0,0 +1,25 @@ += 80200)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.2.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + throw new \RuntimeException( + 'Composer detected issues in your platform: ' . implode(' ', $issues) + ); +} diff --git a/vendor/firebase/php-jwt/CHANGELOG.md b/vendor/firebase/php-jwt/CHANGELOG.md new file mode 100644 index 0000000..7b5f6ce --- /dev/null +++ b/vendor/firebase/php-jwt/CHANGELOG.md @@ -0,0 +1,205 @@ +# Changelog + +## [6.11.1](https://github.com/firebase/php-jwt/compare/v6.11.0...v6.11.1) (2025-04-09) + + +### Bug Fixes + +* update error text for consistency ([#528](https://github.com/firebase/php-jwt/issues/528)) ([c11113a](https://github.com/firebase/php-jwt/commit/c11113afa13265e016a669e75494b9203b8a7775)) + +## [6.11.0](https://github.com/firebase/php-jwt/compare/v6.10.2...v6.11.0) (2025-01-23) + + +### Features + +* support octet typed JWK ([#587](https://github.com/firebase/php-jwt/issues/587)) ([7cb8a26](https://github.com/firebase/php-jwt/commit/7cb8a265fa81edf2fa6ef8098f5bc5ae573c33ad)) + + +### Bug Fixes + +* refactor constructor Key to use PHP 8.0 syntax ([#577](https://github.com/firebase/php-jwt/issues/577)) ([29fa2ce](https://github.com/firebase/php-jwt/commit/29fa2ce9e0582cd397711eec1e80c05ce20fabca)) + +## [6.10.2](https://github.com/firebase/php-jwt/compare/v6.10.1...v6.10.2) (2024-11-24) + + +### Bug Fixes + +* Mitigate PHP8.4 deprecation warnings ([#570](https://github.com/firebase/php-jwt/issues/570)) ([76808fa](https://github.com/firebase/php-jwt/commit/76808fa227f3811aa5cdb3bf81233714b799a5b5)) +* support php 8.4 ([#583](https://github.com/firebase/php-jwt/issues/583)) ([e3d68b0](https://github.com/firebase/php-jwt/commit/e3d68b044421339443c74199edd020e03fb1887e)) + +## [6.10.1](https://github.com/firebase/php-jwt/compare/v6.10.0...v6.10.1) (2024-05-18) + + +### Bug Fixes + +* ensure ratelimit expiry is set every time ([#556](https://github.com/firebase/php-jwt/issues/556)) ([09cb208](https://github.com/firebase/php-jwt/commit/09cb2081c2c3bc0f61e2f2a5fbea5741f7498648)) +* ratelimit cache expiration ([#550](https://github.com/firebase/php-jwt/issues/550)) ([dda7250](https://github.com/firebase/php-jwt/commit/dda725033585ece30ff8cae8937320d7e9f18bae)) + +## [6.10.0](https://github.com/firebase/php-jwt/compare/v6.9.0...v6.10.0) (2023-11-28) + + +### Features + +* allow typ header override ([#546](https://github.com/firebase/php-jwt/issues/546)) ([79cb30b](https://github.com/firebase/php-jwt/commit/79cb30b729a22931b2fbd6b53f20629a83031ba9)) + +## [6.9.0](https://github.com/firebase/php-jwt/compare/v6.8.1...v6.9.0) (2023-10-04) + + +### Features + +* add payload to jwt exception ([#521](https://github.com/firebase/php-jwt/issues/521)) ([175edf9](https://github.com/firebase/php-jwt/commit/175edf958bb61922ec135b2333acf5622f2238a2)) + +## [6.8.1](https://github.com/firebase/php-jwt/compare/v6.8.0...v6.8.1) (2023-07-14) + + +### Bug Fixes + +* accept float claims but round down to ignore them ([#492](https://github.com/firebase/php-jwt/issues/492)) ([3936842](https://github.com/firebase/php-jwt/commit/39368423beeaacb3002afa7dcb75baebf204fe7e)) +* different BeforeValidException messages for nbf and iat ([#526](https://github.com/firebase/php-jwt/issues/526)) ([0a53cf2](https://github.com/firebase/php-jwt/commit/0a53cf2986e45c2bcbf1a269f313ebf56a154ee4)) + +## [6.8.0](https://github.com/firebase/php-jwt/compare/v6.7.0...v6.8.0) (2023-06-14) + + +### Features + +* add support for P-384 curve ([#515](https://github.com/firebase/php-jwt/issues/515)) ([5de4323](https://github.com/firebase/php-jwt/commit/5de4323f4baf4d70bca8663bd87682a69c656c3d)) + + +### Bug Fixes + +* handle invalid http responses ([#508](https://github.com/firebase/php-jwt/issues/508)) ([91c39c7](https://github.com/firebase/php-jwt/commit/91c39c72b22fc3e1191e574089552c1f2041c718)) + +## [6.7.0](https://github.com/firebase/php-jwt/compare/v6.6.0...v6.7.0) (2023-06-14) + + +### Features + +* add ed25519 support to JWK (public keys) ([#452](https://github.com/firebase/php-jwt/issues/452)) ([e53979a](https://github.com/firebase/php-jwt/commit/e53979abae927de916a75b9d239cfda8ce32be2a)) + +## [6.6.0](https://github.com/firebase/php-jwt/compare/v6.5.0...v6.6.0) (2023-06-13) + + +### Features + +* allow get headers when decoding token ([#442](https://github.com/firebase/php-jwt/issues/442)) ([fb85f47](https://github.com/firebase/php-jwt/commit/fb85f47cfaeffdd94faf8defdf07164abcdad6c3)) + + +### Bug Fixes + +* only check iat if nbf is not used ([#493](https://github.com/firebase/php-jwt/issues/493)) ([398ccd2](https://github.com/firebase/php-jwt/commit/398ccd25ea12fa84b9e4f1085d5ff448c21ec797)) + +## [6.5.0](https://github.com/firebase/php-jwt/compare/v6.4.0...v6.5.0) (2023-05-12) + + +### Bug Fixes + +* allow KID of '0' ([#505](https://github.com/firebase/php-jwt/issues/505)) ([9dc46a9](https://github.com/firebase/php-jwt/commit/9dc46a9c3e5801294249cfd2554c5363c9f9326a)) + + +### Miscellaneous Chores + +* drop support for PHP 7.3 ([#495](https://github.com/firebase/php-jwt/issues/495)) + +## [6.4.0](https://github.com/firebase/php-jwt/compare/v6.3.2...v6.4.0) (2023-02-08) + + +### Features + +* add support for W3C ES256K ([#462](https://github.com/firebase/php-jwt/issues/462)) ([213924f](https://github.com/firebase/php-jwt/commit/213924f51936291fbbca99158b11bd4ae56c2c95)) +* improve caching by only decoding jwks when necessary ([#486](https://github.com/firebase/php-jwt/issues/486)) ([78d3ed1](https://github.com/firebase/php-jwt/commit/78d3ed1073553f7d0bbffa6c2010009a0d483d5c)) + +## [6.3.2](https://github.com/firebase/php-jwt/compare/v6.3.1...v6.3.2) (2022-11-01) + + +### Bug Fixes + +* check kid before using as array index ([bad1b04](https://github.com/firebase/php-jwt/commit/bad1b040d0c736bbf86814c6b5ae614f517cf7bd)) + +## [6.3.1](https://github.com/firebase/php-jwt/compare/v6.3.0...v6.3.1) (2022-11-01) + + +### Bug Fixes + +* casing of GET for PSR compat ([#451](https://github.com/firebase/php-jwt/issues/451)) ([60b52b7](https://github.com/firebase/php-jwt/commit/60b52b71978790eafcf3b95cfbd83db0439e8d22)) +* string interpolation format for php 8.2 ([#446](https://github.com/firebase/php-jwt/issues/446)) ([2e07d8a](https://github.com/firebase/php-jwt/commit/2e07d8a1524d12b69b110ad649f17461d068b8f2)) + +## 6.3.0 / 2022-07-15 + + - Added ES256 support to JWK parsing ([#399](https://github.com/firebase/php-jwt/pull/399)) + - Fixed potential caching error in `CachedKeySet` by caching jwks as strings ([#435](https://github.com/firebase/php-jwt/pull/435)) + +## 6.2.0 / 2022-05-14 + + - Added `CachedKeySet` ([#397](https://github.com/firebase/php-jwt/pull/397)) + - Added `$defaultAlg` parameter to `JWT::parseKey` and `JWT::parseKeySet` ([#426](https://github.com/firebase/php-jwt/pull/426)). + +## 6.1.0 / 2022-03-23 + + - Drop support for PHP 5.3, 5.4, 5.5, 5.6, and 7.0 + - Add parameter typing and return types where possible + +## 6.0.0 / 2022-01-24 + + - **Backwards-Compatibility Breaking Changes**: See the [Release Notes](https://github.com/firebase/php-jwt/releases/tag/v6.0.0) for more information. + - New Key object to prevent key/algorithm type confusion (#365) + - Add JWK support (#273) + - Add ES256 support (#256) + - Add ES384 support (#324) + - Add Ed25519 support (#343) + +## 5.0.0 / 2017-06-26 +- Support RS384 and RS512. + See [#117](https://github.com/firebase/php-jwt/pull/117). Thanks [@joostfaassen](https://github.com/joostfaassen)! +- Add an example for RS256 openssl. + See [#125](https://github.com/firebase/php-jwt/pull/125). Thanks [@akeeman](https://github.com/akeeman)! +- Detect invalid Base64 encoding in signature. + See [#162](https://github.com/firebase/php-jwt/pull/162). Thanks [@psignoret](https://github.com/psignoret)! +- Update `JWT::verify` to handle OpenSSL errors. + See [#159](https://github.com/firebase/php-jwt/pull/159). Thanks [@bshaffer](https://github.com/bshaffer)! +- Add `array` type hinting to `decode` method + See [#101](https://github.com/firebase/php-jwt/pull/101). Thanks [@hywak](https://github.com/hywak)! +- Add all JSON error types. + See [#110](https://github.com/firebase/php-jwt/pull/110). Thanks [@gbalduzzi](https://github.com/gbalduzzi)! +- Bugfix 'kid' not in given key list. + See [#129](https://github.com/firebase/php-jwt/pull/129). Thanks [@stampycode](https://github.com/stampycode)! +- Miscellaneous cleanup, documentation and test fixes. + See [#107](https://github.com/firebase/php-jwt/pull/107), [#115](https://github.com/firebase/php-jwt/pull/115), + [#160](https://github.com/firebase/php-jwt/pull/160), [#161](https://github.com/firebase/php-jwt/pull/161), and + [#165](https://github.com/firebase/php-jwt/pull/165). Thanks [@akeeman](https://github.com/akeeman), + [@chinedufn](https://github.com/chinedufn), and [@bshaffer](https://github.com/bshaffer)! + +## 4.0.0 / 2016-07-17 +- Add support for late static binding. See [#88](https://github.com/firebase/php-jwt/pull/88) for details. Thanks to [@chappy84](https://github.com/chappy84)! +- Use static `$timestamp` instead of `time()` to improve unit testing. See [#93](https://github.com/firebase/php-jwt/pull/93) for details. Thanks to [@josephmcdermott](https://github.com/josephmcdermott)! +- Fixes to exceptions classes. See [#81](https://github.com/firebase/php-jwt/pull/81) for details. Thanks to [@Maks3w](https://github.com/Maks3w)! +- Fixes to PHPDoc. See [#76](https://github.com/firebase/php-jwt/pull/76) for details. Thanks to [@akeeman](https://github.com/akeeman)! + +## 3.0.0 / 2015-07-22 +- Minimum PHP version updated from `5.2.0` to `5.3.0`. +- Add `\Firebase\JWT` namespace. See +[#59](https://github.com/firebase/php-jwt/pull/59) for details. Thanks to +[@Dashron](https://github.com/Dashron)! +- Require a non-empty key to decode and verify a JWT. See +[#60](https://github.com/firebase/php-jwt/pull/60) for details. Thanks to +[@sjones608](https://github.com/sjones608)! +- Cleaner documentation blocks in the code. See +[#62](https://github.com/firebase/php-jwt/pull/62) for details. Thanks to +[@johanderuijter](https://github.com/johanderuijter)! + +## 2.2.0 / 2015-06-22 +- Add support for adding custom, optional JWT headers to `JWT::encode()`. See +[#53](https://github.com/firebase/php-jwt/pull/53/files) for details. Thanks to +[@mcocaro](https://github.com/mcocaro)! + +## 2.1.0 / 2015-05-20 +- Add support for adding a leeway to `JWT:decode()` that accounts for clock skew +between signing and verifying entities. Thanks to [@lcabral](https://github.com/lcabral)! +- Add support for passing an object implementing the `ArrayAccess` interface for +`$keys` argument in `JWT::decode()`. Thanks to [@aztech-dev](https://github.com/aztech-dev)! + +## 2.0.0 / 2015-04-01 +- **Note**: It is strongly recommended that you update to > v2.0.0 to address + known security vulnerabilities in prior versions when both symmetric and + asymmetric keys are used together. +- Update signature for `JWT::decode(...)` to require an array of supported + algorithms to use when verifying token signatures. diff --git a/vendor/firebase/php-jwt/LICENSE b/vendor/firebase/php-jwt/LICENSE new file mode 100644 index 0000000..11c0146 --- /dev/null +++ b/vendor/firebase/php-jwt/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2011, Neuman Vong + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the copyright holder nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/firebase/php-jwt/README.md b/vendor/firebase/php-jwt/README.md new file mode 100644 index 0000000..e45ccb8 --- /dev/null +++ b/vendor/firebase/php-jwt/README.md @@ -0,0 +1,425 @@ +![Build Status](https://github.com/firebase/php-jwt/actions/workflows/tests.yml/badge.svg) +[![Latest Stable Version](https://poser.pugx.org/firebase/php-jwt/v/stable)](https://packagist.org/packages/firebase/php-jwt) +[![Total Downloads](https://poser.pugx.org/firebase/php-jwt/downloads)](https://packagist.org/packages/firebase/php-jwt) +[![License](https://poser.pugx.org/firebase/php-jwt/license)](https://packagist.org/packages/firebase/php-jwt) + +PHP-JWT +======= +A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to [RFC 7519](https://tools.ietf.org/html/rfc7519). + +Installation +------------ + +Use composer to manage your dependencies and download PHP-JWT: + +```bash +composer require firebase/php-jwt +``` + +Optionally, install the `paragonie/sodium_compat` package from composer if your +php env does not have libsodium installed: + +```bash +composer require paragonie/sodium_compat +``` + +Example +------- +```php +use Firebase\JWT\JWT; +use Firebase\JWT\Key; + +$key = 'example_key'; +$payload = [ + 'iss' => 'http://example.org', + 'aud' => 'http://example.com', + 'iat' => 1356999524, + 'nbf' => 1357000000 +]; + +/** + * IMPORTANT: + * You must specify supported algorithms for your application. See + * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40 + * for a list of spec-compliant algorithms. + */ +$jwt = JWT::encode($payload, $key, 'HS256'); +$decoded = JWT::decode($jwt, new Key($key, 'HS256')); +print_r($decoded); + +// Pass a stdClass in as the third parameter to get the decoded header values +$headers = new stdClass(); +$decoded = JWT::decode($jwt, new Key($key, 'HS256'), $headers); +print_r($headers); + +/* + NOTE: This will now be an object instead of an associative array. To get + an associative array, you will need to cast it as such: +*/ + +$decoded_array = (array) $decoded; + +/** + * You can add a leeway to account for when there is a clock skew times between + * the signing and verifying servers. It is recommended that this leeway should + * not be bigger than a few minutes. + * + * Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef + */ +JWT::$leeway = 60; // $leeway in seconds +$decoded = JWT::decode($jwt, new Key($key, 'HS256')); +``` +Example encode/decode headers +------- +Decoding the JWT headers without verifying the JWT first is NOT recommended, and is not supported by +this library. This is because without verifying the JWT, the header values could have been tampered with. +Any value pulled from an unverified header should be treated as if it could be any string sent in from an +attacker. If this is something you still want to do in your application for whatever reason, it's possible to +decode the header values manually simply by calling `json_decode` and `base64_decode` on the JWT +header part: +```php +use Firebase\JWT\JWT; + +$key = 'example_key'; +$payload = [ + 'iss' => 'http://example.org', + 'aud' => 'http://example.com', + 'iat' => 1356999524, + 'nbf' => 1357000000 +]; + +$headers = [ + 'x-forwarded-for' => 'www.google.com' +]; + +// Encode headers in the JWT string +$jwt = JWT::encode($payload, $key, 'HS256', null, $headers); + +// Decode headers from the JWT string WITHOUT validation +// **IMPORTANT**: This operation is vulnerable to attacks, as the JWT has not yet been verified. +// These headers could be any value sent by an attacker. +list($headersB64, $payloadB64, $sig) = explode('.', $jwt); +$decoded = json_decode(base64_decode($headersB64), true); + +print_r($decoded); +``` +Example with RS256 (openssl) +---------------------------- +```php +use Firebase\JWT\JWT; +use Firebase\JWT\Key; + +$privateKey = << 'example.org', + 'aud' => 'example.com', + 'iat' => 1356999524, + 'nbf' => 1357000000 +]; + +$jwt = JWT::encode($payload, $privateKey, 'RS256'); +echo "Encode:\n" . print_r($jwt, true) . "\n"; + +$decoded = JWT::decode($jwt, new Key($publicKey, 'RS256')); + +/* + NOTE: This will now be an object instead of an associative array. To get + an associative array, you will need to cast it as such: +*/ + +$decoded_array = (array) $decoded; +echo "Decode:\n" . print_r($decoded_array, true) . "\n"; +``` + +Example with a passphrase +------------------------- + +```php +use Firebase\JWT\JWT; +use Firebase\JWT\Key; + +// Your passphrase +$passphrase = '[YOUR_PASSPHRASE]'; + +// Your private key file with passphrase +// Can be generated with "ssh-keygen -t rsa -m pem" +$privateKeyFile = '/path/to/key-with-passphrase.pem'; + +// Create a private key of type "resource" +$privateKey = openssl_pkey_get_private( + file_get_contents($privateKeyFile), + $passphrase +); + +$payload = [ + 'iss' => 'example.org', + 'aud' => 'example.com', + 'iat' => 1356999524, + 'nbf' => 1357000000 +]; + +$jwt = JWT::encode($payload, $privateKey, 'RS256'); +echo "Encode:\n" . print_r($jwt, true) . "\n"; + +// Get public key from the private key, or pull from from a file. +$publicKey = openssl_pkey_get_details($privateKey)['key']; + +$decoded = JWT::decode($jwt, new Key($publicKey, 'RS256')); +echo "Decode:\n" . print_r((array) $decoded, true) . "\n"; +``` + +Example with EdDSA (libsodium and Ed25519 signature) +---------------------------- +```php +use Firebase\JWT\JWT; +use Firebase\JWT\Key; + +// Public and private keys are expected to be Base64 encoded. The last +// non-empty line is used so that keys can be generated with +// sodium_crypto_sign_keypair(). The secret keys generated by other tools may +// need to be adjusted to match the input expected by libsodium. + +$keyPair = sodium_crypto_sign_keypair(); + +$privateKey = base64_encode(sodium_crypto_sign_secretkey($keyPair)); + +$publicKey = base64_encode(sodium_crypto_sign_publickey($keyPair)); + +$payload = [ + 'iss' => 'example.org', + 'aud' => 'example.com', + 'iat' => 1356999524, + 'nbf' => 1357000000 +]; + +$jwt = JWT::encode($payload, $privateKey, 'EdDSA'); +echo "Encode:\n" . print_r($jwt, true) . "\n"; + +$decoded = JWT::decode($jwt, new Key($publicKey, 'EdDSA')); +echo "Decode:\n" . print_r((array) $decoded, true) . "\n"; +```` + +Example with multiple keys +-------------------------- +```php +use Firebase\JWT\JWT; +use Firebase\JWT\Key; + +// Example RSA keys from previous example +// $privateKey1 = '...'; +// $publicKey1 = '...'; + +// Example EdDSA keys from previous example +// $privateKey2 = '...'; +// $publicKey2 = '...'; + +$payload = [ + 'iss' => 'example.org', + 'aud' => 'example.com', + 'iat' => 1356999524, + 'nbf' => 1357000000 +]; + +$jwt1 = JWT::encode($payload, $privateKey1, 'RS256', 'kid1'); +$jwt2 = JWT::encode($payload, $privateKey2, 'EdDSA', 'kid2'); +echo "Encode 1:\n" . print_r($jwt1, true) . "\n"; +echo "Encode 2:\n" . print_r($jwt2, true) . "\n"; + +$keys = [ + 'kid1' => new Key($publicKey1, 'RS256'), + 'kid2' => new Key($publicKey2, 'EdDSA'), +]; + +$decoded1 = JWT::decode($jwt1, $keys); +$decoded2 = JWT::decode($jwt2, $keys); + +echo "Decode 1:\n" . print_r((array) $decoded1, true) . "\n"; +echo "Decode 2:\n" . print_r((array) $decoded2, true) . "\n"; +``` + +Using JWKs +---------- + +```php +use Firebase\JWT\JWK; +use Firebase\JWT\JWT; + +// Set of keys. The "keys" key is required. For example, the JSON response to +// this endpoint: https://www.gstatic.com/iap/verify/public_key-jwk +$jwks = ['keys' => []]; + +// JWK::parseKeySet($jwks) returns an associative array of **kid** to Firebase\JWT\Key +// objects. Pass this as the second parameter to JWT::decode. +JWT::decode($jwt, JWK::parseKeySet($jwks)); +``` + +Using Cached Key Sets +--------------------- + +The `CachedKeySet` class can be used to fetch and cache JWKS (JSON Web Key Sets) from a public URI. +This has the following advantages: + +1. The results are cached for performance. +2. If an unrecognized key is requested, the cache is refreshed, to accomodate for key rotation. +3. If rate limiting is enabled, the JWKS URI will not make more than 10 requests a second. + +```php +use Firebase\JWT\CachedKeySet; +use Firebase\JWT\JWT; + +// The URI for the JWKS you wish to cache the results from +$jwksUri = 'https://www.gstatic.com/iap/verify/public_key-jwk'; + +// Create an HTTP client (can be any PSR-7 compatible HTTP client) +$httpClient = new GuzzleHttp\Client(); + +// Create an HTTP request factory (can be any PSR-17 compatible HTTP request factory) +$httpFactory = new GuzzleHttp\Psr\HttpFactory(); + +// Create a cache item pool (can be any PSR-6 compatible cache item pool) +$cacheItemPool = Phpfastcache\CacheManager::getInstance('files'); + +$keySet = new CachedKeySet( + $jwksUri, + $httpClient, + $httpFactory, + $cacheItemPool, + null, // $expiresAfter int seconds to set the JWKS to expire + true // $rateLimit true to enable rate limit of 10 RPS on lookup of invalid keys +); + +$jwt = 'eyJhbGci...'; // Some JWT signed by a key from the $jwkUri above +$decoded = JWT::decode($jwt, $keySet); +``` + +Miscellaneous +------------- + +#### Exception Handling + +When a call to `JWT::decode` is invalid, it will throw one of the following exceptions: + +```php +use Firebase\JWT\JWT; +use Firebase\JWT\SignatureInvalidException; +use Firebase\JWT\BeforeValidException; +use Firebase\JWT\ExpiredException; +use DomainException; +use InvalidArgumentException; +use UnexpectedValueException; + +try { + $decoded = JWT::decode($jwt, $keys); +} catch (InvalidArgumentException $e) { + // provided key/key-array is empty or malformed. +} catch (DomainException $e) { + // provided algorithm is unsupported OR + // provided key is invalid OR + // unknown error thrown in openSSL or libsodium OR + // libsodium is required but not available. +} catch (SignatureInvalidException $e) { + // provided JWT signature verification failed. +} catch (BeforeValidException $e) { + // provided JWT is trying to be used before "nbf" claim OR + // provided JWT is trying to be used before "iat" claim. +} catch (ExpiredException $e) { + // provided JWT is trying to be used after "exp" claim. +} catch (UnexpectedValueException $e) { + // provided JWT is malformed OR + // provided JWT is missing an algorithm / using an unsupported algorithm OR + // provided JWT algorithm does not match provided key OR + // provided key ID in key/key-array is empty or invalid. +} +``` + +All exceptions in the `Firebase\JWT` namespace extend `UnexpectedValueException`, and can be simplified +like this: + +```php +use Firebase\JWT\JWT; +use UnexpectedValueException; +try { + $decoded = JWT::decode($jwt, $keys); +} catch (LogicException $e) { + // errors having to do with environmental setup or malformed JWT Keys +} catch (UnexpectedValueException $e) { + // errors having to do with JWT signature and claims +} +``` + +#### Casting to array + +The return value of `JWT::decode` is the generic PHP object `stdClass`. If you'd like to handle with arrays +instead, you can do the following: + +```php +// return type is stdClass +$decoded = JWT::decode($jwt, $keys); + +// cast to array +$decoded = json_decode(json_encode($decoded), true); +``` + +Tests +----- +Run the tests using phpunit: + +```bash +$ pear install PHPUnit +$ phpunit --configuration phpunit.xml.dist +PHPUnit 3.7.10 by Sebastian Bergmann. +..... +Time: 0 seconds, Memory: 2.50Mb +OK (5 tests, 5 assertions) +``` + +New Lines in private keys +----- + +If your private key contains `\n` characters, be sure to wrap it in double quotes `""` +and not single quotes `''` in order to properly interpret the escaped characters. + +License +------- +[3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause). diff --git a/vendor/firebase/php-jwt/composer.json b/vendor/firebase/php-jwt/composer.json new file mode 100644 index 0000000..816cfd0 --- /dev/null +++ b/vendor/firebase/php-jwt/composer.json @@ -0,0 +1,42 @@ +{ + "name": "firebase/php-jwt", + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "php", + "jwt" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "license": "BSD-3-Clause", + "require": { + "php": "^8.0" + }, + "suggest": { + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present", + "ext-sodium": "Support EdDSA (Ed25519) signatures" + }, + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "require-dev": { + "guzzlehttp/guzzle": "^7.4", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psr/cache": "^2.0||^3.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + } +} diff --git a/vendor/firebase/php-jwt/src/BeforeValidException.php b/vendor/firebase/php-jwt/src/BeforeValidException.php new file mode 100644 index 0000000..595164b --- /dev/null +++ b/vendor/firebase/php-jwt/src/BeforeValidException.php @@ -0,0 +1,18 @@ +payload = $payload; + } + + public function getPayload(): object + { + return $this->payload; + } +} diff --git a/vendor/firebase/php-jwt/src/CachedKeySet.php b/vendor/firebase/php-jwt/src/CachedKeySet.php new file mode 100644 index 0000000..8e8e8d6 --- /dev/null +++ b/vendor/firebase/php-jwt/src/CachedKeySet.php @@ -0,0 +1,274 @@ + + */ +class CachedKeySet implements ArrayAccess +{ + /** + * @var string + */ + private $jwksUri; + /** + * @var ClientInterface + */ + private $httpClient; + /** + * @var RequestFactoryInterface + */ + private $httpFactory; + /** + * @var CacheItemPoolInterface + */ + private $cache; + /** + * @var ?int + */ + private $expiresAfter; + /** + * @var ?CacheItemInterface + */ + private $cacheItem; + /** + * @var array> + */ + private $keySet; + /** + * @var string + */ + private $cacheKey; + /** + * @var string + */ + private $cacheKeyPrefix = 'jwks'; + /** + * @var int + */ + private $maxKeyLength = 64; + /** + * @var bool + */ + private $rateLimit; + /** + * @var string + */ + private $rateLimitCacheKey; + /** + * @var int + */ + private $maxCallsPerMinute = 10; + /** + * @var string|null + */ + private $defaultAlg; + + public function __construct( + string $jwksUri, + ClientInterface $httpClient, + RequestFactoryInterface $httpFactory, + CacheItemPoolInterface $cache, + ?int $expiresAfter = null, + bool $rateLimit = false, + ?string $defaultAlg = null + ) { + $this->jwksUri = $jwksUri; + $this->httpClient = $httpClient; + $this->httpFactory = $httpFactory; + $this->cache = $cache; + $this->expiresAfter = $expiresAfter; + $this->rateLimit = $rateLimit; + $this->defaultAlg = $defaultAlg; + $this->setCacheKeys(); + } + + /** + * @param string $keyId + * @return Key + */ + public function offsetGet($keyId): Key + { + if (!$this->keyIdExists($keyId)) { + throw new OutOfBoundsException('Key ID not found'); + } + return JWK::parseKey($this->keySet[$keyId], $this->defaultAlg); + } + + /** + * @param string $keyId + * @return bool + */ + public function offsetExists($keyId): bool + { + return $this->keyIdExists($keyId); + } + + /** + * @param string $offset + * @param Key $value + */ + public function offsetSet($offset, $value): void + { + throw new LogicException('Method not implemented'); + } + + /** + * @param string $offset + */ + public function offsetUnset($offset): void + { + throw new LogicException('Method not implemented'); + } + + /** + * @return array + */ + private function formatJwksForCache(string $jwks): array + { + $jwks = json_decode($jwks, true); + + if (!isset($jwks['keys'])) { + throw new UnexpectedValueException('"keys" member must exist in the JWK Set'); + } + + if (empty($jwks['keys'])) { + throw new InvalidArgumentException('JWK Set did not contain any keys'); + } + + $keys = []; + foreach ($jwks['keys'] as $k => $v) { + $kid = isset($v['kid']) ? $v['kid'] : $k; + $keys[(string) $kid] = $v; + } + + return $keys; + } + + private function keyIdExists(string $keyId): bool + { + if (null === $this->keySet) { + $item = $this->getCacheItem(); + // Try to load keys from cache + if ($item->isHit()) { + // item found! retrieve it + $this->keySet = $item->get(); + // If the cached item is a string, the JWKS response was cached (previous behavior). + // Parse this into expected format array instead. + if (\is_string($this->keySet)) { + $this->keySet = $this->formatJwksForCache($this->keySet); + } + } + } + + if (!isset($this->keySet[$keyId])) { + if ($this->rateLimitExceeded()) { + return false; + } + $request = $this->httpFactory->createRequest('GET', $this->jwksUri); + $jwksResponse = $this->httpClient->sendRequest($request); + if ($jwksResponse->getStatusCode() !== 200) { + throw new UnexpectedValueException( + \sprintf('HTTP Error: %d %s for URI "%s"', + $jwksResponse->getStatusCode(), + $jwksResponse->getReasonPhrase(), + $this->jwksUri, + ), + $jwksResponse->getStatusCode() + ); + } + $this->keySet = $this->formatJwksForCache((string) $jwksResponse->getBody()); + + if (!isset($this->keySet[$keyId])) { + return false; + } + + $item = $this->getCacheItem(); + $item->set($this->keySet); + if ($this->expiresAfter) { + $item->expiresAfter($this->expiresAfter); + } + $this->cache->save($item); + } + + return true; + } + + private function rateLimitExceeded(): bool + { + if (!$this->rateLimit) { + return false; + } + + $cacheItem = $this->cache->getItem($this->rateLimitCacheKey); + + $cacheItemData = []; + if ($cacheItem->isHit() && \is_array($data = $cacheItem->get())) { + $cacheItemData = $data; + } + + $callsPerMinute = $cacheItemData['callsPerMinute'] ?? 0; + $expiry = $cacheItemData['expiry'] ?? new \DateTime('+60 seconds', new \DateTimeZone('UTC')); + + if (++$callsPerMinute > $this->maxCallsPerMinute) { + return true; + } + + $cacheItem->set(['expiry' => $expiry, 'callsPerMinute' => $callsPerMinute]); + $cacheItem->expiresAt($expiry); + $this->cache->save($cacheItem); + return false; + } + + private function getCacheItem(): CacheItemInterface + { + if (\is_null($this->cacheItem)) { + $this->cacheItem = $this->cache->getItem($this->cacheKey); + } + + return $this->cacheItem; + } + + private function setCacheKeys(): void + { + if (empty($this->jwksUri)) { + throw new RuntimeException('JWKS URI is empty'); + } + + // ensure we do not have illegal characters + $key = preg_replace('|[^a-zA-Z0-9_\.!]|', '', $this->jwksUri); + + // add prefix + $key = $this->cacheKeyPrefix . $key; + + // Hash keys if they exceed $maxKeyLength of 64 + if (\strlen($key) > $this->maxKeyLength) { + $key = substr(hash('sha256', $key), 0, $this->maxKeyLength); + } + + $this->cacheKey = $key; + + if ($this->rateLimit) { + // add prefix + $rateLimitKey = $this->cacheKeyPrefix . 'ratelimit' . $key; + + // Hash keys if they exceed $maxKeyLength of 64 + if (\strlen($rateLimitKey) > $this->maxKeyLength) { + $rateLimitKey = substr(hash('sha256', $rateLimitKey), 0, $this->maxKeyLength); + } + + $this->rateLimitCacheKey = $rateLimitKey; + } + } +} diff --git a/vendor/firebase/php-jwt/src/ExpiredException.php b/vendor/firebase/php-jwt/src/ExpiredException.php new file mode 100644 index 0000000..12fef09 --- /dev/null +++ b/vendor/firebase/php-jwt/src/ExpiredException.php @@ -0,0 +1,18 @@ +payload = $payload; + } + + public function getPayload(): object + { + return $this->payload; + } +} diff --git a/vendor/firebase/php-jwt/src/JWK.php b/vendor/firebase/php-jwt/src/JWK.php new file mode 100644 index 0000000..405dcc4 --- /dev/null +++ b/vendor/firebase/php-jwt/src/JWK.php @@ -0,0 +1,355 @@ + + * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD + * @link https://github.com/firebase/php-jwt + */ +class JWK +{ + private const OID = '1.2.840.10045.2.1'; + private const ASN1_OBJECT_IDENTIFIER = 0x06; + private const ASN1_SEQUENCE = 0x10; // also defined in JWT + private const ASN1_BIT_STRING = 0x03; + private const EC_CURVES = [ + 'P-256' => '1.2.840.10045.3.1.7', // Len: 64 + 'secp256k1' => '1.3.132.0.10', // Len: 64 + 'P-384' => '1.3.132.0.34', // Len: 96 + // 'P-521' => '1.3.132.0.35', // Len: 132 (not supported) + ]; + + // For keys with "kty" equal to "OKP" (Octet Key Pair), the "crv" parameter must contain the key subtype. + // This library supports the following subtypes: + private const OKP_SUBTYPES = [ + 'Ed25519' => true, // RFC 8037 + ]; + + /** + * Parse a set of JWK keys + * + * @param array $jwks The JSON Web Key Set as an associative array + * @param string $defaultAlg The algorithm for the Key object if "alg" is not set in the + * JSON Web Key Set + * + * @return array An associative array of key IDs (kid) to Key objects + * + * @throws InvalidArgumentException Provided JWK Set is empty + * @throws UnexpectedValueException Provided JWK Set was invalid + * @throws DomainException OpenSSL failure + * + * @uses parseKey + */ + public static function parseKeySet(array $jwks, ?string $defaultAlg = null): array + { + $keys = []; + + if (!isset($jwks['keys'])) { + throw new UnexpectedValueException('"keys" member must exist in the JWK Set'); + } + + if (empty($jwks['keys'])) { + throw new InvalidArgumentException('JWK Set did not contain any keys'); + } + + foreach ($jwks['keys'] as $k => $v) { + $kid = isset($v['kid']) ? $v['kid'] : $k; + if ($key = self::parseKey($v, $defaultAlg)) { + $keys[(string) $kid] = $key; + } + } + + if (0 === \count($keys)) { + throw new UnexpectedValueException('No supported algorithms found in JWK Set'); + } + + return $keys; + } + + /** + * Parse a JWK key + * + * @param array $jwk An individual JWK + * @param string $defaultAlg The algorithm for the Key object if "alg" is not set in the + * JSON Web Key Set + * + * @return Key The key object for the JWK + * + * @throws InvalidArgumentException Provided JWK is empty + * @throws UnexpectedValueException Provided JWK was invalid + * @throws DomainException OpenSSL failure + * + * @uses createPemFromModulusAndExponent + */ + public static function parseKey(array $jwk, ?string $defaultAlg = null): ?Key + { + if (empty($jwk)) { + throw new InvalidArgumentException('JWK must not be empty'); + } + + if (!isset($jwk['kty'])) { + throw new UnexpectedValueException('JWK must contain a "kty" parameter'); + } + + if (!isset($jwk['alg'])) { + if (\is_null($defaultAlg)) { + // The "alg" parameter is optional in a KTY, but an algorithm is required + // for parsing in this library. Use the $defaultAlg parameter when parsing the + // key set in order to prevent this error. + // @see https://datatracker.ietf.org/doc/html/rfc7517#section-4.4 + throw new UnexpectedValueException('JWK must contain an "alg" parameter'); + } + $jwk['alg'] = $defaultAlg; + } + + switch ($jwk['kty']) { + case 'RSA': + if (!empty($jwk['d'])) { + throw new UnexpectedValueException('RSA private keys are not supported'); + } + if (!isset($jwk['n']) || !isset($jwk['e'])) { + throw new UnexpectedValueException('RSA keys must contain values for both "n" and "e"'); + } + + $pem = self::createPemFromModulusAndExponent($jwk['n'], $jwk['e']); + $publicKey = \openssl_pkey_get_public($pem); + if (false === $publicKey) { + throw new DomainException( + 'OpenSSL error: ' . \openssl_error_string() + ); + } + return new Key($publicKey, $jwk['alg']); + case 'EC': + if (isset($jwk['d'])) { + // The key is actually a private key + throw new UnexpectedValueException('Key data must be for a public key'); + } + + if (empty($jwk['crv'])) { + throw new UnexpectedValueException('crv not set'); + } + + if (!isset(self::EC_CURVES[$jwk['crv']])) { + throw new DomainException('Unrecognised or unsupported EC curve'); + } + + if (empty($jwk['x']) || empty($jwk['y'])) { + throw new UnexpectedValueException('x and y not set'); + } + + $publicKey = self::createPemFromCrvAndXYCoordinates($jwk['crv'], $jwk['x'], $jwk['y']); + return new Key($publicKey, $jwk['alg']); + case 'OKP': + if (isset($jwk['d'])) { + // The key is actually a private key + throw new UnexpectedValueException('Key data must be for a public key'); + } + + if (!isset($jwk['crv'])) { + throw new UnexpectedValueException('crv not set'); + } + + if (empty(self::OKP_SUBTYPES[$jwk['crv']])) { + throw new DomainException('Unrecognised or unsupported OKP key subtype'); + } + + if (empty($jwk['x'])) { + throw new UnexpectedValueException('x not set'); + } + + // This library works internally with EdDSA keys (Ed25519) encoded in standard base64. + $publicKey = JWT::convertBase64urlToBase64($jwk['x']); + return new Key($publicKey, $jwk['alg']); + case 'oct': + if (!isset($jwk['k'])) { + throw new UnexpectedValueException('k not set'); + } + + return new Key(JWT::urlsafeB64Decode($jwk['k']), $jwk['alg']); + default: + break; + } + + return null; + } + + /** + * Converts the EC JWK values to pem format. + * + * @param string $crv The EC curve (only P-256 & P-384 is supported) + * @param string $x The EC x-coordinate + * @param string $y The EC y-coordinate + * + * @return string + */ + private static function createPemFromCrvAndXYCoordinates(string $crv, string $x, string $y): string + { + $pem = + self::encodeDER( + self::ASN1_SEQUENCE, + self::encodeDER( + self::ASN1_SEQUENCE, + self::encodeDER( + self::ASN1_OBJECT_IDENTIFIER, + self::encodeOID(self::OID) + ) + . self::encodeDER( + self::ASN1_OBJECT_IDENTIFIER, + self::encodeOID(self::EC_CURVES[$crv]) + ) + ) . + self::encodeDER( + self::ASN1_BIT_STRING, + \chr(0x00) . \chr(0x04) + . JWT::urlsafeB64Decode($x) + . JWT::urlsafeB64Decode($y) + ) + ); + + return \sprintf( + "-----BEGIN PUBLIC KEY-----\n%s\n-----END PUBLIC KEY-----\n", + wordwrap(base64_encode($pem), 64, "\n", true) + ); + } + + /** + * Create a public key represented in PEM format from RSA modulus and exponent information + * + * @param string $n The RSA modulus encoded in Base64 + * @param string $e The RSA exponent encoded in Base64 + * + * @return string The RSA public key represented in PEM format + * + * @uses encodeLength + */ + private static function createPemFromModulusAndExponent( + string $n, + string $e + ): string { + $mod = JWT::urlsafeB64Decode($n); + $exp = JWT::urlsafeB64Decode($e); + + $modulus = \pack('Ca*a*', 2, self::encodeLength(\strlen($mod)), $mod); + $publicExponent = \pack('Ca*a*', 2, self::encodeLength(\strlen($exp)), $exp); + + $rsaPublicKey = \pack( + 'Ca*a*a*', + 48, + self::encodeLength(\strlen($modulus) + \strlen($publicExponent)), + $modulus, + $publicExponent + ); + + // sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption. + $rsaOID = \pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA + $rsaPublicKey = \chr(0) . $rsaPublicKey; + $rsaPublicKey = \chr(3) . self::encodeLength(\strlen($rsaPublicKey)) . $rsaPublicKey; + + $rsaPublicKey = \pack( + 'Ca*a*', + 48, + self::encodeLength(\strlen($rsaOID . $rsaPublicKey)), + $rsaOID . $rsaPublicKey + ); + + return "-----BEGIN PUBLIC KEY-----\r\n" . + \chunk_split(\base64_encode($rsaPublicKey), 64) . + '-----END PUBLIC KEY-----'; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. + * + * @param int $length + * @return string + */ + private static function encodeLength(int $length): string + { + if ($length <= 0x7F) { + return \chr($length); + } + + $temp = \ltrim(\pack('N', $length), \chr(0)); + + return \pack('Ca*', 0x80 | \strlen($temp), $temp); + } + + /** + * Encodes a value into a DER object. + * Also defined in Firebase\JWT\JWT + * + * @param int $type DER tag + * @param string $value the value to encode + * @return string the encoded object + */ + private static function encodeDER(int $type, string $value): string + { + $tag_header = 0; + if ($type === self::ASN1_SEQUENCE) { + $tag_header |= 0x20; + } + + // Type + $der = \chr($tag_header | $type); + + // Length + $der .= \chr(\strlen($value)); + + return $der . $value; + } + + /** + * Encodes a string into a DER-encoded OID. + * + * @param string $oid the OID string + * @return string the binary DER-encoded OID + */ + private static function encodeOID(string $oid): string + { + $octets = explode('.', $oid); + + // Get the first octet + $first = (int) array_shift($octets); + $second = (int) array_shift($octets); + $oid = \chr($first * 40 + $second); + + // Iterate over subsequent octets + foreach ($octets as $octet) { + if ($octet == 0) { + $oid .= \chr(0x00); + continue; + } + $bin = ''; + + while ($octet) { + $bin .= \chr(0x80 | ($octet & 0x7f)); + $octet >>= 7; + } + $bin[0] = $bin[0] & \chr(0x7f); + + // Convert to big endian if necessary + if (pack('V', 65534) == pack('L', 65534)) { + $oid .= strrev($bin); + } else { + $oid .= $bin; + } + } + + return $oid; + } +} diff --git a/vendor/firebase/php-jwt/src/JWT.php b/vendor/firebase/php-jwt/src/JWT.php new file mode 100644 index 0000000..833a415 --- /dev/null +++ b/vendor/firebase/php-jwt/src/JWT.php @@ -0,0 +1,667 @@ + + * @author Anant Narayanan + * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD + * @link https://github.com/firebase/php-jwt + */ +class JWT +{ + private const ASN1_INTEGER = 0x02; + private const ASN1_SEQUENCE = 0x10; + private const ASN1_BIT_STRING = 0x03; + + /** + * When checking nbf, iat or expiration times, + * we want to provide some extra leeway time to + * account for clock skew. + * + * @var int + */ + public static $leeway = 0; + + /** + * Allow the current timestamp to be specified. + * Useful for fixing a value within unit testing. + * Will default to PHP time() value if null. + * + * @var ?int + */ + public static $timestamp = null; + + /** + * @var array + */ + public static $supported_algs = [ + 'ES384' => ['openssl', 'SHA384'], + 'ES256' => ['openssl', 'SHA256'], + 'ES256K' => ['openssl', 'SHA256'], + 'HS256' => ['hash_hmac', 'SHA256'], + 'HS384' => ['hash_hmac', 'SHA384'], + 'HS512' => ['hash_hmac', 'SHA512'], + 'RS256' => ['openssl', 'SHA256'], + 'RS384' => ['openssl', 'SHA384'], + 'RS512' => ['openssl', 'SHA512'], + 'EdDSA' => ['sodium_crypto', 'EdDSA'], + ]; + + /** + * Decodes a JWT string into a PHP object. + * + * @param string $jwt The JWT + * @param Key|ArrayAccess|array $keyOrKeyArray The Key or associative array of key IDs + * (kid) to Key objects. + * If the algorithm used is asymmetric, this is + * the public key. + * Each Key object contains an algorithm and + * matching key. + * Supported algorithms are 'ES384','ES256', + * 'HS256', 'HS384', 'HS512', 'RS256', 'RS384' + * and 'RS512'. + * @param stdClass $headers Optional. Populates stdClass with headers. + * + * @return stdClass The JWT's payload as a PHP object + * + * @throws InvalidArgumentException Provided key/key-array was empty or malformed + * @throws DomainException Provided JWT is malformed + * @throws UnexpectedValueException Provided JWT was invalid + * @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed + * @throws BeforeValidException Provided JWT is trying to be used before it's eligible as defined by 'nbf' + * @throws BeforeValidException Provided JWT is trying to be used before it's been created as defined by 'iat' + * @throws ExpiredException Provided JWT has since expired, as defined by the 'exp' claim + * + * @uses jsonDecode + * @uses urlsafeB64Decode + */ + public static function decode( + string $jwt, + $keyOrKeyArray, + ?stdClass &$headers = null + ): stdClass { + // Validate JWT + $timestamp = \is_null(static::$timestamp) ? \time() : static::$timestamp; + + if (empty($keyOrKeyArray)) { + throw new InvalidArgumentException('Key may not be empty'); + } + $tks = \explode('.', $jwt); + if (\count($tks) !== 3) { + throw new UnexpectedValueException('Wrong number of segments'); + } + list($headb64, $bodyb64, $cryptob64) = $tks; + $headerRaw = static::urlsafeB64Decode($headb64); + if (null === ($header = static::jsonDecode($headerRaw))) { + throw new UnexpectedValueException('Invalid header encoding'); + } + if ($headers !== null) { + $headers = $header; + } + $payloadRaw = static::urlsafeB64Decode($bodyb64); + if (null === ($payload = static::jsonDecode($payloadRaw))) { + throw new UnexpectedValueException('Invalid claims encoding'); + } + if (\is_array($payload)) { + // prevent PHP Fatal Error in edge-cases when payload is empty array + $payload = (object) $payload; + } + if (!$payload instanceof stdClass) { + throw new UnexpectedValueException('Payload must be a JSON object'); + } + $sig = static::urlsafeB64Decode($cryptob64); + if (empty($header->alg)) { + throw new UnexpectedValueException('Empty algorithm'); + } + if (empty(static::$supported_algs[$header->alg])) { + throw new UnexpectedValueException('Algorithm not supported'); + } + + $key = self::getKey($keyOrKeyArray, property_exists($header, 'kid') ? $header->kid : null); + + // Check the algorithm + if (!self::constantTimeEquals($key->getAlgorithm(), $header->alg)) { + // See issue #351 + throw new UnexpectedValueException('Incorrect key for this algorithm'); + } + if (\in_array($header->alg, ['ES256', 'ES256K', 'ES384'], true)) { + // OpenSSL expects an ASN.1 DER sequence for ES256/ES256K/ES384 signatures + $sig = self::signatureToDER($sig); + } + if (!self::verify("{$headb64}.{$bodyb64}", $sig, $key->getKeyMaterial(), $header->alg)) { + throw new SignatureInvalidException('Signature verification failed'); + } + + // Check the nbf if it is defined. This is the time that the + // token can actually be used. If it's not yet that time, abort. + if (isset($payload->nbf) && floor($payload->nbf) > ($timestamp + static::$leeway)) { + $ex = new BeforeValidException( + 'Cannot handle token with nbf prior to ' . \date(DateTime::ISO8601, (int) floor($payload->nbf)) + ); + $ex->setPayload($payload); + throw $ex; + } + + // Check that this token has been created before 'now'. This prevents + // using tokens that have been created for later use (and haven't + // correctly used the nbf claim). + if (!isset($payload->nbf) && isset($payload->iat) && floor($payload->iat) > ($timestamp + static::$leeway)) { + $ex = new BeforeValidException( + 'Cannot handle token with iat prior to ' . \date(DateTime::ISO8601, (int) floor($payload->iat)) + ); + $ex->setPayload($payload); + throw $ex; + } + + // Check if this token has expired. + if (isset($payload->exp) && ($timestamp - static::$leeway) >= $payload->exp) { + $ex = new ExpiredException('Expired token'); + $ex->setPayload($payload); + throw $ex; + } + + return $payload; + } + + /** + * Converts and signs a PHP array into a JWT string. + * + * @param array $payload PHP array + * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $key The secret key. + * @param string $alg Supported algorithms are 'ES384','ES256', 'ES256K', 'HS256', + * 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512' + * @param string $keyId + * @param array $head An array with header elements to attach + * + * @return string A signed JWT + * + * @uses jsonEncode + * @uses urlsafeB64Encode + */ + public static function encode( + array $payload, + $key, + string $alg, + ?string $keyId = null, + ?array $head = null + ): string { + $header = ['typ' => 'JWT']; + if (isset($head)) { + $header = \array_merge($header, $head); + } + $header['alg'] = $alg; + if ($keyId !== null) { + $header['kid'] = $keyId; + } + $segments = []; + $segments[] = static::urlsafeB64Encode((string) static::jsonEncode($header)); + $segments[] = static::urlsafeB64Encode((string) static::jsonEncode($payload)); + $signing_input = \implode('.', $segments); + + $signature = static::sign($signing_input, $key, $alg); + $segments[] = static::urlsafeB64Encode($signature); + + return \implode('.', $segments); + } + + /** + * Sign a string with a given key and algorithm. + * + * @param string $msg The message to sign + * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $key The secret key. + * @param string $alg Supported algorithms are 'EdDSA', 'ES384', 'ES256', 'ES256K', 'HS256', + * 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512' + * + * @return string An encrypted message + * + * @throws DomainException Unsupported algorithm or bad key was specified + */ + public static function sign( + string $msg, + $key, + string $alg + ): string { + if (empty(static::$supported_algs[$alg])) { + throw new DomainException('Algorithm not supported'); + } + list($function, $algorithm) = static::$supported_algs[$alg]; + switch ($function) { + case 'hash_hmac': + if (!\is_string($key)) { + throw new InvalidArgumentException('key must be a string when using hmac'); + } + return \hash_hmac($algorithm, $msg, $key, true); + case 'openssl': + $signature = ''; + if (!\is_resource($key) && !openssl_pkey_get_private($key)) { + throw new DomainException('OpenSSL unable to validate key'); + } + $success = \openssl_sign($msg, $signature, $key, $algorithm); // @phpstan-ignore-line + if (!$success) { + throw new DomainException('OpenSSL unable to sign data'); + } + if ($alg === 'ES256' || $alg === 'ES256K') { + $signature = self::signatureFromDER($signature, 256); + } elseif ($alg === 'ES384') { + $signature = self::signatureFromDER($signature, 384); + } + return $signature; + case 'sodium_crypto': + if (!\function_exists('sodium_crypto_sign_detached')) { + throw new DomainException('libsodium is not available'); + } + if (!\is_string($key)) { + throw new InvalidArgumentException('key must be a string when using EdDSA'); + } + try { + // The last non-empty line is used as the key. + $lines = array_filter(explode("\n", $key)); + $key = base64_decode((string) end($lines)); + if (\strlen($key) === 0) { + throw new DomainException('Key cannot be empty string'); + } + return sodium_crypto_sign_detached($msg, $key); + } catch (Exception $e) { + throw new DomainException($e->getMessage(), 0, $e); + } + } + + throw new DomainException('Algorithm not supported'); + } + + /** + * Verify a signature with the message, key and method. Not all methods + * are symmetric, so we must have a separate verify and sign method. + * + * @param string $msg The original message (header and body) + * @param string $signature The original signature + * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial For Ed*, ES*, HS*, a string key works. for RS*, must be an instance of OpenSSLAsymmetricKey + * @param string $alg The algorithm + * + * @return bool + * + * @throws DomainException Invalid Algorithm, bad key, or OpenSSL failure + */ + private static function verify( + string $msg, + string $signature, + $keyMaterial, + string $alg + ): bool { + if (empty(static::$supported_algs[$alg])) { + throw new DomainException('Algorithm not supported'); + } + + list($function, $algorithm) = static::$supported_algs[$alg]; + switch ($function) { + case 'openssl': + $success = \openssl_verify($msg, $signature, $keyMaterial, $algorithm); // @phpstan-ignore-line + if ($success === 1) { + return true; + } + if ($success === 0) { + return false; + } + // returns 1 on success, 0 on failure, -1 on error. + throw new DomainException( + 'OpenSSL error: ' . \openssl_error_string() + ); + case 'sodium_crypto': + if (!\function_exists('sodium_crypto_sign_verify_detached')) { + throw new DomainException('libsodium is not available'); + } + if (!\is_string($keyMaterial)) { + throw new InvalidArgumentException('key must be a string when using EdDSA'); + } + try { + // The last non-empty line is used as the key. + $lines = array_filter(explode("\n", $keyMaterial)); + $key = base64_decode((string) end($lines)); + if (\strlen($key) === 0) { + throw new DomainException('Key cannot be empty string'); + } + if (\strlen($signature) === 0) { + throw new DomainException('Signature cannot be empty string'); + } + return sodium_crypto_sign_verify_detached($signature, $msg, $key); + } catch (Exception $e) { + throw new DomainException($e->getMessage(), 0, $e); + } + case 'hash_hmac': + default: + if (!\is_string($keyMaterial)) { + throw new InvalidArgumentException('key must be a string when using hmac'); + } + $hash = \hash_hmac($algorithm, $msg, $keyMaterial, true); + return self::constantTimeEquals($hash, $signature); + } + } + + /** + * Decode a JSON string into a PHP object. + * + * @param string $input JSON string + * + * @return mixed The decoded JSON string + * + * @throws DomainException Provided string was invalid JSON + */ + public static function jsonDecode(string $input) + { + $obj = \json_decode($input, false, 512, JSON_BIGINT_AS_STRING); + + if ($errno = \json_last_error()) { + self::handleJsonError($errno); + } elseif ($obj === null && $input !== 'null') { + throw new DomainException('Null result with non-null input'); + } + return $obj; + } + + /** + * Encode a PHP array into a JSON string. + * + * @param array $input A PHP array + * + * @return string JSON representation of the PHP array + * + * @throws DomainException Provided object could not be encoded to valid JSON + */ + public static function jsonEncode(array $input): string + { + $json = \json_encode($input, \JSON_UNESCAPED_SLASHES); + if ($errno = \json_last_error()) { + self::handleJsonError($errno); + } elseif ($json === 'null') { + throw new DomainException('Null result with non-null input'); + } + if ($json === false) { + throw new DomainException('Provided object could not be encoded to valid JSON'); + } + return $json; + } + + /** + * Decode a string with URL-safe Base64. + * + * @param string $input A Base64 encoded string + * + * @return string A decoded string + * + * @throws InvalidArgumentException invalid base64 characters + */ + public static function urlsafeB64Decode(string $input): string + { + return \base64_decode(self::convertBase64UrlToBase64($input)); + } + + /** + * Convert a string in the base64url (URL-safe Base64) encoding to standard base64. + * + * @param string $input A Base64 encoded string with URL-safe characters (-_ and no padding) + * + * @return string A Base64 encoded string with standard characters (+/) and padding (=), when + * needed. + * + * @see https://www.rfc-editor.org/rfc/rfc4648 + */ + public static function convertBase64UrlToBase64(string $input): string + { + $remainder = \strlen($input) % 4; + if ($remainder) { + $padlen = 4 - $remainder; + $input .= \str_repeat('=', $padlen); + } + return \strtr($input, '-_', '+/'); + } + + /** + * Encode a string with URL-safe Base64. + * + * @param string $input The string you want encoded + * + * @return string The base64 encode of what you passed in + */ + public static function urlsafeB64Encode(string $input): string + { + return \str_replace('=', '', \strtr(\base64_encode($input), '+/', '-_')); + } + + + /** + * Determine if an algorithm has been provided for each Key + * + * @param Key|ArrayAccess|array $keyOrKeyArray + * @param string|null $kid + * + * @throws UnexpectedValueException + * + * @return Key + */ + private static function getKey( + $keyOrKeyArray, + ?string $kid + ): Key { + if ($keyOrKeyArray instanceof Key) { + return $keyOrKeyArray; + } + + if (empty($kid) && $kid !== '0') { + throw new UnexpectedValueException('"kid" empty, unable to lookup correct key'); + } + + if ($keyOrKeyArray instanceof CachedKeySet) { + // Skip "isset" check, as this will automatically refresh if not set + return $keyOrKeyArray[$kid]; + } + + if (!isset($keyOrKeyArray[$kid])) { + throw new UnexpectedValueException('"kid" invalid, unable to lookup correct key'); + } + + return $keyOrKeyArray[$kid]; + } + + /** + * @param string $left The string of known length to compare against + * @param string $right The user-supplied string + * @return bool + */ + public static function constantTimeEquals(string $left, string $right): bool + { + if (\function_exists('hash_equals')) { + return \hash_equals($left, $right); + } + $len = \min(self::safeStrlen($left), self::safeStrlen($right)); + + $status = 0; + for ($i = 0; $i < $len; $i++) { + $status |= (\ord($left[$i]) ^ \ord($right[$i])); + } + $status |= (self::safeStrlen($left) ^ self::safeStrlen($right)); + + return ($status === 0); + } + + /** + * Helper method to create a JSON error. + * + * @param int $errno An error number from json_last_error() + * + * @throws DomainException + * + * @return void + */ + private static function handleJsonError(int $errno): void + { + $messages = [ + JSON_ERROR_DEPTH => 'Maximum stack depth exceeded', + JSON_ERROR_STATE_MISMATCH => 'Invalid or malformed JSON', + JSON_ERROR_CTRL_CHAR => 'Unexpected control character found', + JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON', + JSON_ERROR_UTF8 => 'Malformed UTF-8 characters' //PHP >= 5.3.3 + ]; + throw new DomainException( + isset($messages[$errno]) + ? $messages[$errno] + : 'Unknown JSON error: ' . $errno + ); + } + + /** + * Get the number of bytes in cryptographic strings. + * + * @param string $str + * + * @return int + */ + private static function safeStrlen(string $str): int + { + if (\function_exists('mb_strlen')) { + return \mb_strlen($str, '8bit'); + } + return \strlen($str); + } + + /** + * Convert an ECDSA signature to an ASN.1 DER sequence + * + * @param string $sig The ECDSA signature to convert + * @return string The encoded DER object + */ + private static function signatureToDER(string $sig): string + { + // Separate the signature into r-value and s-value + $length = max(1, (int) (\strlen($sig) / 2)); + list($r, $s) = \str_split($sig, $length); + + // Trim leading zeros + $r = \ltrim($r, "\x00"); + $s = \ltrim($s, "\x00"); + + // Convert r-value and s-value from unsigned big-endian integers to + // signed two's complement + if (\ord($r[0]) > 0x7f) { + $r = "\x00" . $r; + } + if (\ord($s[0]) > 0x7f) { + $s = "\x00" . $s; + } + + return self::encodeDER( + self::ASN1_SEQUENCE, + self::encodeDER(self::ASN1_INTEGER, $r) . + self::encodeDER(self::ASN1_INTEGER, $s) + ); + } + + /** + * Encodes a value into a DER object. + * + * @param int $type DER tag + * @param string $value the value to encode + * + * @return string the encoded object + */ + private static function encodeDER(int $type, string $value): string + { + $tag_header = 0; + if ($type === self::ASN1_SEQUENCE) { + $tag_header |= 0x20; + } + + // Type + $der = \chr($tag_header | $type); + + // Length + $der .= \chr(\strlen($value)); + + return $der . $value; + } + + /** + * Encodes signature from a DER object. + * + * @param string $der binary signature in DER format + * @param int $keySize the number of bits in the key + * + * @return string the signature + */ + private static function signatureFromDER(string $der, int $keySize): string + { + // OpenSSL returns the ECDSA signatures as a binary ASN.1 DER SEQUENCE + list($offset, $_) = self::readDER($der); + list($offset, $r) = self::readDER($der, $offset); + list($offset, $s) = self::readDER($der, $offset); + + // Convert r-value and s-value from signed two's compliment to unsigned + // big-endian integers + $r = \ltrim($r, "\x00"); + $s = \ltrim($s, "\x00"); + + // Pad out r and s so that they are $keySize bits long + $r = \str_pad($r, $keySize / 8, "\x00", STR_PAD_LEFT); + $s = \str_pad($s, $keySize / 8, "\x00", STR_PAD_LEFT); + + return $r . $s; + } + + /** + * Reads binary DER-encoded data and decodes into a single object + * + * @param string $der the binary data in DER format + * @param int $offset the offset of the data stream containing the object + * to decode + * + * @return array{int, string|null} the new offset and the decoded object + */ + private static function readDER(string $der, int $offset = 0): array + { + $pos = $offset; + $size = \strlen($der); + $constructed = (\ord($der[$pos]) >> 5) & 0x01; + $type = \ord($der[$pos++]) & 0x1f; + + // Length + $len = \ord($der[$pos++]); + if ($len & 0x80) { + $n = $len & 0x1f; + $len = 0; + while ($n-- && $pos < $size) { + $len = ($len << 8) | \ord($der[$pos++]); + } + } + + // Value + if ($type === self::ASN1_BIT_STRING) { + $pos++; // Skip the first contents octet (padding indicator) + $data = \substr($der, $pos, $len - 1); + $pos += $len - 1; + } elseif (!$constructed) { + $data = \substr($der, $pos, $len); + $pos += $len; + } else { + $data = null; + } + + return [$pos, $data]; + } +} diff --git a/vendor/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php b/vendor/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php new file mode 100644 index 0000000..7933ed6 --- /dev/null +++ b/vendor/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php @@ -0,0 +1,20 @@ +algorithm; + } + + /** + * @return string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate + */ + public function getKeyMaterial() + { + return $this->keyMaterial; + } +} diff --git a/vendor/firebase/php-jwt/src/SignatureInvalidException.php b/vendor/firebase/php-jwt/src/SignatureInvalidException.php new file mode 100644 index 0000000..d35dee9 --- /dev/null +++ b/vendor/firebase/php-jwt/src/SignatureInvalidException.php @@ -0,0 +1,7 @@ +Reference Docs + +## Description + +This is Google's officially supported PHP client library for using OAuth 2.0 +authorization and authentication with Google APIs. + +### Installing via Composer + +The recommended way to install the google auth library is through +[Composer](http://getcomposer.org). + +```bash +# Install Composer +curl -sS https://getcomposer.org/installer | php +``` + +Next, run the Composer command to install the latest stable version: + +```bash +composer.phar require google/auth +``` + +## Application Default Credentials + +This library provides an implementation of +[Application Default Credentials (ADC)][application default credentials] for PHP. + +Application Default Credentials provides a simple way to get authorization +credentials for use in calling Google APIs, and is +the recommended approach to authorize calls to Cloud APIs. + +**Important**: If you accept a credential configuration (credential JSON/File/Stream) from an +external source for authentication to Google Cloud Platform, you must validate it before providing +it to any Google API or library. Providing an unvalidated credential configuration to Google APIs +can compromise the security of your systems and data. For more information, refer to +[Validate credential configurations from external sources][externally-sourced-credentials]. + +[externally-sourced-credentials]: https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + +### Set up ADC + +To use ADC, you must set it up by providing credentials. +How you set up ADC depends on the environment where your code is running, +and whether you are running code in a test or production environment. + +For more information, see [Set up Application Default Credentials][set-up-adc]. + +### Enable the API you want to use + +Before making your API call, you must be sure the API you're calling has been +enabled. Go to **APIs & Auth** > **APIs** in the +[Google Developers Console][developer console] and enable the APIs you'd like to +call. For the example below, you must enable the `Drive API`. + +### Call the APIs + +As long as you update the environment variable below to point to *your* JSON +credentials file, the following code should output a list of your Drive files. + +```php +use Google\Auth\ApplicationDefaultCredentials; +use GuzzleHttp\Client; +use GuzzleHttp\HandlerStack; + +// specify the path to your application credentials +putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/credentials.json'); + +// define the scopes for your API call +$scopes = ['https://www.googleapis.com/auth/drive.readonly']; + +// create middleware +$middleware = ApplicationDefaultCredentials::getMiddleware($scopes); +$stack = HandlerStack::create(); +$stack->push($middleware); + +// create the HTTP client +$client = new Client([ + 'handler' => $stack, + 'base_uri' => 'https://www.googleapis.com', + 'auth' => 'google_auth' // authorize all requests +]); + +// make the request +$response = $client->get('drive/v2/files'); + +// show the result! +print_r((string) $response->getBody()); +``` + +##### Guzzle 5 Compatibility + +If you are using [Guzzle 5][Guzzle 5], replace the `create middleware` and +`create the HTTP Client` steps with the following: + +```php +// create the HTTP client +$client = new Client([ + 'base_url' => 'https://www.googleapis.com', + 'auth' => 'google_auth' // authorize all requests +]); + +// create subscriber +$subscriber = ApplicationDefaultCredentials::getSubscriber($scopes); +$client->getEmitter()->attach($subscriber); +``` + +#### Call using an ID Token +If your application is running behind Cloud Run, or using Cloud Identity-Aware +Proxy (IAP), you will need to fetch an ID token to access your application. For +this, use the static method `getIdTokenMiddleware` on +`ApplicationDefaultCredentials`. + +```php +use Google\Auth\ApplicationDefaultCredentials; +use GuzzleHttp\Client; +use GuzzleHttp\HandlerStack; + +// specify the path to your application credentials +putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/credentials.json'); + +// Provide the ID token audience. This can be a Client ID associated with an IAP application, +// Or the URL associated with a CloudRun App +// $targetAudience = 'IAP_CLIENT_ID.apps.googleusercontent.com'; +// $targetAudience = 'https://service-1234-uc.a.run.app'; +$targetAudience = 'YOUR_ID_TOKEN_AUDIENCE'; + +// create middleware +$middleware = ApplicationDefaultCredentials::getIdTokenMiddleware($targetAudience); +$stack = HandlerStack::create(); +$stack->push($middleware); + +// create the HTTP client +$client = new Client([ + 'handler' => $stack, + 'auth' => 'google_auth', + // Cloud Run, IAP, or custom resource URL + 'base_uri' => 'https://YOUR_PROTECTED_RESOURCE', +]); + +// make the request +$response = $client->get('/'); + +// show the result! +print_r((string) $response->getBody()); +``` + +For invoking Cloud Run services, your service account will need the +[`Cloud Run Invoker`](https://cloud.google.com/run/docs/authenticating/service-to-service) +IAM permission. + +For invoking Cloud Identity-Aware Proxy, you will need to pass the Client ID +used when you set up your protected resource as the target audience. See how to +[secure your IAP app with signed headers](https://cloud.google.com/iap/docs/signed-headers-howto). + +#### Call using a specific JSON key +If you want to use a specific JSON key instead of using `GOOGLE_APPLICATION_CREDENTIALS` environment variable, you can + do this: + +```php +use Google\Auth\CredentialsLoader; +use Google\Auth\Middleware\AuthTokenMiddleware; +use GuzzleHttp\Client; +use GuzzleHttp\HandlerStack; + +// Define the Google Application Credentials array +$jsonKey = ['key' => 'value']; + +// define the scopes for your API call +$scopes = ['https://www.googleapis.com/auth/drive.readonly']; + +// Load credentials from JSON containing service account credentials. +$creds = new ServiceAccountCredentials($scopes, $jsonKey), + +// For other credentials types, create those classes explicitly using the +// "type" field in the JSON key, for example: +$creds = match ($jsonKey['type']) { + 'service_account' => new ServiceAccountCredentials($scope, $jsonKey), + 'authorized_user' => new UserRefreshCredentials($scope, $jsonKey), + default => throw new InvalidArgumentException('This application only supports service account and user account credentials'), +}; + +// optional caching +$creds = new FetchAuthTokenCache($creds, $cacheConfig, $cache); + +// create middleware +$middleware = new AuthTokenMiddleware($creds); +$stack = HandlerStack::create(); +$stack->push($middleware); + +// create the HTTP client +$client = new Client([ + 'handler' => $stack, + 'base_uri' => 'https://www.googleapis.com', + 'auth' => 'google_auth' // authorize all requests +]); + +// make the request +$response = $client->get('drive/v2/files'); + +// show the result! +print_r((string) $response->getBody()); + +``` + +#### Call using Proxy-Authorization Header +If your application is behind a proxy such as [Google Cloud IAP][iap-proxy-header], +and your application occupies the `Authorization` request header, +you can include the ID token in a `Proxy-Authorization: Bearer` +header instead. If a valid ID token is found in a `Proxy-Authorization` header, +IAP authorizes the request with it. After authorizing the request, IAP passes +the Authorization header to your application without processing the content. +For this, use the static method `getProxyIdTokenMiddleware` on +`ApplicationDefaultCredentials`. + +```php +use Google\Auth\ApplicationDefaultCredentials; +use GuzzleHttp\Client; +use GuzzleHttp\HandlerStack; + +// specify the path to your application credentials +putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/credentials.json'); + +// Provide the ID token audience. This can be a Client ID associated with an IAP application +// $targetAudience = 'IAP_CLIENT_ID.apps.googleusercontent.com'; +$targetAudience = 'YOUR_ID_TOKEN_AUDIENCE'; + +// create middleware +$middleware = ApplicationDefaultCredentials::getProxyIdTokenMiddleware($targetAudience); +$stack = HandlerStack::create(); +$stack->push($middleware); + +// create the HTTP client +$client = new Client([ + 'handler' => $stack, + 'auth' => ['username', 'pass'], // auth option handled by your application + 'proxy_auth' => 'google_auth', +]); + +// make the request +$response = $client->get('/'); + +// show the result! +print_r((string) $response->getBody()); +``` + +[iap-proxy-header]: https://cloud.google.com/iap/docs/authentication-howto#authenticating_from_proxy-authorization_header + +#### External credentials (Workload identity federation) + +Using workload identity federation, your application can access Google Cloud resources from Amazon Web Services (AWS), +Microsoft Azure or any identity provider that supports OpenID Connect (OIDC). + +Traditionally, applications running outside Google Cloud have used service account keys to access Google Cloud +resources. Using identity federation, you can allow your workload to impersonate a service account. This lets you access +Google Cloud resources directly, eliminating the maintenance and security burden associated with service account keys. + +Follow the detailed instructions on how to +[Configure Workload Identity Federation](https://cloud.google.com/iam/docs/workload-identity-federation-with-other-clouds). + +#### Verifying JWTs + +If you are [using Google ID tokens to authenticate users][google-id-tokens], use +the `Google\Auth\AccessToken` class to verify the ID token: + +```php +use Google\Auth\AccessToken; + +$auth = new AccessToken(); +$auth->verify($idToken); +``` + +If your app is running behind [Google Identity-Aware Proxy][iap-id-tokens] +(IAP), you can verify the ID token coming from the IAP server by pointing to the +appropriate certificate URL for IAP. This is because IAP signs the ID +tokens with a different key than the Google Identity service: + +```php +use Google\Auth\AccessToken; + +$auth = new AccessToken(); +$auth->verify($idToken, [ + 'certsLocation' => AccessToken::IAP_CERT_URL +]); +``` + +[google-id-tokens]: https://developers.google.com/identity/sign-in/web/backend-auth +[iap-id-tokens]: https://cloud.google.com/iap/docs/signed-headers-howto + +## Caching +Caching is enabled by passing a PSR-6 `CacheItemPoolInterface` +instance to the constructor when instantiating the credentials. + +We offer some caching classes out of the box under the `Google\Auth\Cache` namespace. + +```php +use Google\Auth\ApplicationDefaultCredentials; +use Google\Auth\Cache\MemoryCacheItemPool; + +// Cache Instance +$memoryCache = new MemoryCacheItemPool; + +// Get the credentials +// From here, the credentials will cache the access token +$middleware = ApplicationDefaultCredentials::getCredentials($scope, cache: $memoryCache); +``` + +### FileSystemCacheItemPool Cache +The `FileSystemCacheItemPool` class is a `PSR-6` compliant cache that stores its +serialized objects on disk, caching data between processes and making it possible +to use data between different requests. + +```php +use Google\Auth\Cache\FileSystemCacheItemPool; +use Google\Auth\ApplicationDefaultCredentials; + +// Create a Cache pool instance +$cache = new FileSystemCacheItemPool(__DIR__ . '/cache'); + +// Pass your Cache to the Auth Library +$credentials = ApplicationDefaultCredentials::getCredentials($scope, cache: $cache); + +// This token will be cached and be able to be used for the next request +$token = $credentials->fetchAuthToken(); +``` + +### Integrating with a third party cache +You can use a third party that follows the `PSR-6` interface of your choice. + +```php +// run "composer require symfony/cache" +use Google\Auth\ApplicationDefaultCredentials; +use Symfony\Component\Cache\Adapter\FilesystemAdapter; + +// Create the cache instance +$filesystemCache = new FilesystemAdapter(); + +// Create Get the credentials +$credentials = ApplicationDefaultCredentials::getCredentials($targetAudience, cache: $filesystemCache); +``` + +## License + +This library is licensed under Apache 2.0. Full license text is +available in [COPYING][copying]. + +## Contributing + +See [CONTRIBUTING][contributing]. + +## Support + +Please +[report bugs at the project on Github](https://github.com/google/google-auth-library-php/issues). Don't +hesitate to +[ask questions](http://stackoverflow.com/questions/tagged/google-auth-library-php) +about the client or APIs on [StackOverflow](http://stackoverflow.com). + +[google-apis-php-client]: https://github.com/google/google-api-php-client +[application default credentials]: https://cloud.google.com/docs/authentication/application-default-credentials +[contributing]: https://github.com/google/google-auth-library-php/tree/main/.github/CONTRIBUTING.md +[copying]: https://github.com/google/google-auth-library-php/tree/main/COPYING +[Guzzle]: https://github.com/guzzle/guzzle +[Guzzle 5]: http://docs.guzzlephp.org/en/5.3 +[developer console]: https://console.developers.google.com +[set-up-adc]: https://cloud.google.com/docs/authentication/provide-credentials-adc diff --git a/vendor/google/auth/SECURITY.md b/vendor/google/auth/SECURITY.md new file mode 100644 index 0000000..8b58ae9 --- /dev/null +++ b/vendor/google/auth/SECURITY.md @@ -0,0 +1,7 @@ +# Security Policy + +To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). + +The Google Security Team will respond within 5 working days of your report on g.co/vulnz. + +We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. diff --git a/vendor/google/auth/VERSION b/vendor/google/auth/VERSION new file mode 100644 index 0000000..5525f03 --- /dev/null +++ b/vendor/google/auth/VERSION @@ -0,0 +1 @@ +1.48.1 diff --git a/vendor/google/auth/composer.json b/vendor/google/auth/composer.json new file mode 100644 index 0000000..127fdce --- /dev/null +++ b/vendor/google/auth/composer.json @@ -0,0 +1,44 @@ +{ + "name": "google/auth", + "type": "library", + "description": "Google Auth Library for PHP", + "keywords": ["google", "oauth2", "authentication"], + "homepage": "https://github.com/google/google-auth-library-php", + "license": "Apache-2.0", + "support": { + "docs": "https://cloud.google.com/php/docs/reference/auth/latest" + }, + "require": { + "php": "^8.1", + "firebase/php-jwt": "^6.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.4.5", + "psr/http-message": "^1.1||^2.0", + "psr/cache": "^2.0||^3.0", + "psr/log": "^3.0" + }, + "require-dev": { + "guzzlehttp/promises": "^2.0", + "squizlabs/php_codesniffer": "^4.0", + "phpunit/phpunit": "^9.6", + "phpspec/prophecy-phpunit": "^2.1", + "sebastian/comparator": ">=1.2.3", + "phpseclib/phpseclib": "^3.0.35", + "kelvinmo/simplejwt": "0.7.1", + "webmozart/assert": "^1.11", + "symfony/process": "^6.0||^7.0" + }, + "suggest": { + "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." + }, + "autoload": { + "psr-4": { + "Google\\Auth\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Google\\Auth\\Tests\\": "tests" + } + } +} diff --git a/vendor/google/auth/src/AccessToken.php b/vendor/google/auth/src/AccessToken.php new file mode 100644 index 0000000..9e27b69 --- /dev/null +++ b/vendor/google/auth/src/AccessToken.php @@ -0,0 +1,473 @@ +httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + $this->cache = $cache ?: new MemoryCacheItemPool(); + } + + /** + * 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 string $token The JSON Web Token to be verified. + * @param array $options [optional] { + * Configuration options. + * @type string $audience The indended recipient of the token. + * @type string $issuer The intended issuer of the token. + * @type string $cacheKey The cache key of the cached certs. Defaults to + * the sha1 of $certsLocation if provided, otherwise is set to + * "federated_signon_certs_v3". + * @type string $certsLocation The location (remote or local) from which + * to retrieve certificates, if not cached. This value should only be + * provided in limited circumstances in which you are sure of the + * behavior. + * @type bool $throwException Whether the function should throw an + * exception if the verification fails. This is useful for + * determining the reason verification failed. + * } + * @return array|false the token payload, if successful, or false if not. + * @throws InvalidArgumentException If certs could not be retrieved from a local file. + * @throws InvalidArgumentException If received certs are in an invalid format. + * @throws InvalidArgumentException If the cert alg is not supported. + * @throws RuntimeException If certs could not be retrieved from a remote location. + * @throws UnexpectedValueException If the token issuer does not match. + * @throws UnexpectedValueException If the token audience does not match. + */ + public function verify($token, array $options = []) + { + $audience = $options['audience'] ?? null; + $issuer = $options['issuer'] ?? null; + $certsLocation = $options['certsLocation'] ?? self::FEDERATED_SIGNON_CERT_URL; + $cacheKey = $options['cacheKey'] ?? $this->getCacheKeyFromCertLocation($certsLocation); + $throwException = $options['throwException'] ?? false; // for backwards compatibility + + // Check signature against each available cert. + $certs = $this->getCerts($certsLocation, $cacheKey, $options); + $alg = $this->determineAlg($certs); + if (!in_array($alg, ['RS256', 'ES256'])) { + throw new InvalidArgumentException( + 'unrecognized "alg" in certs, expected ES256 or RS256' + ); + } + try { + if ($alg == 'RS256') { + return $this->verifyRs256($token, $certs, $audience, $issuer); + } + return $this->verifyEs256($token, $certs, $audience, $issuer); + } catch (ExpiredException $e) { // firebase/php-jwt 5+ + } catch (SignatureInvalidException $e) { // firebase/php-jwt 5+ + } catch (InvalidTokenException $e) { // simplejwt + } catch (InvalidArgumentException $e) { + } catch (UnexpectedValueException $e) { + } + + if ($throwException) { + throw $e; + } + + return false; + } + + /** + * Identifies the expected algorithm to verify by looking at the "alg" key + * of the provided certs. + * + * @param array $certs Certificate array according to the JWK spec (see + * https://tools.ietf.org/html/rfc7517). + * @return string The expected algorithm, such as "ES256" or "RS256". + */ + private function determineAlg(array $certs) + { + $alg = null; + foreach ($certs as $cert) { + if (empty($cert['alg'])) { + throw new InvalidArgumentException( + 'certs expects "alg" to be set' + ); + } + $alg = $alg ?: $cert['alg']; + + if ($alg != $cert['alg']) { + throw new InvalidArgumentException( + 'More than one alg detected in certs' + ); + } + } + return $alg; + } + + /** + * Verifies an ES256-signed JWT. + * + * @param string $token The JSON Web Token to be verified. + * @param array $certs Certificate array according to the JWK spec (see + * https://tools.ietf.org/html/rfc7517). + * @param string|null $audience If set, returns false if the provided + * audience does not match the "aud" claim on the JWT. + * @param string|null $issuer If set, returns false if the provided + * issuer does not match the "iss" claim on the JWT. + * @return array the token payload, if successful, or false if not. + */ + private function verifyEs256($token, array $certs, $audience = null, $issuer = null) + { + $this->checkSimpleJwt(); + + $jwkset = new KeySet(); + foreach ($certs as $cert) { + $jwkset->add(KeyFactory::create($cert, 'php')); + } + + // Validate the signature using the key set and ES256 algorithm. + $jwt = $this->callSimpleJwtDecode([$token, $jwkset, 'ES256']); + $payload = $jwt->getClaims(); + + if ($audience) { + if (!isset($payload['aud']) || $payload['aud'] != $audience) { + throw new UnexpectedValueException('Audience does not match'); + } + } + + // @see https://cloud.google.com/iap/docs/signed-headers-howto#verifying_the_jwt_payload + $issuer = $issuer ?: self::IAP_ISSUER; + if (!isset($payload['iss']) || $payload['iss'] !== $issuer) { + throw new UnexpectedValueException('Issuer does not match'); + } + + return $payload; + } + + /** + * Verifies an RS256-signed JWT. + * + * @param string $token The JSON Web Token to be verified. + * @param array $certs Certificate array according to the JWK spec (see + * https://tools.ietf.org/html/rfc7517). + * @param string|null $audience If set, returns false if the provided + * audience does not match the "aud" claim on the JWT. + * @param string|null $issuer If set, returns false if the provided + * issuer does not match the "iss" claim on the JWT. + * @return array the token payload, if successful, or false if not. + */ + private function verifyRs256($token, array $certs, $audience = null, $issuer = null) + { + $this->checkAndInitializePhpsec(); + $keys = []; + foreach ($certs as $cert) { + if (empty($cert['kid'])) { + throw new InvalidArgumentException( + 'certs expects "kid" to be set' + ); + } + if (empty($cert['n']) || empty($cert['e'])) { + throw new InvalidArgumentException( + 'RSA certs expects "n" and "e" to be set' + ); + } + $publicKey = $this->loadPhpsecPublicKey($cert['n'], $cert['e']); + + // create an array of key IDs to certs for the JWT library + $keys[$cert['kid']] = new Key($publicKey, 'RS256'); + } + + $payload = $this->callJwtStatic('decode', [ + $token, + $keys, + ]); + + if ($audience) { + if (!property_exists($payload, 'aud') || $payload->aud != $audience) { + throw new UnexpectedValueException('Audience does not match'); + } + } + + // support HTTP and HTTPS issuers + // @see https://developers.google.com/identity/sign-in/web/backend-auth + $issuers = $issuer ? [$issuer] : [self::OAUTH2_ISSUER, self::OAUTH2_ISSUER_HTTPS]; + if (!isset($payload->iss) || !in_array($payload->iss, $issuers)) { + throw new UnexpectedValueException('Issuer does not match'); + } + + return (array) $payload; + } + + /** + * Revoke an OAuth2 access token or refresh token. This method will revoke the current access + * token, if a token isn't provided. + * + * @param string|array $token The token (access token or a refresh token) that should be revoked. + * @param array $options [optional] Configuration options. + * @return bool Returns True if the revocation was successful, otherwise False. + */ + public function revoke($token, array $options = []) + { + if (is_array($token)) { + if (isset($token['refresh_token'])) { + $token = $token['refresh_token']; + } else { + $token = $token['access_token']; + } + } + + $body = Utils::streamFor(http_build_query(['token' => $token])); + $request = new Request('POST', self::OAUTH2_REVOKE_URI, [ + 'Cache-Control' => 'no-store', + 'Content-Type' => 'application/x-www-form-urlencoded', + ], $body); + + $httpHandler = $this->httpHandler; + + $response = $httpHandler($request, $options); + + return $response->getStatusCode() == 200; + } + + /** + * 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. + * + * @param string $location The location from which to retrieve certs. + * @param string $cacheKey The key under which to cache the retrieved certs. + * @param array $options [optional] Configuration options. + * @return array + * @throws InvalidArgumentException If received certs are in an invalid format. + */ + private function getCerts($location, $cacheKey, array $options = []) + { + $cacheItem = $this->cache->getItem($cacheKey); + $certs = $cacheItem ? $cacheItem->get() : null; + + $expireTime = null; + if (!$certs) { + list($certs, $expireTime) = $this->retrieveCertsFromLocation($location, $options); + } + + if (!isset($certs['keys'])) { + if ($location !== self::IAP_CERT_URL) { + throw new InvalidArgumentException( + 'federated sign-on certs expects "keys" to be set' + ); + } + throw new InvalidArgumentException( + 'certs expects "keys" to be set' + ); + } + + // Push caching off until after verifying certs are in a valid format. + // Don't want to cache bad data. + if ($expireTime) { + $cacheItem->expiresAt(new DateTime($expireTime)); + $cacheItem->set($certs); + $this->cache->save($cacheItem); + } + + return $certs['keys']; + } + + /** + * Retrieve and cache a certificates file. + * + * @param string $url location + * @param array $options [optional] Configuration options. + * @return array{array, string} + * @throws InvalidArgumentException If certs could not be retrieved from a local file. + * @throws RuntimeException If certs could not be retrieved from a remote location. + */ + private function retrieveCertsFromLocation($url, array $options = []) + { + // If we're retrieving a local file, just grab it. + $expireTime = '+1 hour'; + if (strpos($url, 'http') !== 0) { + if (!file_exists($url)) { + throw new InvalidArgumentException(sprintf( + 'Failed to retrieve verification certificates from path: %s.', + $url + )); + } + + return [ + json_decode((string) file_get_contents($url), true), + $expireTime + ]; + } + + $httpHandler = $this->httpHandler; + $response = $httpHandler(new Request('GET', $url), $options); + + if ($response->getStatusCode() == 200) { + if ($cacheControl = $response->getHeaderLine('Cache-Control')) { + array_map(function ($value) use (&$expireTime) { + list($key, $value) = explode('=', $value) + [null, null]; + if (trim($key) == 'max-age') { + $expireTime = '+' . $value . ' seconds'; + } + }, explode(',', $cacheControl)); + } + return [ + json_decode((string) $response->getBody(), true), + $expireTime + ]; + } + + throw new RuntimeException(sprintf( + 'Failed to retrieve verification certificates: "%s".', + $response->getBody()->getContents() + ), $response->getStatusCode()); + } + + /** + * @return void + */ + private function checkAndInitializePhpsec() + { + if (!class_exists(RSA::class)) { + throw new RuntimeException('Please require phpseclib/phpseclib v3 to use this utility.'); + } + } + + /** + * @return string + * @throws TypeError If the key cannot be initialized to a string. + */ + private function loadPhpsecPublicKey(string $modulus, string $exponent): string + { + $key = PublicKeyLoader::load([ + 'n' => new BigInteger($this->callJwtStatic('urlsafeB64Decode', [ + $modulus, + ]), 256), + 'e' => new BigInteger($this->callJwtStatic('urlsafeB64Decode', [ + $exponent + ]), 256), + ]); + $formattedPublicKey = $key->toString('PKCS8'); + if (!is_string($formattedPublicKey)) { + throw new TypeError('Failed to initialize the key'); + } + return $formattedPublicKey; + } + + /** + * @return void + */ + private function checkSimpleJwt() + { + // @codeCoverageIgnoreStart + if (!class_exists(SimpleJwt::class)) { + throw new RuntimeException('Please require kelvinmo/simplejwt ^0.2 to use this utility.'); + } + // @codeCoverageIgnoreEnd + } + + /** + * Provide a hook to mock calls to the JWT static methods. + * + * @param string $method + * @param array $args + * @return mixed + */ + protected function callJwtStatic($method, array $args = []) + { + return call_user_func_array([JWT::class, $method], $args); // @phpstan-ignore-line + } + + /** + * Provide a hook to mock calls to the JWT static methods. + * + * @param array $args + * @return mixed + */ + protected function callSimpleJwtDecode(array $args = []) + { + return call_user_func_array([SimpleJwt::class, 'decode'], $args); + } + + /** + * Generate a cache key based on the cert location using sha1 with the + * exception of using "federated_signon_certs_v3" to preserve BC. + * + * @param string $certsLocation + * @return string + */ + private function getCacheKeyFromCertLocation($certsLocation) + { + $key = $certsLocation === self::FEDERATED_SIGNON_CERT_URL + ? 'federated_signon_certs_v3' + : sha1($certsLocation); + + return 'google_auth_certs_cache|' . $key; + } +} diff --git a/vendor/google/auth/src/ApplicationDefaultCredentials.php b/vendor/google/auth/src/ApplicationDefaultCredentials.php new file mode 100644 index 0000000..a64af46 --- /dev/null +++ b/vendor/google/auth/src/ApplicationDefaultCredentials.php @@ -0,0 +1,391 @@ +push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', + * 'auth' => 'google_auth' // authorize all requests + * ]); + * + * $res = $client->get('myproject/taskqueues/myqueue'); + * ``` + */ +class ApplicationDefaultCredentials +{ + private const SDK_DEBUG_ENV_VAR = 'GOOGLE_SDK_PHP_LOGGING'; + + /** + * @deprecated + * + * Obtains an AuthTokenSubscriber that uses the default FetchAuthTokenInterface + * implementation to use in this environment. + * + * If supplied, $scope is used to in creating the credentials instance if + * this does not fallback to the compute engine defaults. + * + * @param string|string[] $scope the scope of the access request, expressed + * either as an Array or as a space-delimited String. + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache A cache implementation, may be + * provided if you have one already available for use. + * @return AuthTokenSubscriber + * @throws DomainException if no implementation can be obtained. + */ + public static function getSubscriber(// @phpstan-ignore-line + $scope = null, + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $creds = self::getCredentials($scope, $httpHandler, $cacheConfig, $cache); + + /** @phpstan-ignore-next-line */ + return new AuthTokenSubscriber($creds, $httpHandler); + } + + /** + * Obtains an AuthTokenMiddleware that uses the default FetchAuthTokenInterface + * implementation to use in this environment. + * + * If supplied, $scope is used to in creating the credentials instance if + * this does not fallback to the compute engine defaults. + * + * @param string|string[] $scope the scope of the access request, expressed + * either as an Array or as a space-delimited String. + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache A cache implementation, may be + * provided if you have one already available for use. + * @param string $quotaProject specifies a project to bill for access + * charges associated with the request. + * @return AuthTokenMiddleware + * @throws DomainException if no implementation can be obtained. + */ + public static function getMiddleware( + $scope = null, + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null, + $quotaProject = null + ) { + $creds = self::getCredentials($scope, $httpHandler, $cacheConfig, $cache, $quotaProject); + + return new AuthTokenMiddleware($creds, $httpHandler); + } + + /** + * Obtains the default FetchAuthTokenInterface implementation to use + * in this environment. + * + * @param string|string[] $scope the scope of the access request, expressed + * either as an Array or as a space-delimited String. + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache A cache implementation, may be + * provided if you have one already available for use. + * @param string|null $quotaProject specifies a project to bill for access + * charges associated with the request. + * @param string|string[]|null $defaultScope The default scope to use if no + * user-defined scopes exist, expressed either as an Array or as a + * space-delimited string. + * @param string|null $universeDomain Specifies a universe domain to use for the + * calling client library. + * @param null|false|LoggerInterface $logger A PSR3 compliant LoggerInterface. + * + * @return FetchAuthTokenInterface + * @throws DomainException if no implementation can be obtained. + */ + public static function getCredentials( + $scope = null, + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null, + $quotaProject = null, + $defaultScope = null, + ?string $universeDomain = null, + null|false|LoggerInterface $logger = null, + ) { + $creds = null; + $jsonKey = CredentialsLoader::fromEnv() + ?: CredentialsLoader::fromWellKnownFile(); + $anyScope = $scope ?: $defaultScope; + + if (!$httpHandler) { + if (!($client = HttpClientCache::getHttpClient())) { + $client = new Client(); + HttpClientCache::setHttpClient($client); + } + + $httpHandler = HttpHandlerFactory::build($client, $logger); + } + + if (is_null($quotaProject)) { + // if a quota project isn't specified, try to get one from the env var + $quotaProject = CredentialsLoader::quotaProjectFromEnv(); + } + + if (!is_null($jsonKey)) { + if ($quotaProject) { + $jsonKey['quota_project_id'] = $quotaProject; + } + if ($universeDomain) { + $jsonKey['universe_domain'] = $universeDomain; + } + $creds = CredentialsLoader::makeCredentials( + $scope, + $jsonKey, + $defaultScope + ); + } elseif (AppIdentityCredentials::onAppEngine() && !GCECredentials::onAppEngineFlexible()) { + $creds = new AppIdentityCredentials($anyScope); + } elseif (self::onGce($httpHandler, $cacheConfig, $cache)) { + $creds = new GCECredentials(null, $anyScope, null, $quotaProject, null, $universeDomain); + $creds->setIsOnGce(true); // save the credentials a trip to the metadata server + } + + if (is_null($creds)) { + throw new DomainException(self::notFound()); + } + if (!is_null($cache)) { + $creds = new FetchAuthTokenCache($creds, $cacheConfig, $cache); + } + return $creds; + } + + /** + * Obtains an AuthTokenMiddleware which will fetch an ID token to use in the + * Authorization header. The middleware is configured with the default + * FetchAuthTokenInterface implementation to use in this environment. + * + * If supplied, $targetAudience is used to set the "aud" on the resulting + * ID token. + * + * @param string $targetAudience The audience for the ID token. + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache A cache implementation, may be + * provided if you have one already available for use. + * @return AuthTokenMiddleware + * @throws DomainException if no implementation can be obtained. + */ + public static function getIdTokenMiddleware( + $targetAudience, + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $creds = self::getIdTokenCredentials($targetAudience, $httpHandler, $cacheConfig, $cache); + + return new AuthTokenMiddleware($creds, $httpHandler); + } + + /** + * Obtains an ProxyAuthTokenMiddleware which will fetch an ID token to use in the + * Authorization header. The middleware is configured with the default + * FetchAuthTokenInterface implementation to use in this environment. + * + * If supplied, $targetAudience is used to set the "aud" on the resulting + * ID token. + * + * @param string $targetAudience The audience for the ID token. + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache A cache implementation, may be + * provided if you have one already available for use. + * @return ProxyAuthTokenMiddleware + * @throws DomainException if no implementation can be obtained. + */ + public static function getProxyIdTokenMiddleware( + $targetAudience, + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $creds = self::getIdTokenCredentials($targetAudience, $httpHandler, $cacheConfig, $cache); + + return new ProxyAuthTokenMiddleware($creds, $httpHandler); + } + + /** + * Obtains the default FetchAuthTokenInterface implementation to use + * in this environment, configured with a $targetAudience for fetching an ID + * token. + * + * @param string $targetAudience The audience for the ID token. + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache A cache implementation, may be + * provided if you have one already available for use. + * @return FetchAuthTokenInterface + * @throws DomainException if no implementation can be obtained. + * @throws InvalidArgumentException if JSON "type" key is invalid + */ + public static function getIdTokenCredentials( + $targetAudience, + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $creds = null; + $jsonKey = CredentialsLoader::fromEnv() + ?: CredentialsLoader::fromWellKnownFile(); + + if (!$httpHandler) { + if (!($client = HttpClientCache::getHttpClient())) { + $client = new Client(); + HttpClientCache::setHttpClient($client); + } + + $httpHandler = HttpHandlerFactory::build($client); + } + + if (!is_null($jsonKey)) { + if (!array_key_exists('type', $jsonKey)) { + throw new \InvalidArgumentException('json key is missing the type field'); + } + + $creds = match ($jsonKey['type']) { + 'authorized_user' => new UserRefreshCredentials(null, $jsonKey, $targetAudience), + 'impersonated_service_account' => new ImpersonatedServiceAccountCredentials(null, $jsonKey, $targetAudience), + 'service_account' => new ServiceAccountCredentials(null, $jsonKey, null, $targetAudience), + default => throw new InvalidArgumentException('invalid value in the type field') + }; + } elseif (self::onGce($httpHandler, $cacheConfig, $cache)) { + $creds = new GCECredentials(null, null, $targetAudience); + $creds->setIsOnGce(true); // save the credentials a trip to the metadata server + } + + if (is_null($creds)) { + throw new DomainException(self::notFound()); + } + if (!is_null($cache)) { + $creds = new FetchAuthTokenCache($creds, $cacheConfig, $cache); + } + return $creds; + } + + /** + * Returns a StdOutLogger instance + * + * @internal + * + * @return null|LoggerInterface + */ + public static function getDefaultLogger(): null|LoggerInterface + { + $loggingFlag = getenv(self::SDK_DEBUG_ENV_VAR); + + // Env var is not set + if (empty($loggingFlag)) { + return null; + } + + $loggingFlag = strtolower($loggingFlag); + + // Env Var is not true + if ($loggingFlag !== 'true') { + if ($loggingFlag !== 'false') { + trigger_error('The ' . self::SDK_DEBUG_ENV_VAR . ' is set, but it is set to another value than false or true. Logging is disabled'); + } + + return null; + } + + return new StdOutLogger(); + } + + /** + * @return string + */ + private static function notFound() + { + $msg = 'Your default credentials were not found. To set up '; + $msg .= 'Application Default Credentials, see '; + $msg .= 'https://cloud.google.com/docs/authentication/external/set-up-adc'; + + return $msg; + } + + /** + * @param callable|null $httpHandler + * @param array|null $cacheConfig + * @param CacheItemPoolInterface|null $cache + * @return bool + */ + private static function onGce( + ?callable $httpHandler = null, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $gceCacheConfig = []; + foreach (['lifetime', 'prefix'] as $key) { + if (isset($cacheConfig['gce_' . $key])) { + $gceCacheConfig[$key] = $cacheConfig['gce_' . $key]; + } + } + + return (new GCECache($gceCacheConfig, $cache))->onGce($httpHandler); + } +} diff --git a/vendor/google/auth/src/Cache/FileSystemCacheItemPool.php b/vendor/google/auth/src/Cache/FileSystemCacheItemPool.php new file mode 100644 index 0000000..ee0651a --- /dev/null +++ b/vendor/google/auth/src/Cache/FileSystemCacheItemPool.php @@ -0,0 +1,230 @@ + + */ + private array $buffer = []; + + /** + * Creates a FileSystemCacheItemPool cache that stores values in local storage + * + * @param string $path The string representation of the path where the cache will store the serialized objects. + */ + public function __construct(string $path) + { + $this->cachePath = $path; + + if (is_dir($this->cachePath)) { + return; + } + + if (!mkdir($this->cachePath)) { + throw new ErrorException("Cache folder couldn't be created."); + } + } + + /** + * {@inheritdoc} + */ + public function getItem(string $key): CacheItemInterface + { + if (!$this->validKey($key)) { + throw new InvalidArgumentException("The key '$key' is not valid. The key should follow the pattern |^[a-zA-Z0-9_\.! ]+$|"); + } + + $item = new TypedItem($key); + + $itemPath = $this->cacheFilePath($key); + + if (!file_exists($itemPath)) { + return $item; + } + + $serializedItem = file_get_contents($itemPath); + + if ($serializedItem === false) { + return $item; + } + + $item->set(unserialize($serializedItem)); + + return $item; + } + + /** + * {@inheritdoc} + * + * @return iterable An iterable object containing all the + * A traversable collection of Cache Items keyed by the cache keys of + * each item. A Cache item will be returned for each key, even if that + * key is not found. However, if no keys are specified then an empty + * traversable MUST be returned instead. + */ + public function getItems(array $keys = []): iterable + { + $result = []; + + foreach ($keys as $key) { + $result[$key] = $this->getItem($key); + } + + return $result; + } + + /** + * {@inheritdoc} + */ + public function save(CacheItemInterface $item): bool + { + if (!$this->validKey($item->getKey())) { + return false; + } + + $itemPath = $this->cacheFilePath($item->getKey()); + $serializedItem = serialize($item->get()); + + $result = file_put_contents($itemPath, $serializedItem); + + // 0 bytes write is considered a successful operation + if ($result === false) { + return false; + } + + return true; + } + + /** + * {@inheritdoc} + */ + public function hasItem(string $key): bool + { + return $this->getItem($key)->isHit(); + } + + /** + * {@inheritdoc} + */ + public function clear(): bool + { + $this->buffer = []; + + if (!is_dir($this->cachePath)) { + return false; + } + + $files = scandir($this->cachePath); + if (!$files) { + return false; + } + + foreach ($files as $fileName) { + if ($fileName === '.' || $fileName === '..') { + continue; + } + + if (!unlink($this->cachePath . '/' . $fileName)) { + return false; + } + } + + return true; + } + + /** + * {@inheritdoc} + */ + public function deleteItem(string $key): bool + { + if (!$this->validKey($key)) { + throw new InvalidArgumentException("The key '$key' is not valid. The key should follow the pattern |^[a-zA-Z0-9_\.! ]+$|"); + } + + $itemPath = $this->cacheFilePath($key); + + if (!file_exists($itemPath)) { + return true; + } + + return unlink($itemPath); + } + + /** + * {@inheritdoc} + */ + public function deleteItems(array $keys): bool + { + $result = true; + + foreach ($keys as $key) { + if (!$this->deleteItem($key)) { + $result = false; + } + } + + return $result; + } + + /** + * {@inheritdoc} + */ + public function saveDeferred(CacheItemInterface $item): bool + { + array_push($this->buffer, $item); + + return true; + } + + /** + * {@inheritdoc} + */ + public function commit(): bool + { + $result = true; + + foreach ($this->buffer as $item) { + if (!$this->save($item)) { + $result = false; + } + } + + return $result; + } + + private function cacheFilePath(string $key): string + { + return $this->cachePath . '/' . $key; + } + + private function validKey(string $key): bool + { + return (bool) preg_match('|^[a-zA-Z0-9_\.]+$|', $key); + } +} diff --git a/vendor/google/auth/src/Cache/InvalidArgumentException.php b/vendor/google/auth/src/Cache/InvalidArgumentException.php new file mode 100644 index 0000000..331e561 --- /dev/null +++ b/vendor/google/auth/src/Cache/InvalidArgumentException.php @@ -0,0 +1,24 @@ +getItems([$key])); // @phpstan-ignore-line + } + + /** + * {@inheritdoc} + * + * @return iterable + * A traversable collection of Cache Items keyed by the cache keys of + * each item. A Cache item will be returned for each key, even if that + * key is not found. However, if no keys are specified then an empty + * traversable MUST be returned instead. + */ + public function getItems(array $keys = []): iterable + { + $items = []; + foreach ($keys as $key) { + $items[$key] = $this->hasItem($key) ? clone $this->items[$key] : new TypedItem($key); + } + + return $items; + } + + /** + * {@inheritdoc} + * + * @return bool + * True if item exists in the cache, false otherwise. + */ + public function hasItem($key): bool + { + $this->isValidKey($key); + + return isset($this->items[$key]) && $this->items[$key]->isHit(); + } + + /** + * {@inheritdoc} + * + * @return bool + * True if the pool was successfully cleared. False if there was an error. + */ + public function clear(): bool + { + $this->items = []; + $this->deferredItems = []; + + return true; + } + + /** + * {@inheritdoc} + * + * @return bool + * True if the item was successfully removed. False if there was an error. + */ + public function deleteItem($key): bool + { + return $this->deleteItems([$key]); + } + + /** + * {@inheritdoc} + * + * @return bool + * True if the items were successfully removed. False if there was an error. + */ + public function deleteItems(array $keys): bool + { + array_walk($keys, [$this, 'isValidKey']); + + foreach ($keys as $key) { + unset($this->items[$key]); + } + + return true; + } + + /** + * {@inheritdoc} + * + * @return bool + * True if the item was successfully persisted. False if there was an error. + */ + public function save(CacheItemInterface $item): bool + { + $this->items[$item->getKey()] = $item; + + return true; + } + + /** + * {@inheritdoc} + * + * @return bool + * False if the item could not be queued or if a commit was attempted and failed. True otherwise. + */ + public function saveDeferred(CacheItemInterface $item): bool + { + $this->deferredItems[$item->getKey()] = $item; + + return true; + } + + /** + * {@inheritdoc} + * + * @return bool + * True if all not-yet-saved items were successfully saved or there were none. False otherwise. + */ + public function commit(): bool + { + foreach ($this->deferredItems as $item) { + $this->save($item); + } + + $this->deferredItems = []; + + return true; + } + + /** + * Determines if the provided key is valid. + * + * @param string $key + * @return bool + * @throws InvalidArgumentException + */ + private function isValidKey($key) + { + $invalidCharacters = '{}()/\\\\@:'; + + if (!is_string($key) || preg_match("#[$invalidCharacters]#", $key)) { + throw new InvalidArgumentException('The provided key is not valid: ' . var_export($key, true)); + } + + return true; + } +} diff --git a/vendor/google/auth/src/Cache/SysVCacheItemPool.php b/vendor/google/auth/src/Cache/SysVCacheItemPool.php new file mode 100644 index 0000000..7821d6b --- /dev/null +++ b/vendor/google/auth/src/Cache/SysVCacheItemPool.php @@ -0,0 +1,248 @@ + + */ + private $options; + + /** + * @var bool + */ + private $hasLoadedItems = false; + + /** + * Create a SystemV shared memory based CacheItemPool. + * + * @param array $options { + * [optional] Configuration options. + * + * @type int $variableKey The variable key for getting the data from the shared memory. **Defaults to** 1. + * @type string $proj The project identifier for ftok. This needs to be a one character string. + * **Defaults to** 'A'. + * @type int $memsize The memory size in bytes for shm_attach. **Defaults to** 10000. + * @type int $perm The permission for shm_attach. **Defaults to** 0600. + * } + */ + public function __construct($options = []) + { + if (! extension_loaded('sysvshm')) { + throw new \RuntimeException( + 'sysvshm extension is required to use this ItemPool' + ); + } + $this->options = $options + [ + 'variableKey' => self::VAR_KEY, + 'proj' => self::DEFAULT_PROJ, + 'memsize' => self::DEFAULT_MEMSIZE, + 'perm' => self::DEFAULT_PERM + ]; + $this->items = []; + $this->deferredItems = []; + $this->sysvKey = ftok(__FILE__, $this->options['proj']); + } + + /** + * @param mixed $key + * @return CacheItemInterface + */ + public function getItem($key): CacheItemInterface + { + $this->loadItems(); + return current($this->getItems([$key])); // @phpstan-ignore-line + } + + /** + * @param array $keys + * @return iterable + */ + public function getItems(array $keys = []): iterable + { + $this->loadItems(); + $items = []; + foreach ($keys as $key) { + $items[$key] = $this->hasItem($key) ? + clone $this->items[$key] : + new TypedItem($key); + } + return $items; + } + + /** + * {@inheritdoc} + */ + public function hasItem($key): bool + { + $this->loadItems(); + return isset($this->items[$key]) && $this->items[$key]->isHit(); + } + + /** + * {@inheritdoc} + */ + public function clear(): bool + { + $this->items = []; + $this->deferredItems = []; + return $this->saveCurrentItems(); + } + + /** + * {@inheritdoc} + */ + public function deleteItem($key): bool + { + return $this->deleteItems([$key]); + } + + /** + * {@inheritdoc} + */ + public function deleteItems(array $keys): bool + { + if (!$this->hasLoadedItems) { + $this->loadItems(); + } + + foreach ($keys as $key) { + unset($this->items[$key]); + } + return $this->saveCurrentItems(); + } + + /** + * {@inheritdoc} + */ + public function save(CacheItemInterface $item): bool + { + if (!$this->hasLoadedItems) { + $this->loadItems(); + } + + $this->items[$item->getKey()] = $item; + return $this->saveCurrentItems(); + } + + /** + * {@inheritdoc} + */ + public function saveDeferred(CacheItemInterface $item): bool + { + $this->deferredItems[$item->getKey()] = $item; + return true; + } + + /** + * {@inheritdoc} + */ + public function commit(): bool + { + foreach ($this->deferredItems as $item) { + if ($this->save($item) === false) { + return false; + } + } + $this->deferredItems = []; + return true; + } + + /** + * Save the current items. + * + * @return bool true when success, false upon failure + */ + private function saveCurrentItems() + { + $shmid = shm_attach( + $this->sysvKey, + $this->options['memsize'], + $this->options['perm'] + ); + if ($shmid !== false) { + $ret = shm_put_var( + $shmid, + $this->options['variableKey'], + $this->items + ); + shm_detach($shmid); + return $ret; + } + return false; + } + + /** + * Load the items from the shared memory. + * + * @return bool true when success, false upon failure + */ + private function loadItems() + { + $shmid = shm_attach( + $this->sysvKey, + $this->options['memsize'], + $this->options['perm'] + ); + if ($shmid !== false) { + $data = @shm_get_var($shmid, $this->options['variableKey']); + if (!empty($data)) { + $this->items = $data; + } else { + $this->items = []; + } + shm_detach($shmid); + $this->hasLoadedItems = true; + return true; + } + return false; + } +} diff --git a/vendor/google/auth/src/Cache/TypedItem.php b/vendor/google/auth/src/Cache/TypedItem.php new file mode 100644 index 0000000..cce6740 --- /dev/null +++ b/vendor/google/auth/src/Cache/TypedItem.php @@ -0,0 +1,170 @@ +key = $key; + $this->expiration = null; + } + + /** + * {@inheritdoc} + */ + public function getKey(): string + { + return $this->key; + } + + /** + * {@inheritdoc} + */ + public function get(): mixed + { + return $this->isHit() ? $this->value : null; + } + + /** + * {@inheritdoc} + */ + public function isHit(): bool + { + if (!$this->isHit) { + return false; + } + + if ($this->expiration === null) { + return true; + } + + return $this->currentTime()->getTimestamp() < $this->expiration->getTimestamp(); + } + + /** + * {@inheritdoc} + */ + public function set(mixed $value): static + { + $this->isHit = true; + $this->value = $value; + + return $this; + } + + /** + * {@inheritdoc} + */ + public function expiresAt($expiration): static + { + if ($this->isValidExpiration($expiration)) { + $this->expiration = $expiration; + + return $this; + } + + $error = sprintf( + 'Argument 1 passed to %s::expiresAt() must implement interface DateTimeInterface, %s given', + get_class($this), + gettype($expiration) + ); + + throw new \TypeError($error); + } + + /** + * {@inheritdoc} + */ + public function expiresAfter($time): static + { + if (is_int($time)) { + $this->expiration = $this->currentTime()->add(new \DateInterval("PT{$time}S")); + } elseif ($time instanceof \DateInterval) { + $this->expiration = $this->currentTime()->add($time); + } elseif ($time === null) { + $this->expiration = $time; + } else { + $message = 'Argument 1 passed to %s::expiresAfter() must be an ' . + 'instance of DateInterval or of the type integer, %s given'; + $error = sprintf($message, get_class($this), gettype($time)); + + throw new \TypeError($error); + } + + return $this; + } + + /** + * Determines if an expiration is valid based on the rules defined by PSR6. + * + * @param mixed $expiration + * @return bool + */ + private function isValidExpiration($expiration) + { + if ($expiration === null) { + return true; + } + + // We test for two types here due to the fact the DateTimeInterface + // was not introduced until PHP 5.5. Checking for the DateTime type as + // well allows us to support 5.4. + if ($expiration instanceof \DateTimeInterface) { + return true; + } + + return false; + } + + /** + * @return \DateTime + */ + protected function currentTime() + { + return new \DateTime('now', new \DateTimeZone('UTC')); + } +} diff --git a/vendor/google/auth/src/CacheTrait.php b/vendor/google/auth/src/CacheTrait.php new file mode 100644 index 0000000..49aa346 --- /dev/null +++ b/vendor/google/auth/src/CacheTrait.php @@ -0,0 +1,110 @@ + + */ + private $cacheConfig; + + /** + * @var ?CacheItemPoolInterface + */ + private $cache; + + /** + * Gets the cached value if it is present in the cache when that is + * available. + * + * @param mixed $k + * + * @return mixed + */ + private function getCachedValue($k) + { + if (is_null($this->cache)) { + return null; + } + + $key = $this->getFullCacheKey($k); + if (is_null($key)) { + return null; + } + + $cacheItem = $this->cache->getItem($key); + if ($cacheItem->isHit()) { + return $cacheItem->get(); + } + } + + /** + * Saves the value in the cache when that is available. + * + * @param mixed $k + * @param mixed $v + * @return mixed + */ + private function setCachedValue($k, $v) + { + if (is_null($this->cache)) { + return null; + } + + $key = $this->getFullCacheKey($k); + if (is_null($key)) { + return null; + } + + $cacheItem = $this->cache->getItem($key); + $cacheItem->set($v); + $cacheItem->expiresAfter($this->cacheConfig['lifetime']); + return $this->cache->save($cacheItem); + } + + /** + * @param null|string $key + * @return null|string + */ + private function getFullCacheKey($key) + { + if (is_null($key)) { + return null; + } + + $key = ($this->cacheConfig['prefix'] ?? '') . $key; + + // ensure we do not have illegal characters + $key = preg_replace('|[^a-zA-Z0-9_\.!]|', '', $key); + + // Hash keys if they exceed $maxKeyLength (defaults to 64) + if ($this->maxKeyLength && strlen($key) > $this->maxKeyLength) { + $key = substr(hash('sha256', $key), 0, $this->maxKeyLength); + } + + return $key; + } +} diff --git a/vendor/google/auth/src/CredentialSource/AwsNativeSource.php b/vendor/google/auth/src/CredentialSource/AwsNativeSource.php new file mode 100644 index 0000000..c4113f7 --- /dev/null +++ b/vendor/google/auth/src/CredentialSource/AwsNativeSource.php @@ -0,0 +1,375 @@ +audience = $audience; + $this->regionalCredVerificationUrl = $regionalCredVerificationUrl; + $this->regionUrl = $regionUrl; + $this->securityCredentialsUrl = $securityCredentialsUrl; + $this->imdsv2SessionTokenUrl = $imdsv2SessionTokenUrl; + } + + public function fetchSubjectToken(?callable $httpHandler = null): string + { + if (is_null($httpHandler)) { + $httpHandler = HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + } + + $headers = []; + if ($this->imdsv2SessionTokenUrl) { + $headers = [ + 'X-aws-ec2-metadata-token' => self::getImdsV2SessionToken($this->imdsv2SessionTokenUrl, $httpHandler) + ]; + } + + if (!$signingVars = self::getSigningVarsFromEnv()) { + if (!$this->securityCredentialsUrl) { + throw new \LogicException('Unable to get credentials from ENV, and no security credentials URL provided'); + } + $signingVars = self::getSigningVarsFromUrl( + $httpHandler, + $this->securityCredentialsUrl, + self::getRoleName($httpHandler, $this->securityCredentialsUrl, $headers), + $headers + ); + } + + if (!$region = self::getRegionFromEnv()) { + if (!$this->regionUrl) { + throw new \LogicException('Unable to get region from ENV, and no region URL provided'); + } + $region = self::getRegionFromUrl($httpHandler, $this->regionUrl, $headers); + } + $url = str_replace('{region}', $region, $this->regionalCredVerificationUrl); + $host = parse_url($url)['host'] ?? ''; + + // From here we use the signing vars to create the signed request to receive a token + [$accessKeyId, $secretAccessKey, $securityToken] = $signingVars; + $headers = self::getSignedRequestHeaders($region, $host, $accessKeyId, $secretAccessKey, $securityToken); + + // Inject x-goog-cloud-target-resource into header + $headers['x-goog-cloud-target-resource'] = $this->audience; + + // Format headers as they're expected in the subject token + $formattedHeaders = array_map( + fn ($k, $v) => ['key' => $k, 'value' => $v], + array_keys($headers), + $headers, + ); + + $request = [ + 'headers' => $formattedHeaders, + 'method' => 'POST', + 'url' => $url, + ]; + + return urlencode(json_encode($request) ?: ''); + } + + /** + * @internal + */ + public static function getImdsV2SessionToken(string $imdsV2Url, callable $httpHandler): string + { + $headers = [ + 'X-aws-ec2-metadata-token-ttl-seconds' => '21600' + ]; + $request = new Request( + 'PUT', + $imdsV2Url, + $headers + ); + + $response = $httpHandler($request); + return (string) $response->getBody(); + } + + /** + * @see http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html + * + * @internal + * + * @return array + */ + public static function getSignedRequestHeaders( + string $region, + string $host, + string $accessKeyId, + string $secretAccessKey, + ?string $securityToken + ): array { + $service = 'sts'; + + # Create a date for headers and the credential string in ISO-8601 format + $amzdate = gmdate('Ymd\THis\Z'); + $datestamp = gmdate('Ymd'); # Date w/o time, used in credential scope + + # Create the canonical headers and signed headers. Header names + # must be trimmed and lowercase, and sorted in code point order from + # low to high. Note that there is a trailing \n. + $canonicalHeaders = sprintf("host:%s\nx-amz-date:%s\n", $host, $amzdate); + if ($securityToken) { + $canonicalHeaders .= sprintf("x-amz-security-token:%s\n", $securityToken); + } + + # Step 5: Create the list of signed headers. This lists the headers + # in the canonicalHeaders list, delimited with ";" and in alpha order. + # Note: The request can include any headers; $canonicalHeaders and + # $signedHeaders lists those that you want to be included in the + # hash of the request. "Host" and "x-amz-date" are always required. + $signedHeaders = 'host;x-amz-date'; + if ($securityToken) { + $signedHeaders .= ';x-amz-security-token'; + } + + # Step 6: Create payload hash (hash of the request body content). For GET + # requests, the payload is an empty string (""). + $payloadHash = hash('sha256', ''); + + # Step 7: Combine elements to create canonical request + $canonicalRequest = implode("\n", [ + 'POST', // method + '/', // canonical URL + self::CRED_VERIFICATION_QUERY, // query string + $canonicalHeaders, + $signedHeaders, + $payloadHash + ]); + + # ************* TASK 2: CREATE THE STRING TO SIGN************* + # Match the algorithm to the hashing algorithm you use, either SHA-1 or + # SHA-256 (recommended) + $algorithm = 'AWS4-HMAC-SHA256'; + $scope = implode('/', [$datestamp, $region, $service, 'aws4_request']); + $stringToSign = implode("\n", [$algorithm, $amzdate, $scope, hash('sha256', $canonicalRequest)]); + + # ************* TASK 3: CALCULATE THE SIGNATURE ************* + # Create the signing key using the function defined above. + // (done above) + $signingKey = self::getSignatureKey($secretAccessKey, $datestamp, $region, $service); + + # Sign the string_to_sign using the signing_key + $signature = bin2hex(self::hmacSign($signingKey, $stringToSign)); + + # ************* TASK 4: ADD SIGNING INFORMATION TO THE REQUEST ************* + # The signing information can be either in a query string value or in + # a header named Authorization. This code shows how to use a header. + # Create authorization header and add to request headers + $authorizationHeader = sprintf( + '%s Credential=%s/%s, SignedHeaders=%s, Signature=%s', + $algorithm, + $accessKeyId, + $scope, + $signedHeaders, + $signature + ); + + # The request can include any headers, but MUST include "host", "x-amz-date", + # and (for this scenario) "Authorization". "host" and "x-amz-date" must + # be included in the canonical_headers and signed_headers, as noted + # earlier. Order here is not significant. + $headers = [ + 'host' => $host, + 'x-amz-date' => $amzdate, + 'Authorization' => $authorizationHeader, + ]; + if ($securityToken) { + $headers['x-amz-security-token'] = $securityToken; + } + + return $headers; + } + + /** + * @internal + */ + public static function getRegionFromEnv(): ?string + { + $region = getenv('AWS_REGION'); + if (empty($region)) { + $region = getenv('AWS_DEFAULT_REGION'); + } + return $region ?: null; + } + + /** + * @internal + * + * @param callable $httpHandler + * @param string $regionUrl + * @param array $headers Request headers to send in with the request. + */ + public static function getRegionFromUrl(callable $httpHandler, string $regionUrl, array $headers): string + { + // get the region/zone from the region URL + $regionRequest = new Request('GET', $regionUrl, $headers); + $regionResponse = $httpHandler($regionRequest); + + // Remove last character. For example, if us-east-2b is returned, + // the region would be us-east-2. + return substr((string) $regionResponse->getBody(), 0, -1); + } + + /** + * @internal + * + * @param callable $httpHandler + * @param string $securityCredentialsUrl + * @param array $headers Request headers to send in with the request. + */ + public static function getRoleName(callable $httpHandler, string $securityCredentialsUrl, array $headers): string + { + // Get the AWS role name + $roleRequest = new Request('GET', $securityCredentialsUrl, $headers); + $roleResponse = $httpHandler($roleRequest); + $roleName = (string) $roleResponse->getBody(); + + return $roleName; + } + + /** + * @internal + * + * @param callable $httpHandler + * @param string $securityCredentialsUrl + * @param array $headers Request headers to send in with the request. + * @return array{string, string, ?string} + */ + public static function getSigningVarsFromUrl( + callable $httpHandler, + string $securityCredentialsUrl, + string $roleName, + array $headers + ): array { + // Get the AWS credentials + $credsRequest = new Request( + 'GET', + $securityCredentialsUrl . '/' . $roleName, + $headers + ); + $credsResponse = $httpHandler($credsRequest); + $awsCreds = json_decode((string) $credsResponse->getBody(), true); + return [ + $awsCreds['AccessKeyId'], // accessKeyId + $awsCreds['SecretAccessKey'], // secretAccessKey + $awsCreds['Token'], // token + ]; + } + + /** + * @internal + * + * @return array{string, string, ?string} + */ + public static function getSigningVarsFromEnv(): ?array + { + $accessKeyId = getenv('AWS_ACCESS_KEY_ID'); + $secretAccessKey = getenv('AWS_SECRET_ACCESS_KEY'); + if ($accessKeyId && $secretAccessKey) { + return [ + $accessKeyId, + $secretAccessKey, + getenv('AWS_SESSION_TOKEN') ?: null, // session token (can be null) + ]; + } + + return null; + } + + /** + * Gets the unique key for caching + * For AwsNativeSource the values are: + * Imdsv2SessionTokenUrl.SecurityCredentialsUrl.RegionUrl.RegionalCredVerificationUrl + * + * @return string + */ + public function getCacheKey(): string + { + return ($this->imdsv2SessionTokenUrl ?? '') . + '.' . ($this->securityCredentialsUrl ?? '') . + '.' . $this->regionUrl . + '.' . $this->regionalCredVerificationUrl; + } + + /** + * Return HMAC hash in binary string + */ + private static function hmacSign(string $key, string $msg): string + { + return hash_hmac('sha256', self::utf8Encode($msg), $key, true); + } + + /** + * @TODO add a fallback when mbstring is not available + */ + private static function utf8Encode(string $string): string + { + return (string) mb_convert_encoding($string, 'UTF-8', 'ISO-8859-1'); + } + + private static function getSignatureKey( + string $key, + string $dateStamp, + string $regionName, + string $serviceName + ): string { + $kDate = self::hmacSign(self::utf8Encode('AWS4' . $key), $dateStamp); + $kRegion = self::hmacSign($kDate, $regionName); + $kService = self::hmacSign($kRegion, $serviceName); + $kSigning = self::hmacSign($kService, 'aws4_request'); + + return $kSigning; + } +} diff --git a/vendor/google/auth/src/CredentialSource/ExecutableSource.php b/vendor/google/auth/src/CredentialSource/ExecutableSource.php new file mode 100644 index 0000000..f6255be --- /dev/null +++ b/vendor/google/auth/src/CredentialSource/ExecutableSource.php @@ -0,0 +1,272 @@ + + * OIDC response sample: + * { + * "version": 1, + * "success": true, + * "token_type": "urn:ietf:params:oauth:token-type:id_token", + * "id_token": "HEADER.PAYLOAD.SIGNATURE", + * "expiration_time": 1620433341 + * } + * + * SAML2 response sample: + * { + * "version": 1, + * "success": true, + * "token_type": "urn:ietf:params:oauth:token-type:saml2", + * "saml_response": "...", + * "expiration_time": 1620433341 + * } + * + * Error response sample: + * { + * "version": 1, + * "success": false, + * "code": "401", + * "message": "Error message." + * } + * + * + * The "expiration_time" field in the JSON response is only required for successful + * responses when an output file was specified in the credential configuration + * + * The auth libraries will populate certain environment variables that will be accessible by the + * executable, such as: GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE, GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE, + * GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE, GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL, and + * GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE. + */ +class ExecutableSource implements ExternalAccountCredentialSourceInterface +{ + private const GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES = 'GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES'; + private const SAML_SUBJECT_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:saml2'; + private const OIDC_SUBJECT_TOKEN_TYPE1 = 'urn:ietf:params:oauth:token-type:id_token'; + private const OIDC_SUBJECT_TOKEN_TYPE2 = 'urn:ietf:params:oauth:token-type:jwt'; + + private string $command; + private ExecutableHandler $executableHandler; + private ?string $outputFile; + + /** + * @param string $command The string command to run to get the subject token. + * @param string|null $outputFile + */ + public function __construct( + string $command, + ?string $outputFile, + ?ExecutableHandler $executableHandler = null, + ) { + $this->command = $command; + $this->outputFile = $outputFile; + $this->executableHandler = $executableHandler ?: new ExecutableHandler(); + } + + /** + * Gets the unique key for caching + * The format for the cache key is: + * Command.OutputFile + * + * @return ?string + */ + public function getCacheKey(): ?string + { + return $this->command . '.' . $this->outputFile; + } + + /** + * @param callable|null $httpHandler unused. + * @return string + * @throws RuntimeException if the executable is not allowed to run. + * @throws ExecutableResponseError if the executable response is invalid. + */ + public function fetchSubjectToken(?callable $httpHandler = null): string + { + // Check if the executable is allowed to run. + if (getenv(self::GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES) !== '1') { + throw new RuntimeException( + 'Pluggable Auth executables need to be explicitly allowed to run by ' + . 'setting the GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES environment ' + . 'Variable to 1.' + ); + } + + if (!$executableResponse = $this->getCachedExecutableResponse()) { + // Run the executable. + $exitCode = ($this->executableHandler)($this->command); + $output = $this->executableHandler->getOutput(); + + // If the exit code is not 0, throw an exception with the output as the error details + if ($exitCode !== 0) { + throw new ExecutableResponseError( + 'The executable failed to run' + . ($output ? ' with the following error: ' . $output : '.'), + (string) $exitCode + ); + } + + $executableResponse = $this->parseExecutableResponse($output); + + // Validate expiration. + if (isset($executableResponse['expiration_time']) && time() >= $executableResponse['expiration_time']) { + throw new ExecutableResponseError('Executable response is expired.'); + } + } + + // Throw error when the request was unsuccessful + if ($executableResponse['success'] === false) { + throw new ExecutableResponseError($executableResponse['message'], (string) $executableResponse['code']); + } + + // Return subject token field based on the token type + return $executableResponse['token_type'] === self::SAML_SUBJECT_TOKEN_TYPE + ? $executableResponse['saml_response'] + : $executableResponse['id_token']; + } + + /** + * @return array|null + */ + private function getCachedExecutableResponse(): ?array + { + if ( + $this->outputFile + && file_exists($this->outputFile) + && !empty(trim($outputFileContents = (string) file_get_contents($this->outputFile))) + ) { + try { + $executableResponse = $this->parseExecutableResponse($outputFileContents); + } catch (ExecutableResponseError $e) { + throw new ExecutableResponseError( + 'Error in output file: ' . $e->getMessage(), + 'INVALID_OUTPUT_FILE' + ); + } + + if ($executableResponse['success'] === false) { + // If the cached token was unsuccessful, run the executable to get a new one. + return null; + } + + if (isset($executableResponse['expiration_time']) && time() >= $executableResponse['expiration_time']) { + // If the cached token is expired, run the executable to get a new one. + return null; + } + + return $executableResponse; + } + + return null; + } + + /** + * @return array + */ + private function parseExecutableResponse(string $response): array + { + $executableResponse = json_decode($response, true); + if (json_last_error() !== JSON_ERROR_NONE) { + throw new ExecutableResponseError( + 'The executable returned an invalid response: ' . $response, + 'INVALID_RESPONSE' + ); + } + if (!array_key_exists('version', $executableResponse)) { + throw new ExecutableResponseError('Executable response must contain a "version" field.'); + } + if (!array_key_exists('success', $executableResponse)) { + throw new ExecutableResponseError('Executable response must contain a "success" field.'); + } + + // Validate required fields for a successful response. + if ($executableResponse['success']) { + // Validate token type field. + $tokenTypes = [self::SAML_SUBJECT_TOKEN_TYPE, self::OIDC_SUBJECT_TOKEN_TYPE1, self::OIDC_SUBJECT_TOKEN_TYPE2]; + if (!isset($executableResponse['token_type'])) { + throw new ExecutableResponseError( + 'Executable response must contain a "token_type" field when successful' + ); + } + if (!in_array($executableResponse['token_type'], $tokenTypes)) { + throw new ExecutableResponseError(sprintf( + 'Executable response "token_type" field must be one of %s.', + implode(', ', $tokenTypes) + )); + } + + // Validate subject token for SAML and OIDC. + if ($executableResponse['token_type'] === self::SAML_SUBJECT_TOKEN_TYPE) { + if (empty($executableResponse['saml_response'])) { + throw new ExecutableResponseError(sprintf( + 'Executable response must contain a "saml_response" field when token_type=%s.', + self::SAML_SUBJECT_TOKEN_TYPE + )); + } + } elseif (empty($executableResponse['id_token'])) { + throw new ExecutableResponseError(sprintf( + 'Executable response must contain a "id_token" field when ' + . 'token_type=%s.', + $executableResponse['token_type'] + )); + } + + // Validate expiration exists when an output file is specified. + if ($this->outputFile) { + if (!isset($executableResponse['expiration_time'])) { + throw new ExecutableResponseError( + 'The executable response must contain a "expiration_time" field for successful responses ' . + 'when an output_file has been specified in the configuration.' + ); + } + } + } else { + // Both code and message must be provided for unsuccessful responses. + if (!array_key_exists('code', $executableResponse)) { + throw new ExecutableResponseError('Executable response must contain a "code" field when unsuccessful.'); + } + if (empty($executableResponse['message'])) { + throw new ExecutableResponseError('Executable response must contain a "message" field when unsuccessful.'); + } + } + + return $executableResponse; + } +} diff --git a/vendor/google/auth/src/CredentialSource/FileSource.php b/vendor/google/auth/src/CredentialSource/FileSource.php new file mode 100644 index 0000000..2e79119 --- /dev/null +++ b/vendor/google/auth/src/CredentialSource/FileSource.php @@ -0,0 +1,87 @@ +file = $file; + + if ($format === 'json' && is_null($subjectTokenFieldName)) { + throw new InvalidArgumentException( + 'subject_token_field_name must be set when format is JSON' + ); + } + + $this->format = $format; + $this->subjectTokenFieldName = $subjectTokenFieldName; + } + + public function fetchSubjectToken(?callable $httpHandler = null): string + { + $contents = file_get_contents($this->file); + if ($this->format === 'json') { + if (!$json = json_decode((string) $contents, true)) { + throw new UnexpectedValueException( + 'Unable to decode JSON file' + ); + } + if (!isset($json[$this->subjectTokenFieldName])) { + throw new UnexpectedValueException( + 'subject_token_field_name not found in JSON file' + ); + } + $contents = $json[$this->subjectTokenFieldName]; + } + + return $contents; + } + + /** + * Gets the unique key for caching. + * The format for the cache key one of the following: + * Filename + * + * @return string + */ + public function getCacheKey(): ?string + { + return $this->file; + } +} diff --git a/vendor/google/auth/src/CredentialSource/UrlSource.php b/vendor/google/auth/src/CredentialSource/UrlSource.php new file mode 100644 index 0000000..d2f875e --- /dev/null +++ b/vendor/google/auth/src/CredentialSource/UrlSource.php @@ -0,0 +1,109 @@ + + */ + private ?array $headers; + + /** + * @param string $url The URL to fetch the subject token from. + * @param string|null $format The format of the token in the response. Can be null or "json". + * @param string|null $subjectTokenFieldName The name of the field containing the token in the response. This is required + * when format is "json". + * @param array|null $headers Request headers to send in with the request to the URL. + */ + public function __construct( + string $url, + ?string $format = null, + ?string $subjectTokenFieldName = null, + ?array $headers = null + ) { + $this->url = $url; + + if ($format === 'json' && is_null($subjectTokenFieldName)) { + throw new InvalidArgumentException( + 'subject_token_field_name must be set when format is JSON' + ); + } + + $this->format = $format; + $this->subjectTokenFieldName = $subjectTokenFieldName; + $this->headers = $headers; + } + + public function fetchSubjectToken(?callable $httpHandler = null): string + { + if (is_null($httpHandler)) { + $httpHandler = HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + } + + $request = new Request( + 'GET', + $this->url, + $this->headers ?: [] + ); + + $response = $httpHandler($request); + $body = (string) $response->getBody(); + if ($this->format === 'json') { + if (!$json = json_decode((string) $body, true)) { + throw new UnexpectedValueException( + 'Unable to decode JSON response' + ); + } + if (!isset($json[$this->subjectTokenFieldName])) { + throw new UnexpectedValueException( + 'subject_token_field_name not found in JSON file' + ); + } + $body = $json[$this->subjectTokenFieldName]; + } + + return $body; + } + + /** + * Get the cache key for the credentials. + * The format for the cache key is: + * URL + * + * @return ?string + */ + public function getCacheKey(): ?string + { + return $this->url; + } +} diff --git a/vendor/google/auth/src/Credentials/AppIdentityCredentials.php b/vendor/google/auth/src/Credentials/AppIdentityCredentials.php new file mode 100644 index 0000000..5e4cfa5 --- /dev/null +++ b/vendor/google/auth/src/Credentials/AppIdentityCredentials.php @@ -0,0 +1,238 @@ +push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/books/v1', + * 'auth' => 'google_auth' + * ]); + * + * $res = $client->get('volumes?q=Henry+David+Thoreau&country=US'); + * ``` + */ +class AppIdentityCredentials extends CredentialsLoader implements + SignBlobInterface, + ProjectIdProviderInterface +{ + /** + * Result of fetchAuthToken. + * + * @var array + */ + protected $lastReceivedToken; + + /** + * Array of OAuth2 scopes to be requested. + * + * @var string[] + */ + private $scope; + + /** + * @var string + */ + private $clientName; + + /** + * @param string|string[] $scope One or more scopes. + */ + public function __construct($scope = []) + { + $this->scope = is_array($scope) ? $scope : explode(' ', (string) $scope); + } + + /** + * Determines if this an App Engine instance, by accessing the + * SERVER_SOFTWARE environment variable (prod) or the APPENGINE_RUNTIME + * environment variable (dev). + * + * @return bool true if this an App Engine Instance, false otherwise + */ + public static function onAppEngine() + { + $appEngineProduction = isset($_SERVER['SERVER_SOFTWARE']) && + 0 === strpos($_SERVER['SERVER_SOFTWARE'], 'Google App Engine'); + if ($appEngineProduction) { + return true; + } + $appEngineDevAppServer = isset($_SERVER['APPENGINE_RUNTIME']) && + $_SERVER['APPENGINE_RUNTIME'] == 'php'; + if ($appEngineDevAppServer) { + return true; + } + return false; + } + + /** + * Implements FetchAuthTokenInterface#fetchAuthToken. + * + * Fetches the auth tokens using the AppIdentityService if available. + * As the AppIdentityService uses protobufs to fetch the access token, + * the GuzzleHttp\ClientInterface instance passed in will not be used. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array { + * A set of auth related metadata, containing the following + * + * @type string $access_token + * @type string $expiration_time + * } + */ + public function fetchAuthToken(?callable $httpHandler = null) + { + try { + $this->checkAppEngineContext(); + } catch (\Exception $e) { + return []; + } + + /** @phpstan-ignore-next-line */ + $token = AppIdentityService::getAccessToken($this->scope); + $this->lastReceivedToken = $token; + + return $token; + } + + /** + * Sign a string using AppIdentityService. + * + * @param string $stringToSign The string to sign. + * @param bool $forceOpenSsl [optional] Does not apply to this credentials + * type. + * @return string The signature, base64-encoded. + * @throws \Exception If AppEngine SDK or mock is not available. + */ + public function signBlob($stringToSign, $forceOpenSsl = false) + { + $this->checkAppEngineContext(); + + /** @phpstan-ignore-next-line */ + return base64_encode(AppIdentityService::signForApp($stringToSign)['signature']); + } + + /** + * Get the project ID from AppIdentityService. + * + * Returns null if AppIdentityService is unavailable. + * + * @param callable|null $httpHandler Not used by this type. + * @return string|null + */ + public function getProjectId(?callable $httpHandler = null) + { + try { + $this->checkAppEngineContext(); + } catch (\Exception $e) { + return null; + } + + /** @phpstan-ignore-next-line */ + return AppIdentityService::getApplicationId(); + } + + /** + * Get the client name from AppIdentityService. + * + * Subsequent calls to this method will return a cached value. + * + * @param callable|null $httpHandler Not used in this implementation. + * @return string + * @throws \Exception If AppEngine SDK or mock is not available. + */ + public function getClientName(?callable $httpHandler = null) + { + $this->checkAppEngineContext(); + + if (!$this->clientName) { + /** @phpstan-ignore-next-line */ + $this->clientName = AppIdentityService::getServiceAccountName(); + } + + return $this->clientName; + } + + /** + * @return array{access_token:string,expires_at:int}|null + */ + public function getLastReceivedToken() + { + if ($this->lastReceivedToken) { + return [ + 'access_token' => $this->lastReceivedToken['access_token'], + 'expires_at' => $this->lastReceivedToken['expiration_time'], + ]; + } + + return null; + } + + /** + * Caching is handled by the underlying AppIdentityService, return empty string + * to prevent caching. + * + * @return string + */ + public function getCacheKey() + { + return ''; + } + + /** + * @return void + */ + private function checkAppEngineContext() + { + if (!self::onAppEngine() || !class_exists('google\appengine\api\app_identity\AppIdentityService')) { + throw new \Exception( + 'This class must be run in App Engine, or you must include the AppIdentityService ' + . 'mock class defined in tests/mocks/AppIdentityService.php' + ); + } + } +} diff --git a/vendor/google/auth/src/Credentials/ExternalAccountCredentials.php b/vendor/google/auth/src/Credentials/ExternalAccountCredentials.php new file mode 100644 index 0000000..afaf1ee --- /dev/null +++ b/vendor/google/auth/src/Credentials/ExternalAccountCredentials.php @@ -0,0 +1,394 @@ + */ + private ?array $lastImpersonatedAccessToken; + private string $universeDomain; + + /** + * @param string|string[] $scope The scope of the access request, expressed either as an array + * or as a space-delimited string. + * @param array $jsonKey JSON credentials as an associative array. + */ + public function __construct( + $scope, + array $jsonKey + ) { + if (!array_key_exists('type', $jsonKey)) { + throw new InvalidArgumentException('json key is missing the type field'); + } + if ($jsonKey['type'] !== self::EXTERNAL_ACCOUNT_TYPE) { + throw new InvalidArgumentException(sprintf( + 'expected "%s" type but received "%s"', + self::EXTERNAL_ACCOUNT_TYPE, + $jsonKey['type'] + )); + } + + if (!array_key_exists('token_url', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the token_url field' + ); + } + + if (!array_key_exists('audience', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the audience field' + ); + } + + if (!array_key_exists('subject_token_type', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the subject_token_type field' + ); + } + + if (!array_key_exists('credential_source', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the credential_source field' + ); + } + + $this->serviceAccountImpersonationUrl = $jsonKey['service_account_impersonation_url'] ?? null; + + $this->quotaProject = $jsonKey['quota_project_id'] ?? null; + $this->workforcePoolUserProject = $jsonKey['workforce_pool_user_project'] ?? null; + $this->universeDomain = $jsonKey['universe_domain'] ?? GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN; + + $this->auth = new OAuth2([ + 'tokenCredentialUri' => $jsonKey['token_url'], + 'audience' => $jsonKey['audience'], + 'scope' => $scope, + 'subjectTokenType' => $jsonKey['subject_token_type'], + 'subjectTokenFetcher' => self::buildCredentialSource($jsonKey), + 'additionalOptions' => $this->workforcePoolUserProject + ? ['userProject' => $this->workforcePoolUserProject] + : [], + ]); + + if (!$this->isWorkforcePool() && $this->workforcePoolUserProject) { + throw new InvalidArgumentException( + 'workforce_pool_user_project should not be set for non-workforce pool credentials.' + ); + } + } + + /** + * @param array $jsonKey + */ + private static function buildCredentialSource(array $jsonKey): ExternalAccountCredentialSourceInterface + { + $credentialSource = $jsonKey['credential_source']; + if (isset($credentialSource['file'])) { + return new FileSource( + $credentialSource['file'], + $credentialSource['format']['type'] ?? null, + $credentialSource['format']['subject_token_field_name'] ?? null + ); + } + + if ( + isset($credentialSource['environment_id']) + && 1 === preg_match('/^aws(\d+)$/', $credentialSource['environment_id'], $matches) + ) { + if ($matches[1] !== '1') { + throw new InvalidArgumentException( + "aws version \"$matches[1]\" is not supported in the current build." + ); + } + if (!array_key_exists('regional_cred_verification_url', $credentialSource)) { + throw new InvalidArgumentException( + 'The regional_cred_verification_url field is required for aws1 credential source.' + ); + } + + return new AwsNativeSource( + $jsonKey['audience'], + $credentialSource['regional_cred_verification_url'], // $regionalCredVerificationUrl + $credentialSource['region_url'] ?? null, // $regionUrl + $credentialSource['url'] ?? null, // $securityCredentialsUrl + $credentialSource['imdsv2_session_token_url'] ?? null, // $imdsV2TokenUrl + ); + } + + if (isset($credentialSource['url'])) { + return new UrlSource( + $credentialSource['url'], + $credentialSource['format']['type'] ?? null, + $credentialSource['format']['subject_token_field_name'] ?? null, + $credentialSource['headers'] ?? null, + ); + } + + if (isset($credentialSource['executable'])) { + if (!array_key_exists('command', $credentialSource['executable'])) { + throw new InvalidArgumentException( + 'executable source requires a command to be set in the JSON file.' + ); + } + + // Build command environment variables + $env = [ + 'GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE' => $jsonKey['audience'], + 'GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE' => $jsonKey['subject_token_type'], + // Always set to 0 because interactive mode is not supported. + 'GOOGLE_EXTERNAL_ACCOUNT_INTERACTIVE' => '0', + ]; + + if ($outputFile = $credentialSource['executable']['output_file'] ?? null) { + $env['GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE'] = $outputFile; + } + + if ($serviceAccountImpersonationUrl = $jsonKey['service_account_impersonation_url'] ?? null) { + // Parse email from URL. The formal looks as follows: + // https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/name@project-id.iam.gserviceaccount.com:generateAccessToken + $regex = '/serviceAccounts\/(?[^:]+):generateAccessToken$/'; + if (preg_match($regex, $serviceAccountImpersonationUrl, $matches)) { + $env['GOOGLE_EXTERNAL_ACCOUNT_IMPERSONATED_EMAIL'] = $matches['email']; + } + } + + $timeoutMs = $credentialSource['executable']['timeout_millis'] ?? null; + + return new ExecutableSource( + $credentialSource['executable']['command'], + $outputFile, + $timeoutMs ? new ExecutableHandler($env, $timeoutMs) : new ExecutableHandler($env) + ); + } + + throw new InvalidArgumentException('Unable to determine credential source from json key.'); + } + + /** + * @param string $stsToken + * @param callable|null $httpHandler + * + * @return array { + * A set of auth related metadata, containing the following + * + * @type string $access_token + * @type int $expires_at + * } + */ + private function getImpersonatedAccessToken(string $stsToken, ?callable $httpHandler = null): array + { + if (!isset($this->serviceAccountImpersonationUrl)) { + throw new InvalidArgumentException( + 'service_account_impersonation_url must be set in JSON credentials.' + ); + } + $request = new Request( + 'POST', + $this->serviceAccountImpersonationUrl, + [ + 'Content-Type' => 'application/json', + 'Authorization' => 'Bearer ' . $stsToken, + ], + (string) json_encode([ + 'lifetime' => sprintf('%ss', OAuth2::DEFAULT_EXPIRY_SECONDS), + 'scope' => explode(' ', $this->auth->getScope()), + ]), + ); + if (is_null($httpHandler)) { + $httpHandler = HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + } + $response = $httpHandler($request); + $body = json_decode((string) $response->getBody(), true); + return [ + 'access_token' => $body['accessToken'], + 'expires_at' => strtotime($body['expireTime']), + ]; + } + + /** + * @param callable|null $httpHandler + * @param array $headers [optional] Metrics headers to be inserted + * into the token endpoint request present. + * + * @return array { + * A set of auth related metadata, containing the following + * + * @type string $access_token + * @type int $expires_at (impersonated service accounts only) + * @type int $expires_in (identity pool only) + * @type string $issued_token_type (identity pool only) + * @type string $token_type (identity pool only) + * } + */ + public function fetchAuthToken(?callable $httpHandler = null, array $headers = []) + { + $stsToken = $this->auth->fetchAuthToken($httpHandler, $headers); + + if (isset($this->serviceAccountImpersonationUrl)) { + return $this->lastImpersonatedAccessToken = $this->getImpersonatedAccessToken( + $stsToken['access_token'], + $httpHandler + ); + } + + return $stsToken; + } + + /** + * Get the cache token key for the credentials. + * The cache token key format depends on the type of source + * The format for the cache key one of the following: + * FetcherCacheKey.Scope.[ServiceAccount].[TokenType].[WorkforcePoolUserProject] + * FetcherCacheKey.Audience.[ServiceAccount].[TokenType].[WorkforcePoolUserProject] + * + * @return ?string; + */ + public function getCacheKey(): ?string + { + $scopeOrAudience = $this->auth->getAudience(); + if (!$scopeOrAudience) { + $scopeOrAudience = $this->auth->getScope(); + } + + return $this->auth->getSubjectTokenFetcher()->getCacheKey() . + '.' . $scopeOrAudience . + '.' . ($this->serviceAccountImpersonationUrl ?? '') . + '.' . ($this->auth->getSubjectTokenType() ?? '') . + '.' . ($this->workforcePoolUserProject ?? ''); + } + + public function getLastReceivedToken() + { + return $this->lastImpersonatedAccessToken ?? $this->auth->getLastReceivedToken(); + } + + /** + * Get the quota project used for this API request + * + * @return string|null + */ + public function getQuotaProject() + { + return $this->quotaProject; + } + + /** + * Get the universe domain used for this API request + * + * @return string + */ + public function getUniverseDomain(): string + { + return $this->universeDomain; + } + + /** + * Get the project ID. + * + * @param callable|null $httpHandler Callback which delivers psr7 request + * @param string|null $accessToken The access token to use to sign the blob. If + * provided, saves a call to the metadata server for a new access + * token. **Defaults to** `null`. + * @return string|null + */ + public function getProjectId(?callable $httpHandler = null, ?string $accessToken = null) + { + if (isset($this->projectId)) { + return $this->projectId; + } + + $projectNumber = $this->getProjectNumber() ?: $this->workforcePoolUserProject; + if (!$projectNumber) { + return null; + } + + if (is_null($httpHandler)) { + $httpHandler = HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + } + + $url = str_replace( + 'UNIVERSE_DOMAIN', + $this->getUniverseDomain(), + sprintf(self::CLOUD_RESOURCE_MANAGER_URL, $projectNumber) + ); + + if (is_null($accessToken)) { + $accessToken = $this->fetchAuthToken($httpHandler)['access_token']; + } + + $request = new Request('GET', $url, ['authorization' => 'Bearer ' . $accessToken]); + $response = $httpHandler($request); + + $body = json_decode((string) $response->getBody(), true); + return $this->projectId = $body['projectId']; + } + + private function getProjectNumber(): ?string + { + $parts = explode('/', $this->auth->getAudience()); + $i = array_search('projects', $parts); + return $parts[$i + 1] ?? null; + } + + private function isWorkforcePool(): bool + { + $regex = '#//iam\.googleapis\.com/locations/[^/]+/workforcePools/#'; + return preg_match($regex, $this->auth->getAudience()) === 1; + } +} diff --git a/vendor/google/auth/src/Credentials/GCECredentials.php b/vendor/google/auth/src/Credentials/GCECredentials.php new file mode 100644 index 0000000..ab6753b --- /dev/null +++ b/vendor/google/auth/src/Credentials/GCECredentials.php @@ -0,0 +1,685 @@ +push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', + * 'auth' => 'google_auth' + * ]); + * + * $res = $client->get('myproject/taskqueues/myqueue'); + */ +class GCECredentials extends CredentialsLoader implements + SignBlobInterface, + ProjectIdProviderInterface, + GetQuotaProjectInterface +{ + use IamSignerTrait; + + // phpcs:disable + const cacheKey = 'GOOGLE_AUTH_PHP_GCE'; + // phpcs:enable + + /** + * The metadata IP address on appengine instances. + * + * The IP is used instead of the domain 'metadata' to avoid slow responses + * when not on Compute Engine. + */ + const METADATA_IP = '169.254.169.254'; + + /** + * The metadata path of the default token. + */ + const TOKEN_URI_PATH = 'v1/instance/service-accounts/default/token'; + + /** + * The metadata path of the default id token. + */ + const ID_TOKEN_URI_PATH = 'v1/instance/service-accounts/default/identity'; + + /** + * The metadata path of the client ID. + */ + const CLIENT_ID_URI_PATH = 'v1/instance/service-accounts/default/email'; + + /** + * The metadata path of the project ID. + */ + const PROJECT_ID_URI_PATH = 'v1/project/project-id'; + + /** + * The metadata path of the project ID. + */ + const UNIVERSE_DOMAIN_URI_PATH = 'v1/universe/universe-domain'; + + /** + * The header whose presence indicates GCE presence. + */ + const FLAVOR_HEADER = 'Metadata-Flavor'; + + /** + * The Linux file which contains the product name. + */ + private const GKE_PRODUCT_NAME_FILE = '/sys/class/dmi/id/product_name'; + + /** + * The Windows Registry key path to the product name + */ + private const WINDOWS_REGISTRY_KEY_PATH = 'HKEY_LOCAL_MACHINE\\SYSTEM\\HardwareConfig\\Current\\'; + + /** + * The Windows registry key name for the product name + */ + private const WINDOWS_REGISTRY_KEY_NAME = 'SystemProductName'; + + /** + * The Name of the product expected from the windows registry + */ + private const PRODUCT_NAME = 'Google'; + + private const CRED_TYPE = 'mds'; + + /** + * Note: the explicit `timeout` and `tries` below is a workaround. The underlying + * issue is that resolving an unknown host on some networks will take + * 20-30 seconds; making this timeout short fixes the issue, but + * could lead to false negatives in the event that we are on GCE, but + * the metadata resolution was particularly slow. The latter case is + * "unlikely" since the expected 4-nines time is about 0.5 seconds. + * This allows us to limit the total ping maximum timeout to 1.5 seconds + * for developer desktop scenarios. + */ + const MAX_COMPUTE_PING_TRIES = 3; + const COMPUTE_PING_CONNECTION_TIMEOUT_S = 0.5; + + /** + * Flag used to ensure that the onGCE test is only done once;. + * + * @var bool + */ + private $hasCheckedOnGce = false; + + /** + * Flag that stores the value of the onGCE check. + * + * @var bool + */ + private $isOnGce = false; + + /** + * Result of fetchAuthToken. + * + * @var array + */ + protected $lastReceivedToken; + + /** + * @var string|null + */ + private $clientName; + + /** + * @var string|null + */ + private $projectId; + + /** + * @var string + */ + private $tokenUri; + + /** + * @var string + */ + private $targetAudience; + + /** + * @var string|null + */ + private $quotaProject; + + /** + * @var string|null + */ + private $serviceAccountIdentity; + + /** + * @var string + */ + private ?string $universeDomain; + + /** + * @param Iam|null $iam [optional] An IAM instance. + * @param string|string[] $scope [optional] the scope of the access request, + * expressed either as an array or as a space-delimited string. + * @param string $targetAudience [optional] The audience for the ID token. + * @param string $quotaProject [optional] Specifies a project to bill for access + * charges associated with the request. + * @param string $serviceAccountIdentity [optional] Specify a service + * account identity name to use instead of "default". + * @param string|null $universeDomain [optional] Specify a universe domain to use + * instead of fetching one from the metadata server. + */ + public function __construct( + ?Iam $iam = null, + $scope = null, + $targetAudience = null, + $quotaProject = null, + $serviceAccountIdentity = null, + ?string $universeDomain = null + ) { + $this->iam = $iam; + + if ($scope && $targetAudience) { + throw new InvalidArgumentException( + 'Scope and targetAudience cannot both be supplied' + ); + } + + $tokenUri = self::getTokenUri($serviceAccountIdentity); + if ($scope) { + if (is_string($scope)) { + $scope = explode(' ', $scope); + } + + $scope = implode(',', $scope); + + $tokenUri = $tokenUri . '?scopes=' . $scope; + } elseif ($targetAudience) { + $tokenUri = self::getIdTokenUri($serviceAccountIdentity); + $tokenUri = $tokenUri . '?audience=' . $targetAudience; + $this->targetAudience = $targetAudience; + } + + $this->tokenUri = $tokenUri; + $this->quotaProject = $quotaProject; + $this->serviceAccountIdentity = $serviceAccountIdentity; + $this->universeDomain = $universeDomain; + } + + /** + * The full uri for accessing the default token. + * + * @param string $serviceAccountIdentity [optional] Specify a service + * account identity name to use instead of "default". + * @return string + */ + public static function getTokenUri($serviceAccountIdentity = null) + { + $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; + $base .= self::TOKEN_URI_PATH; + + if ($serviceAccountIdentity) { + return str_replace( + '/default/', + '/' . $serviceAccountIdentity . '/', + $base + ); + } + return $base; + } + + /** + * The full uri for accessing the default service account. + * + * @param string $serviceAccountIdentity [optional] Specify a service + * account identity name to use instead of "default". + * @return string + */ + public static function getClientNameUri($serviceAccountIdentity = null) + { + $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; + $base .= self::CLIENT_ID_URI_PATH; + + if ($serviceAccountIdentity) { + return str_replace( + '/default/', + '/' . $serviceAccountIdentity . '/', + $base + ); + } + + return $base; + } + + /** + * The full uri for accesesing the default identity token. + * + * @param string $serviceAccountIdentity [optional] Specify a service + * account identity name to use instead of "default". + * @return string + */ + private static function getIdTokenUri($serviceAccountIdentity = null) + { + $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; + $base .= self::ID_TOKEN_URI_PATH; + + if ($serviceAccountIdentity) { + return str_replace( + '/default/', + '/' . $serviceAccountIdentity . '/', + $base + ); + } + + return $base; + } + + /** + * The full uri for accessing the default project ID. + * + * @return string + */ + private static function getProjectIdUri() + { + $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; + + return $base . self::PROJECT_ID_URI_PATH; + } + + /** + * The full uri for accessing the default universe domain. + * + * @return string + */ + private static function getUniverseDomainUri() + { + $base = 'http://' . self::METADATA_IP . '/computeMetadata/'; + + return $base . self::UNIVERSE_DOMAIN_URI_PATH; + } + + /** + * Determines if this an App Engine Flexible instance, by accessing the + * GAE_INSTANCE environment variable. + * + * @return bool true if this an App Engine Flexible Instance, false otherwise + */ + public static function onAppEngineFlexible() + { + return substr((string) getenv('GAE_INSTANCE'), 0, 4) === 'aef-'; + } + + /** + * Determines if this a GCE instance, by accessing the expected metadata + * host. + * If $httpHandler is not specified a the default HttpHandler is used. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @return bool True if this a GCEInstance, false otherwise + */ + public static function onGce(?callable $httpHandler = null) + { + $httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + + $checkUri = 'http://' . self::METADATA_IP; + for ($i = 1; $i <= self::MAX_COMPUTE_PING_TRIES; $i++) { + try { + // Comment from: oauth2client/client.py + // + // Note: the explicit `timeout` below is a workaround. The underlying + // issue is that resolving an unknown host on some networks will take + // 20-30 seconds; making this timeout short fixes the issue, but + // could lead to false negatives in the event that we are on GCE, but + // the metadata resolution was particularly slow. The latter case is + // "unlikely". + $resp = $httpHandler( + new Request( + 'GET', + $checkUri, + [ + self::FLAVOR_HEADER => 'Google', + self::$metricMetadataKey => self::getMetricsHeader('', 'mds') + ] + ), + ['timeout' => self::COMPUTE_PING_CONNECTION_TIMEOUT_S] + ); + + return $resp->getHeaderLine(self::FLAVOR_HEADER) == 'Google'; + } catch (ClientException $e) { + } catch (ServerException $e) { + } catch (RequestException $e) { + } catch (ConnectException $e) { + } + } + + if (PHP_OS === 'Windows' || PHP_OS === 'WINNT') { + return self::detectResidencyWindows( + self::WINDOWS_REGISTRY_KEY_PATH . self::WINDOWS_REGISTRY_KEY_NAME + ); + } + + // Detect GCE residency on Linux + return self::detectResidencyLinux(self::GKE_PRODUCT_NAME_FILE); + } + + private static function detectResidencyLinux(string $productNameFile): bool + { + if (file_exists($productNameFile)) { + $productName = trim((string) file_get_contents($productNameFile)); + return 0 === strpos($productName, self::PRODUCT_NAME); + } + return false; + } + + private static function detectResidencyWindows(string $registryProductKey): bool + { + if (!class_exists(COM::class)) { + // the COM extension must be installed and enabled to detect Windows residency + // see https://www.php.net/manual/en/book.com.php + return false; + } + + $shell = new COM('WScript.Shell'); + $productName = null; + + try { + $productName = $shell->regRead($registryProductKey); + } catch (com_exception) { + // This means that we tried to read a key that doesn't exist on the registry + // which might mean that it is a windows instance that is not on GCE + return false; + } + + return 0 === strpos($productName, self::PRODUCT_NAME); + } + + /** + * Implements FetchAuthTokenInterface#fetchAuthToken. + * + * Fetches the auth tokens from the GCE metadata host if it is available. + * If $httpHandler is not specified a the default HttpHandler is used. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array $headers [optional] Headers to be inserted + * into the token endpoint request present. + * + * @return array { + * A set of auth related metadata, based on the token type. + * + * @type string $access_token for access tokens + * @type int $expires_in for access tokens + * @type string $token_type for access tokens + * @type string $id_token for ID tokens + * } + * @throws \Exception + */ + public function fetchAuthToken(?callable $httpHandler = null, array $headers = []) + { + $httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + + if (!$this->hasCheckedOnGce) { + $this->isOnGce = self::onGce($httpHandler); + $this->hasCheckedOnGce = true; + } + if (!$this->isOnGce) { + return []; // return an empty array with no access token + } + + $response = $this->getFromMetadata( + $httpHandler, + $this->tokenUri, + $this->applyTokenEndpointMetrics($headers, $this->targetAudience ? 'it' : 'at') + ); + + if ($this->targetAudience) { + return $this->lastReceivedToken = ['id_token' => $response]; + } + + if (null === $json = json_decode($response, true)) { + throw new \Exception('Invalid JSON response'); + } + + $json['expires_at'] = time() + $json['expires_in']; + + // store this so we can retrieve it later + $this->lastReceivedToken = $json; + + return $json; + } + + /** + * Returns the Cache Key for the credential token. + * The format for the cache key is: + * TokenURI + * + * @return string + */ + public function getCacheKey() + { + return $this->tokenUri; + } + + /** + * @return array|null + */ + public function getLastReceivedToken() + { + if ($this->lastReceivedToken) { + if (array_key_exists('id_token', $this->lastReceivedToken)) { + return $this->lastReceivedToken; + } + + return [ + 'access_token' => $this->lastReceivedToken['access_token'], + 'expires_at' => $this->lastReceivedToken['expires_at'] + ]; + } + + return null; + } + + /** + * Get the client name from GCE metadata. + * + * Subsequent calls will return a cached value. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @return string + */ + public function getClientName(?callable $httpHandler = null) + { + if ($this->clientName) { + return $this->clientName; + } + + $httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + + if (!$this->hasCheckedOnGce) { + $this->isOnGce = self::onGce($httpHandler); + $this->hasCheckedOnGce = true; + } + + if (!$this->isOnGce) { + return ''; + } + + $this->clientName = $this->getFromMetadata( + $httpHandler, + self::getClientNameUri($this->serviceAccountIdentity) + ); + + return $this->clientName; + } + + /** + * Fetch the default Project ID from compute engine. + * + * Returns null if called outside GCE. + * + * @param callable|null $httpHandler Callback which delivers psr7 request + * @return string|null + */ + public function getProjectId(?callable $httpHandler = null) + { + if ($this->projectId) { + return $this->projectId; + } + + $httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + + if (!$this->hasCheckedOnGce) { + $this->isOnGce = self::onGce($httpHandler); + $this->hasCheckedOnGce = true; + } + + if (!$this->isOnGce) { + return null; + } + + $this->projectId = $this->getFromMetadata($httpHandler, self::getProjectIdUri()); + return $this->projectId; + } + + /** + * Fetch the default universe domain from the metadata server. + * + * @param callable|null $httpHandler Callback which delivers psr7 request + * @return string + */ + public function getUniverseDomain(?callable $httpHandler = null): string + { + if (null !== $this->universeDomain) { + return $this->universeDomain; + } + + $httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + + if (!$this->hasCheckedOnGce) { + $this->isOnGce = self::onGce($httpHandler); + $this->hasCheckedOnGce = true; + } + + try { + $this->universeDomain = $this->getFromMetadata( + $httpHandler, + self::getUniverseDomainUri() + ); + } catch (ClientException $e) { + // If the metadata server exists, but returns a 404 for the universe domain, the auth + // libraries should safely assume this is an older metadata server running in GCU, and + // should return the default universe domain. + if (!$e->hasResponse() || 404 != $e->getResponse()->getStatusCode()) { + throw $e; + } + $this->universeDomain = self::DEFAULT_UNIVERSE_DOMAIN; + } + + // We expect in some cases the metadata server will return an empty string for the universe + // domain. In this case, the auth library MUST return the default universe domain. + if ('' === $this->universeDomain) { + $this->universeDomain = self::DEFAULT_UNIVERSE_DOMAIN; + } + + return $this->universeDomain; + } + + /** + * Fetch the value of a GCE metadata server URI. + * + * @param callable $httpHandler An HTTP Handler to deliver PSR7 requests. + * @param string $uri The metadata URI. + * @param array $headers [optional] If present, add these headers to the token + * endpoint request. + * + * @return string + */ + private function getFromMetadata(callable $httpHandler, $uri, array $headers = []) + { + $resp = $httpHandler( + new Request( + 'GET', + $uri, + [self::FLAVOR_HEADER => 'Google'] + $headers + ) + ); + + return (string) $resp->getBody(); + } + + /** + * Get the quota project used for this API request + * + * @return string|null + */ + public function getQuotaProject() + { + return $this->quotaProject; + } + + /** + * Set whether or not we've already checked the GCE environment. + * + * @param bool $isOnGce + * + * @return void + */ + public function setIsOnGce($isOnGce) + { + // Implicitly set hasCheckedGce to true + $this->hasCheckedOnGce = true; + + // Set isOnGce + $this->isOnGce = $isOnGce; + } + + protected function getCredType(): string + { + return self::CRED_TYPE; + } +} diff --git a/vendor/google/auth/src/Credentials/IAMCredentials.php b/vendor/google/auth/src/Credentials/IAMCredentials.php new file mode 100644 index 0000000..96d1df7 --- /dev/null +++ b/vendor/google/auth/src/Credentials/IAMCredentials.php @@ -0,0 +1,91 @@ +selector = $selector; + $this->token = $token; + } + + /** + * export a callback function which updates runtime metadata. + * + * @return callable updateMetadata function + */ + public function getUpdateMetadataFunc() + { + return [$this, 'updateMetadata']; + } + + /** + * Updates metadata with the appropriate header metadata. + * + * @param array $metadata metadata hashmap + * @param string $unusedAuthUri optional auth uri + * @param callable|null $httpHandler callback which delivers psr7 request + * Note: this param is unused here, only included here for + * consistency with other credentials class + * + * @return array updated metadata hashmap + */ + public function updateMetadata( + $metadata, + $unusedAuthUri = null, + ?callable $httpHandler = null + ) { + $metadata_copy = $metadata; + $metadata_copy[self::SELECTOR_KEY] = $this->selector; + $metadata_copy[self::TOKEN_KEY] = $this->token; + + return $metadata_copy; + } +} diff --git a/vendor/google/auth/src/Credentials/ImpersonatedServiceAccountCredentials.php b/vendor/google/auth/src/Credentials/ImpersonatedServiceAccountCredentials.php new file mode 100644 index 0000000..f473f8e --- /dev/null +++ b/vendor/google/auth/src/Credentials/ImpersonatedServiceAccountCredentials.php @@ -0,0 +1,295 @@ + $jsonKey JSON credential file path or JSON array credentials { + * JSON credentials as an associative array. + * + * @type string $service_account_impersonation_url The URL to the service account + * @type string|FetchAuthTokenInterface $source_credentials The source credentials to impersonate + * @type int $lifetime The lifetime of the impersonated credentials + * @type string[] $delegates The delegates to impersonate + * } + * @param string|null $targetAudience The audience to request an ID token. + */ + public function __construct( + string|array|null $scope, + string|array $jsonKey, + private ?string $targetAudience = null + ) { + if (is_string($jsonKey)) { + if (!file_exists($jsonKey)) { + throw new InvalidArgumentException('file does not exist'); + } + $json = file_get_contents($jsonKey); + if (!$jsonKey = json_decode((string) $json, true)) { + throw new LogicException('invalid json for auth config'); + } + } + if (!array_key_exists('service_account_impersonation_url', $jsonKey)) { + throw new LogicException( + 'json key is missing the service_account_impersonation_url field' + ); + } + if (!array_key_exists('source_credentials', $jsonKey)) { + throw new LogicException('json key is missing the source_credentials field'); + } + if ($scope && $targetAudience) { + throw new InvalidArgumentException( + 'Scope and targetAudience cannot both be supplied' + ); + } + if (is_array($jsonKey['source_credentials'])) { + if (!array_key_exists('type', $jsonKey['source_credentials'])) { + throw new InvalidArgumentException('json key source credentials are missing the type field'); + } + if ( + $targetAudience !== null + && $jsonKey['source_credentials']['type'] === 'service_account' + ) { + // Service account tokens MUST request a scope, and as this token is only used to impersonate + // an ID token, the narrowest scope we can request is `iam`. + $scope = self::IAM_SCOPE; + } + $jsonKey['source_credentials'] = match ($jsonKey['source_credentials']['type'] ?? null) { + // Do not pass $defaultScope to ServiceAccountCredentials + 'service_account' => new ServiceAccountCredentials($scope, $jsonKey['source_credentials']), + 'authorized_user' => new UserRefreshCredentials($scope, $jsonKey['source_credentials']), + 'external_account' => new ExternalAccountCredentials($scope, $jsonKey['source_credentials']), + default => throw new \InvalidArgumentException('invalid value in the type field'), + }; + } + + $this->targetScope = $scope ?? []; + $this->lifetime = $jsonKey['lifetime'] ?? 3600; + $this->delegates = $jsonKey['delegates'] ?? []; + + $this->serviceAccountImpersonationUrl = $jsonKey['service_account_impersonation_url']; + $this->impersonatedServiceAccountName = $this->getImpersonatedServiceAccountNameFromUrl( + $this->serviceAccountImpersonationUrl + ); + + $this->sourceCredentials = $jsonKey['source_credentials']; + } + + /** + * Helper function for extracting the Server Account Name from the URL saved in the account + * credentials file. + * + * @param $serviceAccountImpersonationUrl string URL from "service_account_impersonation_url" + * @return string Service account email or ID. + */ + private function getImpersonatedServiceAccountNameFromUrl( + string $serviceAccountImpersonationUrl + ): string { + $fields = explode('/', $serviceAccountImpersonationUrl); + $lastField = end($fields); + $splitter = explode(':', $lastField); + return $splitter[0]; + } + + /** + * Get the client name from the keyfile + * + * In this implementation, it will return the issuers email from the oauth token. + * + * @param callable|null $unusedHttpHandler not used by this credentials type. + * @return string Token issuer email + */ + public function getClientName(?callable $unusedHttpHandler = null) + { + return $this->impersonatedServiceAccountName; + } + + /** + * @param callable|null $httpHandler + * + * @return array { + * A set of auth related metadata, containing the following + * + * @type string $access_token + * @type int $expires_in + * @type string $scope + * @type string $token_type + * @type string $id_token + * } + */ + public function fetchAuthToken(?callable $httpHandler = null) + { + $httpHandler = $httpHandler ?? HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + + // The FetchAuthTokenInterface technically does not have a "headers" argument, but all of + // the implementations do. Additionally, passing in more parameters than the function has + // defined is allowed in PHP. So we'll just ignore the phpstan error here. + // @phpstan-ignore-next-line + $authToken = $this->sourceCredentials->fetchAuthToken( + $httpHandler, + $this->applyTokenEndpointMetrics([], 'at') + ); + + $headers = $this->applyTokenEndpointMetrics([ + 'Content-Type' => 'application/json', + 'Cache-Control' => 'no-store', + 'Authorization' => sprintf('Bearer %s', $authToken['access_token'] ?? $authToken['id_token']), + ], $this->isIdTokenRequest() ? 'it' : 'at'); + + $body = match ($this->isIdTokenRequest()) { + true => [ + 'audience' => $this->targetAudience, + 'includeEmail' => true, + ], + false => [ + 'scope' => $this->targetScope, + 'delegates' => $this->delegates, + 'lifetime' => sprintf('%ss', $this->lifetime), + ] + }; + + $url = $this->serviceAccountImpersonationUrl; + if ($this->isIdTokenRequest()) { + $regex = '/serviceAccounts\/(?[^:]+):generateAccessToken$/'; + if (!preg_match($regex, $url, $matches)) { + throw new InvalidArgumentException( + 'Invalid service account impersonation URL - unable to parse service account email' + ); + } + $url = str_replace( + 'UNIVERSE_DOMAIN', + $this->getUniverseDomain(), + sprintf(self::ID_TOKEN_IMPERSONATION_URL, $matches['email']) + ); + } + + $request = new Request( + 'POST', + $url, + $headers, + (string) json_encode($body) + ); + + $response = $httpHandler($request); + $body = json_decode((string) $response->getBody(), true); + + return match ($this->isIdTokenRequest()) { + true => ['id_token' => $body['token']], + false => [ + 'access_token' => $body['accessToken'], + 'expires_at' => strtotime($body['expireTime']), + ] + }; + } + + /** + * Returns the Cache Key for the credentials + * The cache key is the same as the UserRefreshCredentials class + * + * @return string + */ + public function getCacheKey() + { + return $this->getFullCacheKey( + $this->serviceAccountImpersonationUrl . $this->sourceCredentials->getCacheKey() + ); + } + + /** + * @return array + */ + public function getLastReceivedToken() + { + return $this->sourceCredentials->getLastReceivedToken(); + } + + protected function getCredType(): string + { + return self::CRED_TYPE; + } + + private function isIdTokenRequest(): bool + { + return !is_null($this->targetAudience); + } + + public function getUniverseDomain(): string + { + return $this->sourceCredentials instanceof GetUniverseDomainInterface + ? $this->sourceCredentials->getUniverseDomain() + : self::DEFAULT_UNIVERSE_DOMAIN; + } +} diff --git a/vendor/google/auth/src/Credentials/InsecureCredentials.php b/vendor/google/auth/src/Credentials/InsecureCredentials.php new file mode 100644 index 0000000..5a2bef1 --- /dev/null +++ b/vendor/google/auth/src/Credentials/InsecureCredentials.php @@ -0,0 +1,68 @@ + '' + ]; + + /** + * Fetches the auth token. In this case it returns an empty string. + * + * @param callable|null $httpHandler + * @return array{access_token:string} A set of auth related metadata + */ + public function fetchAuthToken(?callable $httpHandler = null) + { + return $this->token; + } + + /** + * Returns the cache key. In this case it returns a null value, disabling + * caching. + * + * @return string|null + */ + public function getCacheKey() + { + return null; + } + + /** + * Fetches the last received token. In this case, it returns the same empty string + * auth token. + * + * @return array{access_token:string} + */ + public function getLastReceivedToken() + { + return $this->token; + } +} diff --git a/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php b/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php new file mode 100644 index 0000000..3d23f71 --- /dev/null +++ b/vendor/google/auth/src/Credentials/ServiceAccountCredentials.php @@ -0,0 +1,457 @@ +push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', + * 'auth' => 'google_auth' // authorize all requests + * ]); + * + * $res = $client->get('myproject/taskqueues/myqueue'); + */ +class ServiceAccountCredentials extends CredentialsLoader implements + GetQuotaProjectInterface, + SignBlobInterface, + ProjectIdProviderInterface +{ + use ServiceAccountSignerTrait; + + /** + * Used in observability metric headers + * + * @var string + */ + private const CRED_TYPE = 'sa'; + private const IAM_SCOPE = 'https://www.googleapis.com/auth/iam'; + + /** + * The OAuth2 instance used to conduct authorization. + * + * @var OAuth2 + */ + protected $auth; + + /** + * The quota project associated with the JSON credentials + * + * @var string + */ + protected $quotaProject; + + /** + * @var string|null + */ + protected $projectId; + + /** + * @var array|null + */ + private $lastReceivedJwtAccessToken; + + /** + * @var bool + */ + private $useJwtAccessWithScope = false; + + /** + * @var ServiceAccountJwtAccessCredentials|null + */ + private $jwtAccessCredentials; + + /** + * @var string + */ + private string $universeDomain; + + /** + * Whether this is an ID token request or an access token request. Used when + * building the metric header. + */ + private bool $isIdTokenRequest = false; + + /** + * Create a new ServiceAccountCredentials. + * + * @param string|string[]|null $scope the scope of the access request, expressed + * either as an Array or as a space-delimited String. + * @param string|array $jsonKey JSON credential file path or JSON credentials + * as an associative array + * @param string $sub an email address account to impersonate, in situations when + * the service account has been delegated domain wide access. + * @param string $targetAudience The audience for the ID token. + */ + public function __construct( + $scope, + $jsonKey, + $sub = null, + $targetAudience = null + ) { + if (is_string($jsonKey)) { + if (!file_exists($jsonKey)) { + throw new \InvalidArgumentException('file does not exist'); + } + $jsonKeyStream = file_get_contents($jsonKey); + if (!$jsonKey = json_decode((string) $jsonKeyStream, true)) { + throw new \LogicException('invalid json for auth config'); + } + } + if (!array_key_exists('client_email', $jsonKey)) { + throw new \InvalidArgumentException( + 'json key is missing the client_email field' + ); + } + if (!array_key_exists('private_key', $jsonKey)) { + throw new \InvalidArgumentException( + 'json key is missing the private_key field' + ); + } + if (array_key_exists('quota_project_id', $jsonKey)) { + $this->quotaProject = (string) $jsonKey['quota_project_id']; + } + if ($scope && $targetAudience) { + throw new InvalidArgumentException( + 'Scope and targetAudience cannot both be supplied' + ); + } + $additionalClaims = []; + if ($targetAudience) { + $additionalClaims = ['target_audience' => $targetAudience]; + $this->isIdTokenRequest = true; + } + $this->auth = new OAuth2([ + 'audience' => self::TOKEN_CREDENTIAL_URI, + 'issuer' => $jsonKey['client_email'], + 'scope' => $scope, + 'signingAlgorithm' => 'RS256', + 'signingKey' => $jsonKey['private_key'], + 'signingKeyId' => $jsonKey['private_key_id'] ?? null, + 'sub' => $sub, + 'tokenCredentialUri' => self::TOKEN_CREDENTIAL_URI, + 'additionalClaims' => $additionalClaims, + ]); + + $this->projectId = $jsonKey['project_id'] ?? null; + $this->universeDomain = $jsonKey['universe_domain'] ?? self::DEFAULT_UNIVERSE_DOMAIN; + } + + /** + * When called, the ServiceAccountCredentials will use an instance of + * ServiceAccountJwtAccessCredentials to fetch (self-sign) an access token + * even when only scopes are supplied. Otherwise, + * ServiceAccountJwtAccessCredentials is only called when no scopes and an + * authUrl (audience) is suppled. + * + * @return void + */ + public function useJwtAccessWithScope() + { + $this->useJwtAccessWithScope = true; + } + + /** + * @param callable|null $httpHandler + * @param array $headers [optional] Headers to be inserted + * into the token endpoint request present. + * + * @return array { + * A set of auth related metadata, containing the following + * + * @type string $access_token + * @type int $expires_in + * @type string $token_type + * } + */ + public function fetchAuthToken(?callable $httpHandler = null, array $headers = []) + { + if ($this->useSelfSignedJwt()) { + $jwtCreds = $this->createJwtAccessCredentials(); + + $accessToken = $jwtCreds->fetchAuthToken($httpHandler); + + if ($lastReceivedToken = $jwtCreds->getLastReceivedToken()) { + // Keep self-signed JWTs in memory as the last received token + $this->lastReceivedJwtAccessToken = $lastReceivedToken; + } + + return $accessToken; + } + + if ($this->isIdTokenRequest && $this->getUniverseDomain() !== self::DEFAULT_UNIVERSE_DOMAIN) { + $now = time(); + $jwt = Jwt::encode( + [ + 'iss' => $this->auth->getIssuer(), + 'sub' => $this->auth->getIssuer(), + 'scope' => self::IAM_SCOPE, + 'exp' => ($now + $this->auth->getExpiry()), + 'iat' => ($now - OAuth2::DEFAULT_SKEW_SECONDS), + ], + $this->auth->getSigningKey(), + $this->auth->getSigningAlgorithm(), + $this->auth->getSigningKeyId() + ); + // We create a new instance of Iam each time because the `$httpHandler` might change. + $idToken = (new Iam($httpHandler, $this->getUniverseDomain()))->generateIdToken( + $this->auth->getIssuer(), + $this->auth->getAdditionalClaims()['target_audience'], + $jwt, + $this->applyTokenEndpointMetrics($headers, 'it') + ); + return ['id_token' => $idToken]; + } + return $this->auth->fetchAuthToken( + $httpHandler, + $this->applyTokenEndpointMetrics($headers, $this->isIdTokenRequest ? 'it' : 'at') + ); + } + + /** + * Return the Cache Key for the credentials. + * For the cache key format is one of the following: + * ClientEmail.Scope[.Sub] + * ClientEmail.Audience[.Sub] + * + * @return string + */ + public function getCacheKey() + { + $scopeOrAudience = $this->auth->getScope(); + if (!$scopeOrAudience) { + $scopeOrAudience = $this->auth->getAudience(); + } + + $key = $this->auth->getIssuer() . '.' . $scopeOrAudience; + if ($sub = $this->auth->getSub()) { + $key .= '.' . $sub; + } + + return $key; + } + + /** + * @return array + */ + public function getLastReceivedToken() + { + // If self-signed JWTs are being used, fetch the last received token + // from memory. Else, fetch it from OAuth2 + return $this->useSelfSignedJwt() + ? $this->lastReceivedJwtAccessToken + : $this->auth->getLastReceivedToken(); + } + + /** + * Get the project ID from the service account keyfile. + * + * Returns null if the project ID does not exist in the keyfile. + * + * @param callable|null $httpHandler Not used by this credentials type. + * @return string|null + */ + public function getProjectId(?callable $httpHandler = null) + { + return $this->projectId; + } + + /** + * Updates metadata with the authorization token. + * + * @param array $metadata metadata hashmap + * @param string $authUri optional auth uri + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array updated metadata hashmap + */ + public function updateMetadata( + $metadata, + $authUri = null, + ?callable $httpHandler = null + ) { + // scope exists. use oauth implementation + if (!$this->useSelfSignedJwt()) { + return parent::updateMetadata($metadata, $authUri, $httpHandler); + } + + $jwtCreds = $this->createJwtAccessCredentials(); + if ($this->auth->getScope()) { + // Prefer user-provided "scope" to "audience" + $updatedMetadata = $jwtCreds->updateMetadata($metadata, null, $httpHandler); + } else { + $updatedMetadata = $jwtCreds->updateMetadata($metadata, $authUri, $httpHandler); + } + + if ($lastReceivedToken = $jwtCreds->getLastReceivedToken()) { + // Keep self-signed JWTs in memory as the last received token + $this->lastReceivedJwtAccessToken = $lastReceivedToken; + } + + return $updatedMetadata; + } + + /** + * @return ServiceAccountJwtAccessCredentials + */ + private function createJwtAccessCredentials() + { + if (!$this->jwtAccessCredentials) { + // Create credentials for self-signing a JWT (JwtAccess) + $credJson = [ + 'private_key' => $this->auth->getSigningKey(), + 'client_email' => $this->auth->getIssuer(), + ]; + $this->jwtAccessCredentials = new ServiceAccountJwtAccessCredentials( + $credJson, + $this->auth->getScope() + ); + } + + return $this->jwtAccessCredentials; + } + + /** + * @param string $sub an email address account to impersonate, in situations when + * the service account has been delegated domain wide access. + * @return void + */ + public function setSub($sub) + { + $this->auth->setSub($sub); + } + + /** + * Get the client name from the keyfile. + * + * In this case, it returns the keyfile's client_email key. + * + * @param callable|null $httpHandler Not used by this credentials type. + * @return string + */ + public function getClientName(?callable $httpHandler = null) + { + return $this->auth->getIssuer(); + } + + /** + * Get the private key from the keyfile. + * + * In this case, it returns the keyfile's private_key key, needed for JWT signing. + * + * @return string + */ + public function getPrivateKey() + { + return $this->auth->getSigningKey(); + } + + /** + * Get the quota project used for this API request + * + * @return string|null + */ + public function getQuotaProject() + { + return $this->quotaProject; + } + + /** + * Get the universe domain configured in the JSON credential. + * + * @return string + */ + public function getUniverseDomain(): string + { + return $this->universeDomain; + } + + protected function getCredType(): string + { + return self::CRED_TYPE; + } + + /** + * @return bool + */ + private function useSelfSignedJwt() + { + // When a sub is supplied, the user is using domain-wide delegation, which not available + // with self-signed JWTs + if (null !== $this->auth->getSub()) { + // If we are outside the GDU, we can't use domain-wide delegation + if ($this->getUniverseDomain() !== self::DEFAULT_UNIVERSE_DOMAIN) { + throw new \LogicException(sprintf( + 'Service Account subject is configured for the credential. Domain-wide ' . + 'delegation is not supported in universes other than %s.', + self::DEFAULT_UNIVERSE_DOMAIN + )); + } + return false; + } + + // Do not use self-signed JWT for ID tokens + if ($this->isIdTokenRequest) { + return false; + } + + // When true, ServiceAccountCredentials will always use JwtAccess for access tokens + if ($this->useJwtAccessWithScope) { + return true; + } + + // If the universe domain is outside the GDU, use JwtAccess for access tokens + if ($this->getUniverseDomain() !== self::DEFAULT_UNIVERSE_DOMAIN) { + return true; + } + + return is_null($this->auth->getScope()); + } +} diff --git a/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php b/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php new file mode 100644 index 0000000..5037376 --- /dev/null +++ b/vendor/google/auth/src/Credentials/ServiceAccountJwtAccessCredentials.php @@ -0,0 +1,246 @@ + $jsonKey JSON credential file path or JSON credentials + * as an associative array + * @param string|string[] $scope the scope of the access request, expressed + * either as an Array or as a space-delimited String. + */ + public function __construct($jsonKey, $scope = null) + { + if (is_string($jsonKey)) { + if (!file_exists($jsonKey)) { + throw new \InvalidArgumentException('file does not exist'); + } + $jsonKeyStream = file_get_contents($jsonKey); + if (!$jsonKey = json_decode((string) $jsonKeyStream, true)) { + throw new \LogicException('invalid json for auth config'); + } + } + if (!array_key_exists('client_email', $jsonKey)) { + throw new \InvalidArgumentException( + 'json key is missing the client_email field' + ); + } + if (!array_key_exists('private_key', $jsonKey)) { + throw new \InvalidArgumentException( + 'json key is missing the private_key field' + ); + } + if (array_key_exists('quota_project_id', $jsonKey)) { + $this->quotaProject = (string) $jsonKey['quota_project_id']; + } + $this->auth = new OAuth2([ + 'issuer' => $jsonKey['client_email'], + 'sub' => $jsonKey['client_email'], + 'signingAlgorithm' => 'RS256', + 'signingKey' => $jsonKey['private_key'], + 'scope' => $scope, + ]); + + $this->projectId = $jsonKey['project_id'] ?? null; + } + + /** + * Updates metadata with the authorization token. + * + * @param array $metadata metadata hashmap + * @param string $authUri optional auth uri + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array updated metadata hashmap + */ + public function updateMetadata( + $metadata, + $authUri = null, + ?callable $httpHandler = null + ) { + $scope = $this->auth->getScope(); + if (empty($authUri) && empty($scope)) { + return $metadata; + } + + $this->auth->setAudience($authUri); + + return parent::updateMetadata($metadata, $authUri, $httpHandler); + } + + /** + * Implements FetchAuthTokenInterface#fetchAuthToken. + * + * @param callable|null $httpHandler + * + * @return null|array{access_token:string} A set of auth related metadata + */ + public function fetchAuthToken(?callable $httpHandler = null) + { + $audience = $this->auth->getAudience(); + $scope = $this->auth->getScope(); + if (empty($audience) && empty($scope)) { + return null; + } + + if (!empty($audience) && !empty($scope)) { + throw new \UnexpectedValueException( + 'Cannot sign both audience and scope in JwtAccess' + ); + } + + $access_token = $this->auth->toJwt(); + + // Set the self-signed access token in OAuth2 for getLastReceivedToken + $this->auth->setAccessToken($access_token); + + return [ + 'access_token' => $access_token, + 'expires_in' => $this->auth->getExpiry(), + 'token_type' => 'Bearer' + ]; + } + + /** + * Return the cache key for the credentials. + * The format for the Cache Key one of the following: + * ClientEmail.Scope + * ClientEmail.Audience + * + * @return string + */ + public function getCacheKey() + { + $scopeOrAudience = $this->auth->getScope(); + if (!$scopeOrAudience) { + $scopeOrAudience = $this->auth->getAudience(); + } + + return $this->auth->getIssuer() . '.' . $scopeOrAudience; + } + + /** + * @return array + */ + public function getLastReceivedToken() + { + return $this->auth->getLastReceivedToken(); + } + + /** + * Get the project ID from the service account keyfile. + * + * Returns null if the project ID does not exist in the keyfile. + * + * @param callable|null $httpHandler Not used by this credentials type. + * @return string|null + */ + public function getProjectId(?callable $httpHandler = null) + { + return $this->projectId; + } + + /** + * Get the client name from the keyfile. + * + * In this case, it returns the keyfile's client_email key. + * + * @param callable|null $httpHandler Not used by this credentials type. + * @return string + */ + public function getClientName(?callable $httpHandler = null) + { + return $this->auth->getIssuer(); + } + + /** + * Get the private key from the keyfile. + * + * In this case, it returns the keyfile's private_key key, needed for JWT signing. + * + * @return string + */ + public function getPrivateKey() + { + return $this->auth->getSigningKey(); + } + + /** + * Get the quota project used for this API request + * + * @return string|null + */ + public function getQuotaProject() + { + return $this->quotaProject; + } + + protected function getCredType(): string + { + return self::CRED_TYPE; + } +} diff --git a/vendor/google/auth/src/Credentials/UserRefreshCredentials.php b/vendor/google/auth/src/Credentials/UserRefreshCredentials.php new file mode 100644 index 0000000..326f6cd --- /dev/null +++ b/vendor/google/auth/src/Credentials/UserRefreshCredentials.php @@ -0,0 +1,202 @@ + $jsonKey JSON credential file path or JSON credentials + * as an associative array + * @param string|null $targetAudience The audience for the ID token. + */ + public function __construct( + $scope, + $jsonKey, + ?string $targetAudience = null + ) { + if (is_string($jsonKey)) { + if (!file_exists($jsonKey)) { + throw new InvalidArgumentException('file does not exist or is unreadable'); + } + $json = file_get_contents($jsonKey); + if (!$jsonKey = json_decode((string) $json, true)) { + throw new LogicException('invalid json for auth config'); + } + } + if (!array_key_exists('client_id', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the client_id field' + ); + } + if (!array_key_exists('client_secret', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the client_secret field' + ); + } + if (!array_key_exists('refresh_token', $jsonKey)) { + throw new InvalidArgumentException( + 'json key is missing the refresh_token field' + ); + } + if ($scope && $targetAudience) { + throw new InvalidArgumentException( + 'Scope and targetAudience cannot both be supplied' + ); + } + $additionalClaims = []; + if ($targetAudience) { + $additionalClaims = ['target_audience' => $targetAudience]; + $this->isIdTokenRequest = true; + } + $this->auth = new OAuth2([ + 'clientId' => $jsonKey['client_id'], + 'clientSecret' => $jsonKey['client_secret'], + 'refresh_token' => $jsonKey['refresh_token'], + 'scope' => $scope, + 'tokenCredentialUri' => self::TOKEN_CREDENTIAL_URI, + 'additionalClaims' => $additionalClaims, + ]); + if (array_key_exists('quota_project_id', $jsonKey)) { + $this->quotaProject = (string) $jsonKey['quota_project_id']; + } + } + + /** + * @param callable|null $httpHandler + * @param array $headers [optional] Metrics headers to be inserted + * into the token endpoint request present. + * This could be passed from ImersonatedServiceAccountCredentials as it uses + * UserRefreshCredentials as source credentials. + * + * @return array { + * A set of auth related metadata, containing the following + * + * @type string $access_token + * @type int $expires_in + * @type string $scope + * @type string $token_type + * @type string $id_token + * } + */ + public function fetchAuthToken(?callable $httpHandler = null, array $headers = []) + { + return $this->auth->fetchAuthToken( + $httpHandler, + $this->applyTokenEndpointMetrics($headers, $this->isIdTokenRequest ? 'it' : 'at') + ); + } + + /** + * Return the Cache Key for the credentials. + * The format for the Cache key is one of the following: + * ClientId.Scope + * ClientId.Audience + * + * @return string + */ + public function getCacheKey() + { + $scopeOrAudience = $this->auth->getScope(); + if (!$scopeOrAudience) { + $scopeOrAudience = $this->auth->getAudience(); + } + + return $this->auth->getClientId() . '.' . $scopeOrAudience; + } + + /** + * @return array + */ + public function getLastReceivedToken() + { + return $this->auth->getLastReceivedToken(); + } + + /** + * Get the quota project used for this API request + * + * @return string|null + */ + public function getQuotaProject() + { + return $this->quotaProject; + } + + /** + * Get the granted scopes (if they exist) for the last fetched token. + * + * @return string|null + */ + public function getGrantedScope() + { + return $this->auth->getGrantedScope(); + } + + protected function getCredType(): string + { + return self::CRED_TYPE; + } +} diff --git a/vendor/google/auth/src/CredentialsLoader.php b/vendor/google/auth/src/CredentialsLoader.php new file mode 100644 index 0000000..d5d59b6 --- /dev/null +++ b/vendor/google/auth/src/CredentialsLoader.php @@ -0,0 +1,319 @@ +|null JSON key | null + */ + public static function fromEnv() + { + $path = self::getEnv(self::ENV_VAR); + if (empty($path)) { + return null; + } + if (!file_exists($path)) { + $cause = 'file ' . $path . ' does not exist'; + throw new \DomainException(self::unableToReadEnv($cause)); + } + $jsonKey = file_get_contents($path); + + return json_decode((string) $jsonKey, true); + } + + /** + * Load a JSON key from a well known path. + * + * The well known path is OS dependent: + * + * * windows: %APPDATA%/gcloud/application_default_credentials.json + * * others: $HOME/.config/gcloud/application_default_credentials.json + * + * If the file does not exist, this returns null. + * + * @return array|null JSON key | null + */ + public static function fromWellKnownFile() + { + $rootEnv = self::isOnWindows() ? 'APPDATA' : 'HOME'; + $path = [self::getEnv($rootEnv)]; + if (!self::isOnWindows()) { + $path[] = self::NON_WINDOWS_WELL_KNOWN_PATH_BASE; + } + $path[] = self::WELL_KNOWN_PATH; + $path = implode(DIRECTORY_SEPARATOR, $path); + if (!file_exists($path)) { + return null; + } + $jsonKey = file_get_contents($path); + return json_decode((string) $jsonKey, true); + } + + /** + * Create a new Credentials instance. + * + * @deprecated This method is being deprecated because of a potential security risk. + * + * This method does not validate the credential configuration. The security + * risk occurs when a credential configuration is accepted from a source + * that is not under your control and used without validation on your side. + * + * If you know that you will be loading credential configurations of a + * specific type, it is recommended to use a credential-type-specific + * method. + * This will ensure that an unexpected credential type with potential for + * malicious intent is not loaded unintentionally. You might still have to do + * validation for certain credential types. Please follow the recommendation + * for that method. For example, if you want to load only service accounts, + * you can create the {@see ServiceAccountCredentials} explicitly: + * + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * $creds = new ServiceAccountCredentials($scopes, $json); + * ``` + * + * If you are loading your credential configuration from an untrusted source and have + * not mitigated the risks (e.g. by validating the configuration yourself), make + * these changes as soon as possible to prevent security risks to your environment. + * + * Regardless of the method used, it is always your responsibility to validate + * configurations received from external sources. + * + * @see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials + * + * @param string|string[] $scope + * @param array $jsonKey + * @param string|string[] $defaultScope + * @return ServiceAccountCredentials|UserRefreshCredentials|ImpersonatedServiceAccountCredentials|ExternalAccountCredentials + */ + public static function makeCredentials( + $scope, + array $jsonKey, + $defaultScope = null + ) { + if (!array_key_exists('type', $jsonKey)) { + throw new \InvalidArgumentException('json key is missing the type field'); + } + + if ($jsonKey['type'] == 'service_account') { + // Do not pass $defaultScope to ServiceAccountCredentials + return new ServiceAccountCredentials($scope, $jsonKey); + } + + if ($jsonKey['type'] == 'authorized_user') { + $anyScope = $scope ?: $defaultScope; + return new UserRefreshCredentials($anyScope, $jsonKey); + } + + if ($jsonKey['type'] == 'impersonated_service_account') { + $anyScope = $scope ?: $defaultScope; + return new ImpersonatedServiceAccountCredentials($anyScope, $jsonKey); + } + + if ($jsonKey['type'] == 'external_account') { + $anyScope = $scope ?: $defaultScope; + return new ExternalAccountCredentials($anyScope, $jsonKey); + } + + throw new \InvalidArgumentException('invalid value in the type field'); + } + + /** + * Create an authorized HTTP Client from an instance of FetchAuthTokenInterface. + * + * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token + * @param array $httpClientOptions (optional) Array of request options to apply. + * @param callable|null $httpHandler (optional) http client to fetch the token. + * @param callable|null $tokenCallback (optional) function to be called when a new token is fetched. + * @return \GuzzleHttp\Client + */ + public static function makeHttpClient( + FetchAuthTokenInterface $fetcher, + array $httpClientOptions = [], + ?callable $httpHandler = null, + ?callable $tokenCallback = null + ) { + $middleware = new Middleware\AuthTokenMiddleware( + $fetcher, + $httpHandler, + $tokenCallback + ); + $stack = \GuzzleHttp\HandlerStack::create(); + $stack->push($middleware); + + return new \GuzzleHttp\Client([ + 'handler' => $stack, + 'auth' => 'google_auth', + ] + $httpClientOptions); + } + + /** + * Create a new instance of InsecureCredentials. + * + * @return InsecureCredentials + */ + public static function makeInsecureCredentials() + { + return new InsecureCredentials(); + } + + /** + * Fetch a quota project from the environment variable + * GOOGLE_CLOUD_QUOTA_PROJECT. Return null if + * GOOGLE_CLOUD_QUOTA_PROJECT is not specified. + * + * @return string|null + */ + public static function quotaProjectFromEnv() + { + return self::getEnv(self::QUOTA_PROJECT_ENV_VAR) ?: null; + } + + /** + * Gets a callable which returns the default device certification. + * + * @throws UnexpectedValueException + * @return callable|null + */ + public static function getDefaultClientCertSource() + { + if (!$clientCertSourceJson = self::loadDefaultClientCertSourceFile()) { + return null; + } + $clientCertSourceCmd = $clientCertSourceJson['cert_provider_command']; + + return function () use ($clientCertSourceCmd) { + $cmd = array_map('escapeshellarg', $clientCertSourceCmd); + exec(implode(' ', $cmd), $output, $returnVar); + + if (0 === $returnVar) { + return implode(PHP_EOL, $output); + } + throw new RuntimeException( + '"cert_provider_command" failed with a nonzero exit code' + ); + }; + } + + /** + * Determines whether or not the default device certificate should be loaded. + * + * @return bool + */ + public static function shouldLoadClientCertSource() + { + return filter_var(self::getEnv(self::MTLS_CERT_ENV_VAR), FILTER_VALIDATE_BOOLEAN); + } + + /** + * @return array{cert_provider_command:string[]}|null + */ + private static function loadDefaultClientCertSourceFile() + { + $rootEnv = self::isOnWindows() ? 'APPDATA' : 'HOME'; + $path = sprintf('%s/%s', self::getEnv($rootEnv), self::MTLS_WELL_KNOWN_PATH); + if (!file_exists($path)) { + return null; + } + $jsonKey = file_get_contents($path); + $clientCertSourceJson = json_decode((string) $jsonKey, true); + if (!$clientCertSourceJson) { + throw new UnexpectedValueException('Invalid client cert source JSON'); + } + if (!isset($clientCertSourceJson['cert_provider_command'])) { + throw new UnexpectedValueException( + 'cert source requires "cert_provider_command"' + ); + } + if (!is_array($clientCertSourceJson['cert_provider_command'])) { + throw new UnexpectedValueException( + 'cert source expects "cert_provider_command" to be an array' + ); + } + return $clientCertSourceJson; + } + + /** + * Get the universe domain from the credential. Defaults to "googleapis.com" + * for all credential types which do not support universe domain. + * + * @return string + */ + public function getUniverseDomain(): string + { + return self::DEFAULT_UNIVERSE_DOMAIN; + } + + private static function getEnv(string $env): mixed + { + return getenv($env) ?: $_ENV[$env] ?? null; + } +} diff --git a/vendor/google/auth/src/ExecutableHandler/ExecutableHandler.php b/vendor/google/auth/src/ExecutableHandler/ExecutableHandler.php new file mode 100644 index 0000000..8f5e13f --- /dev/null +++ b/vendor/google/auth/src/ExecutableHandler/ExecutableHandler.php @@ -0,0 +1,83 @@ + */ + private array $env = []; + + private ?string $output = null; + + /** + * @param array $env + */ + public function __construct( + array $env = [], + int $timeoutMs = self::DEFAULT_EXECUTABLE_TIMEOUT_MILLIS, + ) { + if (!class_exists(Process::class)) { + throw new RuntimeException(sprintf( + 'The "symfony/process" package is required to use %s.', + self::class + )); + } + $this->env = $env; + $this->timeoutMs = $timeoutMs; + } + + /** + * @param string $command + * @return int + */ + public function __invoke(string $command): int + { + $process = Process::fromShellCommandline( + $command, + null, + $this->env, + null, + ($this->timeoutMs / 1000) + ); + + try { + $process->run(); + } catch (ProcessTimedOutException $e) { + throw new ExecutableResponseError( + 'The executable failed to finish within the timeout specified.', + 'TIMEOUT_EXCEEDED' + ); + } + + $this->output = $process->getOutput() . $process->getErrorOutput(); + + return $process->getExitCode(); + } + + public function getOutput(): ?string + { + return $this->output; + } +} diff --git a/vendor/google/auth/src/ExecutableHandler/ExecutableResponseError.php b/vendor/google/auth/src/ExecutableHandler/ExecutableResponseError.php new file mode 100644 index 0000000..4410902 --- /dev/null +++ b/vendor/google/auth/src/ExecutableHandler/ExecutableResponseError.php @@ -0,0 +1,27 @@ +|null $cacheConfig Configuration for the cache + * @param CacheItemPoolInterface $cache + */ + public function __construct( + FetchAuthTokenInterface $fetcher, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $this->fetcher = $fetcher; + $this->cache = $cache; + $this->cacheConfig = array_merge([ + 'lifetime' => 1500, + 'prefix' => '', + 'cacheUniverseDomain' => $fetcher instanceof Credentials\GCECredentials, + ], (array) $cacheConfig); + } + + /** + * @return FetchAuthTokenInterface + */ + public function getFetcher() + { + return $this->fetcher; + } + + /** + * Implements FetchAuthTokenInterface#fetchAuthToken. + * + * Checks the cache for a valid auth token and fetches the auth tokens + * from the supplied fetcher. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array the response + * @throws \Exception + */ + public function fetchAuthToken(?callable $httpHandler = null) + { + if ($cached = $this->fetchAuthTokenFromCache()) { + return $cached; + } + + $auth_token = $this->fetcher->fetchAuthToken($httpHandler); + + $this->saveAuthTokenInCache($auth_token); + + return $auth_token; + } + + /** + * @return string + */ + public function getCacheKey() + { + return $this->getFullCacheKey($this->fetcher->getCacheKey()); + } + + /** + * @return array|null + */ + public function getLastReceivedToken() + { + return $this->fetcher->getLastReceivedToken(); + } + + /** + * Get the client name from the fetcher. + * + * @param callable|null $httpHandler An HTTP handler to deliver PSR7 requests. + * @return string + */ + public function getClientName(?callable $httpHandler = null) + { + if (!$this->fetcher instanceof SignBlobInterface) { + throw new \RuntimeException( + 'Credentials fetcher does not implement ' . + 'Google\Auth\SignBlobInterface' + ); + } + + return $this->fetcher->getClientName($httpHandler); + } + + /** + * Sign a blob using the fetcher. + * + * @param string $stringToSign The string to sign. + * @param bool $forceOpenSsl Require use of OpenSSL for local signing. Does + * not apply to signing done using external services. **Defaults to** + * `false`. + * @return string The resulting signature. + * @throws \RuntimeException If the fetcher does not implement + * `Google\Auth\SignBlobInterface`. + */ + public function signBlob($stringToSign, $forceOpenSsl = false) + { + if (!$this->fetcher instanceof SignBlobInterface) { + throw new \RuntimeException( + 'Credentials fetcher does not implement ' . + 'Google\Auth\SignBlobInterface' + ); + } + + // Pass the access token from cache for credentials that sign blobs + // using the IAM API. This saves a call to fetch an access token when a + // cached token exists. + if ($this->fetcher instanceof Credentials\GCECredentials + || $this->fetcher instanceof Credentials\ImpersonatedServiceAccountCredentials + ) { + $cached = $this->fetchAuthTokenFromCache(); + $accessToken = $cached['access_token'] ?? null; + return $this->fetcher->signBlob($stringToSign, $forceOpenSsl, $accessToken); + } + + return $this->fetcher->signBlob($stringToSign, $forceOpenSsl); + } + + /** + * Get the quota project used for this API request from the credentials + * fetcher. + * + * @return string|null + */ + public function getQuotaProject() + { + if ($this->fetcher instanceof GetQuotaProjectInterface) { + return $this->fetcher->getQuotaProject(); + } + + return null; + } + + /** + * Get the Project ID from the fetcher. + * + * @param callable|null $httpHandler Callback which delivers psr7 request + * @return string|null + * @throws \RuntimeException If the fetcher does not implement + * `Google\Auth\ProvidesProjectIdInterface`. + */ + public function getProjectId(?callable $httpHandler = null) + { + if (!$this->fetcher instanceof ProjectIdProviderInterface) { + throw new \RuntimeException( + 'Credentials fetcher does not implement ' . + 'Google\Auth\ProvidesProjectIdInterface' + ); + } + + // Pass the access token from cache for credentials that require an + // access token to fetch the project ID. This saves a call to fetch an + // access token when a cached token exists. + if ($this->fetcher instanceof Credentials\ExternalAccountCredentials) { + $cached = $this->fetchAuthTokenFromCache(); + $accessToken = $cached['access_token'] ?? null; + return $this->fetcher->getProjectId($httpHandler, $accessToken); + } + + return $this->fetcher->getProjectId($httpHandler); + } + + /* + * Get the Universe Domain from the fetcher. + * + * @return string + */ + public function getUniverseDomain(): string + { + if ($this->fetcher instanceof GetUniverseDomainInterface) { + if ($this->cacheConfig['cacheUniverseDomain']) { + return $this->getCachedUniverseDomain($this->fetcher); + } + return $this->fetcher->getUniverseDomain(); + } + + return GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN; + } + + /** + * Updates metadata with the authorization token. + * + * @param array $metadata metadata hashmap + * @param string $authUri optional auth uri + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array updated metadata hashmap + * @throws \RuntimeException If the fetcher does not implement + * `Google\Auth\UpdateMetadataInterface`. + */ + public function updateMetadata( + $metadata, + $authUri = null, + ?callable $httpHandler = null + ) { + if (!$this->fetcher instanceof UpdateMetadataInterface) { + throw new \RuntimeException( + 'Credentials fetcher does not implement ' . + 'Google\Auth\UpdateMetadataInterface' + ); + } + + $cached = $this->fetchAuthTokenFromCache($authUri); + if ($cached) { + // Set the access token in the `Authorization` metadata header so + // the downstream call to updateMetadata know they don't need to + // fetch another token. + if (isset($cached['access_token'])) { + $metadata[self::AUTH_METADATA_KEY] = [ + 'Bearer ' . $cached['access_token'] + ]; + } elseif (isset($cached['id_token'])) { + $metadata[self::AUTH_METADATA_KEY] = [ + 'Bearer ' . $cached['id_token'] + ]; + } + } + + $newMetadata = $this->fetcher->updateMetadata( + $metadata, + $authUri, + $httpHandler + ); + + if (!$cached && $token = $this->fetcher->getLastReceivedToken()) { + $this->saveAuthTokenInCache($token, $authUri); + } + + return $newMetadata; + } + + /** + * @param string|null $authUri + * @return array|null + */ + private function fetchAuthTokenFromCache($authUri = null) + { + // Use the cached value if its available. + // + // TODO: correct caching; update the call to setCachedValue to set the expiry + // to the value returned with the auth token. + // + // TODO: correct caching; enable the cache to be cleared. + + // if $authUri is set, use it as the cache key + $cacheKey = $authUri + ? $this->getFullCacheKey($authUri) + : $this->fetcher->getCacheKey(); + + $cached = $this->getCachedValue($cacheKey); + if (is_array($cached)) { + if (empty($cached['expires_at'])) { + // If there is no expiration data, assume token is not expired. + // (for JwtAccess and ID tokens) + return $cached; + } + if ((time() + $this->eagerRefreshThresholdSeconds) < $cached['expires_at']) { + // access token is not expired + return $cached; + } + } + + return null; + } + + /** + * @param array $authToken + * @param string|null $authUri + * @return void + */ + private function saveAuthTokenInCache($authToken, $authUri = null) + { + if (isset($authToken['access_token']) || + isset($authToken['id_token'])) { + // if $authUri is set, use it as the cache key + $cacheKey = $authUri + ? $this->getFullCacheKey($authUri) + : $this->fetcher->getCacheKey(); + + $this->setCachedValue($cacheKey, $authToken); + } + } + + private function getCachedUniverseDomain(GetUniverseDomainInterface $fetcher): string + { + $cacheKey = $this->getFullCacheKey($fetcher->getCacheKey() . 'universe_domain'); // @phpstan-ignore-line + if ($universeDomain = $this->getCachedValue($cacheKey)) { + return $universeDomain; + } + + $universeDomain = $fetcher->getUniverseDomain(); + $this->setCachedValue($cacheKey, $universeDomain); + return $universeDomain; + } +} diff --git a/vendor/google/auth/src/FetchAuthTokenInterface.php b/vendor/google/auth/src/FetchAuthTokenInterface.php new file mode 100644 index 0000000..fbbd8b0 --- /dev/null +++ b/vendor/google/auth/src/FetchAuthTokenInterface.php @@ -0,0 +1,54 @@ + a hash of auth tokens + */ + public function fetchAuthToken(?callable $httpHandler = null); + + /** + * Obtains a key that can used to cache the results of #fetchAuthToken. + * + * If the value is empty, the auth token is not cached. + * + * @return string a key that may be used to cache the auth token. + */ + public function getCacheKey(); + + /** + * Returns an associative array with the token and + * expiration time. + * + * @return null|array { + * The last received access token. + * + * @type string $access_token The access token string. + * @type int $expires_at The time the token expires as a UNIX timestamp. + * } + */ + public function getLastReceivedToken(); +} diff --git a/vendor/google/auth/src/GCECache.php b/vendor/google/auth/src/GCECache.php new file mode 100644 index 0000000..d3dcd8c --- /dev/null +++ b/vendor/google/auth/src/GCECache.php @@ -0,0 +1,82 @@ + $cacheConfig Configuration for the cache + * @param CacheItemPoolInterface $cache + */ + public function __construct( + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $this->cache = $cache; + $this->cacheConfig = array_merge([ + 'lifetime' => 1500, + 'prefix' => '', + ], (array) $cacheConfig); + } + + /** + * Caches the result of onGce so the metadata server is not called multiple + * times. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @return bool True if this a GCEInstance, false otherwise + */ + public function onGce(?callable $httpHandler = null) + { + if (is_null($this->cache)) { + return GCECredentials::onGce($httpHandler); + } + + $cacheKey = self::GCE_CACHE_KEY; + $onGce = $this->getCachedValue($cacheKey); + + if (is_null($onGce)) { + $onGce = GCECredentials::onGce($httpHandler); + $this->setCachedValue($cacheKey, $onGce); + } + + return $onGce; + } +} diff --git a/vendor/google/auth/src/GetQuotaProjectInterface.php b/vendor/google/auth/src/GetQuotaProjectInterface.php new file mode 100644 index 0000000..517f062 --- /dev/null +++ b/vendor/google/auth/src/GetQuotaProjectInterface.php @@ -0,0 +1,33 @@ +client = $client; + $this->logger = $logger; + } + + /** + * Accepts a PSR-7 request and an array of options and returns a PSR-7 response. + * + * @param RequestInterface $request + * @param array $options + * @return ResponseInterface + */ + public function __invoke(RequestInterface $request, array $options = []) + { + $requestEvent = null; + + if ($this->logger) { + $requestEvent = $this->requestLog($request, $options); + } + + $response = $this->client->send($request, $options); + + if ($this->logger) { + $this->responseLog($response, $requestEvent); + } + + return $response; + } + + /** + * Accepts a PSR-7 request and an array of options and returns a PromiseInterface + * + * @param RequestInterface $request + * @param array $options + * + * @return \GuzzleHttp\Promise\PromiseInterface + */ + public function async(RequestInterface $request, array $options = []) + { + $requestEvent = null; + + if ($this->logger) { + $requestEvent = $this->requestLog($request, $options); + } + + $promise = $this->client->sendAsync($request, $options); + + if ($this->logger) { + $promise->then(function (ResponseInterface $response) use ($requestEvent) { + $this->responseLog($response, $requestEvent); + return $response; + }); + } + + return $promise; + } + + /** + * @internal + * @param RequestInterface $request + * @param array $options + */ + public function requestLog(RequestInterface $request, array $options): RpcLogEvent + { + $requestEvent = new RpcLogEvent(); + + $requestEvent->method = $request->getMethod(); + $requestEvent->url = (string) $request->getUri(); + $requestEvent->headers = $request->getHeaders(); + $requestEvent->payload = $request->getBody()->getContents(); + $requestEvent->retryAttempt = $options['retryAttempt'] ?? null; + $requestEvent->serviceName = $options['serviceName'] ?? null; + $requestEvent->processId = (int) getmypid(); + $requestEvent->requestId = $options['requestId'] ?? crc32((string) spl_object_id($request) . getmypid()); + + $this->logRequest($requestEvent); + + return $requestEvent; + } + + /** + * @internal + */ + public function responseLog(ResponseInterface $response, RpcLogEvent $requestEvent): void + { + $responseEvent = new RpcLogEvent($requestEvent->milliseconds); + + $responseEvent->headers = $response->getHeaders(); + $responseEvent->payload = $response->getBody()->getContents(); + $responseEvent->status = $response->getStatusCode(); + $responseEvent->processId = $requestEvent->processId; + $responseEvent->requestId = $requestEvent->requestId; + + $this->logResponse($responseEvent); + } +} diff --git a/vendor/google/auth/src/HttpHandler/Guzzle7HttpHandler.php b/vendor/google/auth/src/HttpHandler/Guzzle7HttpHandler.php new file mode 100644 index 0000000..e84f660 --- /dev/null +++ b/vendor/google/auth/src/HttpHandler/Guzzle7HttpHandler.php @@ -0,0 +1,21 @@ +remove('http_errors'); + $stack->unshift(Middleware::httpErrors($bodySummarizer), 'http_errors'); + } + $client = new Client(['handler' => $stack]); + } + + $logger = ($logger === false) + ? null + : $logger ?? ApplicationDefaultCredentials::getDefaultLogger(); + + $version = null; + if (defined('GuzzleHttp\ClientInterface::MAJOR_VERSION')) { + $version = ClientInterface::MAJOR_VERSION; + } elseif (defined('GuzzleHttp\ClientInterface::VERSION')) { + $version = (int) substr(ClientInterface::VERSION, 0, 1); + } + + switch ($version) { + case 6: + return new Guzzle6HttpHandler($client, $logger); + case 7: + return new Guzzle7HttpHandler($client, $logger); + default: + throw new \Exception('Version not supported'); + } + } +} diff --git a/vendor/google/auth/src/Iam.php b/vendor/google/auth/src/Iam.php new file mode 100644 index 0000000..b32ac60 --- /dev/null +++ b/vendor/google/auth/src/Iam.php @@ -0,0 +1,155 @@ +httpHandler = $httpHandler + ?: HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + $this->universeDomain = $universeDomain; + } + + /** + * Sign a string using the IAM signBlob API. + * + * Note that signing using IAM requires your service account to have the + * `iam.serviceAccounts.signBlob` permission, part of the "Service Account + * Token Creator" IAM role. + * + * @param string $email The service account email. + * @param string $accessToken An access token from the service account. + * @param string $stringToSign The string to be signed. + * @param array $delegates [optional] A list of service account emails to + * add to the delegate chain. If omitted, the value of `$email` will + * be used. + * @return string The signed string, base64-encoded. + */ + public function signBlob($email, $accessToken, $stringToSign, array $delegates = []) + { + $name = sprintf(self::SERVICE_ACCOUNT_NAME, $email); + $apiRoot = str_replace('UNIVERSE_DOMAIN', $this->universeDomain, self::IAM_API_ROOT_TEMPLATE); + $uri = $apiRoot . '/' . sprintf(self::SIGN_BLOB_PATH, $name); + + if ($delegates) { + foreach ($delegates as &$delegate) { + $delegate = sprintf(self::SERVICE_ACCOUNT_NAME, $delegate); + } + } else { + $delegates = [$name]; + } + + $body = [ + 'delegates' => $delegates, + 'payload' => base64_encode($stringToSign), + ]; + + $headers = [ + 'Authorization' => 'Bearer ' . $accessToken + ]; + + $request = new Psr7\Request( + 'POST', + $uri, + $headers, + Utils::streamFor(json_encode($body)) + ); + + $res = ($this->httpHandler)($request); + $body = json_decode((string) $res->getBody(), true); + + return $body['signedBlob']; + } + + /** + * Sign a string using the IAM signBlob API. + * + * Note that signing using IAM requires your service account to have the + * `iam.serviceAccounts.signBlob` permission, part of the "Service Account + * Token Creator" IAM role. + * + * @param string $clientEmail The service account email. + * @param string $targetAudience The audience for the ID token. + * @param string $bearerToken The token to authenticate the IAM request. + * @param array $headers [optional] Additional headers to send with the request. + * + * @return string The signed string, base64-encoded. + */ + public function generateIdToken( + string $clientEmail, + string $targetAudience, + string $bearerToken, + array $headers = [] + ): string { + $name = sprintf(self::SERVICE_ACCOUNT_NAME, $clientEmail); + $apiRoot = str_replace('UNIVERSE_DOMAIN', $this->universeDomain, self::IAM_API_ROOT_TEMPLATE); + $uri = $apiRoot . '/' . sprintf(self::GENERATE_ID_TOKEN_PATH, $name); + + $headers['Authorization'] = 'Bearer ' . $bearerToken; + + $body = [ + 'audience' => $targetAudience, + 'includeEmail' => true, + 'useEmailAzp' => true, + ]; + + $request = new Psr7\Request( + 'POST', + $uri, + $headers, + Utils::streamFor(json_encode($body)) + ); + + $res = ($this->httpHandler)($request); + $body = json_decode((string) $res->getBody(), true); + + return $body['token']; + } +} diff --git a/vendor/google/auth/src/IamSignerTrait.php b/vendor/google/auth/src/IamSignerTrait.php new file mode 100644 index 0000000..da3c909 --- /dev/null +++ b/vendor/google/auth/src/IamSignerTrait.php @@ -0,0 +1,72 @@ +iam; + if (!$signer) { + $signer = $this instanceof GetUniverseDomainInterface + ? new Iam($httpHandler, $this->getUniverseDomain()) + : new Iam($httpHandler); + } + + $email = $this->getClientName($httpHandler); + + if (is_null($accessToken)) { + $previousToken = $this->getLastReceivedToken(); + $accessToken = $previousToken + ? $previousToken['access_token'] + : $this->fetchAuthToken($httpHandler)['access_token']; + } + + return $signer->signBlob($email, $accessToken, $stringToSign); + } +} diff --git a/vendor/google/auth/src/Logging/LoggingTrait.php b/vendor/google/auth/src/Logging/LoggingTrait.php new file mode 100644 index 0000000..0b8330d --- /dev/null +++ b/vendor/google/auth/src/Logging/LoggingTrait.php @@ -0,0 +1,138 @@ + $event->timestamp, + 'severity' => strtoupper(LogLevel::DEBUG), + 'processId' => $event->processId ?? null, + 'requestId' => $event->requestId ?? null, + 'rpcName' => $event->rpcName ?? null, + ]; + + $debugEvent = array_filter($debugEvent, fn ($value) => !is_null($value)); + + $jsonPayload = [ + 'request.method' => $event->method, + 'request.url' => $event->url, + 'request.headers' => $event->headers, + 'request.payload' => $this->truncatePayload($event->payload), + 'request.jwt' => $this->getJwtToken($event->headers ?? []), + 'retryAttempt' => $event->retryAttempt + ]; + + // Remove null values + $debugEvent['jsonPayload'] = array_filter($jsonPayload, fn ($value) => !is_null($value)); + + $stringifiedEvent = json_encode($debugEvent, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + + // There was an error stringifying the event, return to not break execution + if ($stringifiedEvent === false) { + return; + } + + $this->logger->debug($stringifiedEvent); + } + + /** + * @param RpcLogEvent $event + */ + private function logResponse(RpcLogEvent $event): void + { + $debugEvent = [ + 'timestamp' => $event->timestamp, + 'severity' => strtoupper(LogLevel::DEBUG), + 'processId' => $event->processId ?? null, + 'requestId' => $event->requestId ?? null, + 'jsonPayload' => [ + 'response.status' => $event->status, + 'response.headers' => $event->headers, + 'response.payload' => $this->truncatePayload($event->payload), + 'latencyMillis' => $event->latency, + ] + ]; + + // Remove null values + $debugEvent = array_filter($debugEvent, fn ($value) => !is_null($value)); + $debugEvent['jsonPayload'] = array_filter( + $debugEvent['jsonPayload'], + fn ($value) => !is_null($value) + ); + + $stringifiedEvent = json_encode($debugEvent, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); + + // There was an error stringifying the event, return to not break execution + if ($stringifiedEvent !== false) { + $this->logger->debug($stringifiedEvent); + } + } + + /** + * @param array $headers + * @return null|array + */ + private function getJwtToken(array $headers): null|array + { + if (empty($headers)) { + return null; + } + + $tokenHeader = $headers['Authorization'] ?? ''; + $token = str_replace('Bearer ', '', $tokenHeader); + + if (substr_count($token, '.') !== 2) { + return null; + } + + [$header, $token, $_] = explode('.', $token); + + return [ + 'header' => base64_decode($header), + 'token' => base64_decode($token) + ]; + } + + /** + * @param null|string $payload + * @return string + */ + private function truncatePayload(null|string $payload): null|string + { + $maxLength = 500; + + if (is_null($payload) || strlen($payload) <= $maxLength) { + return $payload; + } + + return substr($payload, 0, $maxLength) . '...'; + } +} diff --git a/vendor/google/auth/src/Logging/RpcLogEvent.php b/vendor/google/auth/src/Logging/RpcLogEvent.php new file mode 100644 index 0000000..50e89fe --- /dev/null +++ b/vendor/google/auth/src/Logging/RpcLogEvent.php @@ -0,0 +1,136 @@ + + */ + public null|array $headers = null; + + /** + * An array representation of JSON for the response or request + * + * @var null|string + */ + public null|string $payload = null; + + /** + * Status code for REST or gRPC methods + * + * @var null|int|string + */ + public null|int|string $status = null; + + /** + * The latency in milliseconds + * + * @var null|int + */ + public null|int $latency = null; + + /** + * The retry attempt number + * + * @var null|int + */ + public null|int $retryAttempt = null; + + /** + * The name of the gRPC method being called + * + * @var null|string + */ + public null|string $rpcName = null; + + /** + * The Service Name of the gRPC + * + * @var null|string $serviceName + */ + public null|string $serviceName = null; + + /** + * The Process ID for tracing logs + * + * @var null|int $processId + */ + public null|int $processId = null; + + /** + * The Request id for tracing logs + * + * @var null|int $requestId; + */ + public null|int $requestId = null; + + /** + * Creates an object with all the fields required for logging + * Passing a string representation of a timestamp calculates the difference between + * these two times and sets the latency field with the result. + * + * @param null|float $startTime (Optional) Parameter to calculate the latency + */ + public function __construct(null|float $startTime = null) + { + $this->timestamp = date(DATE_RFC3339); + + // Takes the micro time and convets it to millis + $this->milliseconds = round(microtime(true) * 1000); + + if ($startTime) { + $this->latency = (int) round($this->milliseconds - $startTime); + } + } +} diff --git a/vendor/google/auth/src/Logging/StdOutLogger.php b/vendor/google/auth/src/Logging/StdOutLogger.php new file mode 100644 index 0000000..27b1f0e --- /dev/null +++ b/vendor/google/auth/src/Logging/StdOutLogger.php @@ -0,0 +1,85 @@ + + */ + private array $levelMapping = [ + LogLevel::EMERGENCY => 7, + LogLevel::ALERT => 6, + LogLevel::CRITICAL => 5, + LogLevel::ERROR => 4, + LogLevel::WARNING => 3, + LogLevel::NOTICE => 2, + LogLevel::INFO => 1, + LogLevel::DEBUG => 0, + ]; + private int $level; + + /** + * Constructs a basic PSR-3 logger class that logs into StdOut for GCP Logging + * + * @param string $level The level of the logger instance. + */ + public function __construct(string $level = LogLevel::DEBUG) + { + $this->level = $this->getLevelFromName($level); + } + + /** + * {@inheritdoc} + */ + public function log($level, string|Stringable $message, array $context = []): void + { + if ($this->getLevelFromName($level) < $this->level) { + return; + } + + print($message . "\n"); + } + + /** + * @param string $levelName + * @return int + * @throws InvalidArgumentException + */ + private function getLevelFromName(string $levelName): int + { + if (!array_key_exists($levelName, $this->levelMapping)) { + throw new InvalidArgumentException('The level supplied to the Logger is not valid'); + } + + return $this->levelMapping[$levelName]; + } +} diff --git a/vendor/google/auth/src/MetricsTrait.php b/vendor/google/auth/src/MetricsTrait.php new file mode 100644 index 0000000..8d5c03c --- /dev/null +++ b/vendor/google/auth/src/MetricsTrait.php @@ -0,0 +1,120 @@ + $metadata The metadata to update and return. + * @return array The updated metadata. + */ + protected function applyServiceApiUsageMetrics($metadata) + { + if ($credType = $this->getCredType()) { + // Add service api usage observability metrics info into metadata + // We expect upstream libries to have the metadata key populated already + $value = 'cred-type/' . $credType; + if (!isset($metadata[self::$metricMetadataKey])) { + // This case will happen only when someone invokes the updateMetadata + // method on the credentials fetcher themselves. + $metadata[self::$metricMetadataKey] = [$value]; + } elseif (is_array($metadata[self::$metricMetadataKey])) { + $metadata[self::$metricMetadataKey][0] .= ' ' . $value; + } else { + $metadata[self::$metricMetadataKey] .= ' ' . $value; + } + } + + return $metadata; + } + + /** + * @param array $metadata The metadata to update and return. + * @param string $authRequestType The auth request type. Possible values are + * `'at'`, `'it'`, `'mds'`. + * @return array The updated metadata. + */ + protected function applyTokenEndpointMetrics($metadata, $authRequestType) + { + $metricsHeader = self::getMetricsHeader($this->getCredType(), $authRequestType); + if (!isset($metadata[self::$metricMetadataKey])) { + $metadata[self::$metricMetadataKey] = $metricsHeader; + } + return $metadata; + } + + protected static function getVersion(): string + { + if (is_null(self::$version)) { + $versionFilePath = __DIR__ . '/../VERSION'; + self::$version = trim((string) file_get_contents($versionFilePath)); + } + return self::$version; + } + + protected function getCredType(): string + { + return ''; + } +} diff --git a/vendor/google/auth/src/Middleware/AuthTokenMiddleware.php b/vendor/google/auth/src/Middleware/AuthTokenMiddleware.php new file mode 100644 index 0000000..b8f2c51 --- /dev/null +++ b/vendor/google/auth/src/Middleware/AuthTokenMiddleware.php @@ -0,0 +1,163 @@ +' + */ +class AuthTokenMiddleware +{ + /** + * @var callable + */ + private $httpHandler; + + /** + * It must be an implementation of FetchAuthTokenInterface. + * It may also implement UpdateMetadataInterface allowing direct + * retrieval of auth related headers + * @var FetchAuthTokenInterface + */ + private $fetcher; + + /** + * @var ?callable + */ + private $tokenCallback; + + /** + * Creates a new AuthTokenMiddleware. + * + * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token + * @param callable|null $httpHandler (optional) callback which delivers psr7 request + * @param callable|null $tokenCallback (optional) function to be called when a new token is fetched. + */ + public function __construct( + FetchAuthTokenInterface $fetcher, + ?callable $httpHandler = null, + ?callable $tokenCallback = null + ) { + $this->fetcher = $fetcher; + $this->httpHandler = $httpHandler; + $this->tokenCallback = $tokenCallback; + } + + /** + * Updates the request with an Authorization header when auth is 'google_auth'. + * + * use Google\Auth\Middleware\AuthTokenMiddleware; + * use Google\Auth\OAuth2; + * use GuzzleHttp\Client; + * use GuzzleHttp\HandlerStack; + * + * $config = [...]; + * $oauth2 = new OAuth2($config) + * $middleware = new AuthTokenMiddleware($oauth2); + * $stack = HandlerStack::create(); + * $stack->push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', + * 'auth' => 'google_auth' // authorize all requests + * ]); + * + * $res = $client->get('myproject/taskqueues/myqueue'); + * + * @param callable $handler + * @return \Closure + */ + public function __invoke(callable $handler) + { + return function (RequestInterface $request, array $options) use ($handler) { + // Requests using "auth"="google_auth" will be authorized. + if (!isset($options['auth']) || $options['auth'] !== 'google_auth') { + return $handler($request, $options); + } + + $request = $this->addAuthHeaders($request); + + if ($quotaProject = $this->getQuotaProject()) { + $request = $request->withHeader( + GetQuotaProjectInterface::X_GOOG_USER_PROJECT_HEADER, + $quotaProject + ); + } + + return $handler($request, $options); + }; + } + + /** + * Adds auth related headers to the request. + * + * @param RequestInterface $request + * @return RequestInterface + */ + private function addAuthHeaders(RequestInterface $request) + { + if (!$this->fetcher instanceof UpdateMetadataInterface || + ($this->fetcher instanceof FetchAuthTokenCache && + !$this->fetcher->getFetcher() instanceof UpdateMetadataInterface) + ) { + $token = $this->fetcher->fetchAuthToken(); + $request = $request->withHeader( + 'authorization', + 'Bearer ' . ($token['access_token'] ?? $token['id_token'] ?? '') + ); + } else { + $headers = $this->fetcher->updateMetadata($request->getHeaders(), null, $this->httpHandler); + $request = Utils::modifyRequest($request, ['set_headers' => $headers]); + } + + if ($this->tokenCallback && ($token = $this->fetcher->getLastReceivedToken())) { + if (array_key_exists('access_token', $token)) { + call_user_func($this->tokenCallback, $this->fetcher->getCacheKey(), $token['access_token']); + } + } + + return $request; + } + + /** + * @return string|null + */ + private function getQuotaProject() + { + if ($this->fetcher instanceof GetQuotaProjectInterface) { + return $this->fetcher->getQuotaProject(); + } + + return null; + } +} diff --git a/vendor/google/auth/src/Middleware/ProxyAuthTokenMiddleware.php b/vendor/google/auth/src/Middleware/ProxyAuthTokenMiddleware.php new file mode 100644 index 0000000..2c44871 --- /dev/null +++ b/vendor/google/auth/src/Middleware/ProxyAuthTokenMiddleware.php @@ -0,0 +1,155 @@ +' + */ +class ProxyAuthTokenMiddleware +{ + /** + * @var callable + */ + private $httpHandler; + + /** + * @var FetchAuthTokenInterface + */ + private $fetcher; + + /** + * @var ?callable + */ + private $tokenCallback; + + /** + * Creates a new ProxyAuthTokenMiddleware. + * + * @param FetchAuthTokenInterface $fetcher is used to fetch the auth token + * @param callable|null $httpHandler (optional) callback which delivers psr7 request + * @param callable|null $tokenCallback (optional) function to be called when a new token is fetched. + */ + public function __construct( + FetchAuthTokenInterface $fetcher, + ?callable $httpHandler = null, + ?callable $tokenCallback = null + ) { + $this->fetcher = $fetcher; + $this->httpHandler = $httpHandler; + $this->tokenCallback = $tokenCallback; + } + + /** + * Updates the request with an Authorization header when auth is 'google_auth'. + * + * use Google\Auth\Middleware\ProxyAuthTokenMiddleware; + * use Google\Auth\OAuth2; + * use GuzzleHttp\Client; + * use GuzzleHttp\HandlerStack; + * + * $config = [...]; + * $oauth2 = new OAuth2($config) + * $middleware = new ProxyAuthTokenMiddleware($oauth2); + * $stack = HandlerStack::create(); + * $stack->push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', + * 'proxy_auth' => 'google_auth' // authorize all requests + * ]); + * + * $res = $client->get('myproject/taskqueues/myqueue'); + * + * @param callable $handler + * @return \Closure + */ + public function __invoke(callable $handler) + { + return function (RequestInterface $request, array $options) use ($handler) { + // Requests using "proxy_auth"="google_auth" will be authorized. + if (!isset($options['proxy_auth']) || $options['proxy_auth'] !== 'google_auth') { + return $handler($request, $options); + } + + $request = $request->withHeader('proxy-authorization', 'Bearer ' . $this->fetchToken()); + + if ($quotaProject = $this->getQuotaProject()) { + $request = $request->withHeader( + GetQuotaProjectInterface::X_GOOG_USER_PROJECT_HEADER, + $quotaProject + ); + } + + return $handler($request, $options); + }; + } + + /** + * Call fetcher to fetch the token. + * + * @return string|null + */ + private function fetchToken() + { + $auth_tokens = $this->fetcher->fetchAuthToken($this->httpHandler); + + if (array_key_exists('access_token', $auth_tokens)) { + // notify the callback if applicable + if ($this->tokenCallback) { + call_user_func( + $this->tokenCallback, + $this->fetcher->getCacheKey(), + $auth_tokens['access_token'] + ); + } + + return $auth_tokens['access_token']; + } + + if (array_key_exists('id_token', $auth_tokens)) { + return $auth_tokens['id_token']; + } + + return null; + } + + /** + * @return string|null; + */ + private function getQuotaProject() + { + if ($this->fetcher instanceof GetQuotaProjectInterface) { + return $this->fetcher->getQuotaProject(); + } + + return null; + } +} diff --git a/vendor/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php b/vendor/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php new file mode 100644 index 0000000..f2f85cc --- /dev/null +++ b/vendor/google/auth/src/Middleware/ScopedAccessTokenMiddleware.php @@ -0,0 +1,165 @@ +' + */ +class ScopedAccessTokenMiddleware +{ + use CacheTrait; + + const DEFAULT_CACHE_LIFETIME = 1500; + + /** + * @var callable + */ + private $tokenFunc; + + /** + * @var array|string + */ + private $scopes; + + /** + * Creates a new ScopedAccessTokenMiddleware. + * + * @param callable $tokenFunc a token generator function + * @param array|string $scopes the token authentication scopes + * @param array|null $cacheConfig configuration for the cache when it's present + * @param CacheItemPoolInterface|null $cache an implementation of CacheItemPoolInterface + */ + public function __construct( + callable $tokenFunc, + $scopes, + ?array $cacheConfig = null, + ?CacheItemPoolInterface $cache = null + ) { + $this->tokenFunc = $tokenFunc; + if (!(is_string($scopes) || is_array($scopes))) { + throw new \InvalidArgumentException( + 'wants scope should be string or array' + ); + } + $this->scopes = $scopes; + + if (!is_null($cache)) { + $this->cache = $cache; + $this->cacheConfig = array_merge([ + 'lifetime' => self::DEFAULT_CACHE_LIFETIME, + 'prefix' => '', + ], $cacheConfig); + } + } + + /** + * Updates the request with an Authorization header when auth is 'scoped'. + * + * E.g this could be used to authenticate using the AppEngine + * AppIdentityService. + * + * use google\appengine\api\app_identity\AppIdentityService; + * use Google\Auth\Middleware\ScopedAccessTokenMiddleware; + * use GuzzleHttp\Client; + * use GuzzleHttp\HandlerStack; + * + * $scope = 'https://www.googleapis.com/auth/taskqueue' + * $middleware = new ScopedAccessTokenMiddleware( + * 'AppIdentityService::getAccessToken', + * $scope, + * [ 'prefix' => 'Google\Auth\ScopedAccessToken::' ], + * $cache = new Memcache() + * ); + * $stack = HandlerStack::create(); + * $stack->push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_url' => 'https://www.googleapis.com/taskqueue/v1beta2/projects/', + * 'auth' => 'scoped' // authorize all requests + * ]); + * + * $res = $client->get('myproject/taskqueues/myqueue'); + * + * @param callable $handler + * @return \Closure + */ + public function __invoke(callable $handler) + { + return function (RequestInterface $request, array $options) use ($handler) { + // Requests using "auth"="scoped" will be authorized. + if (!isset($options['auth']) || $options['auth'] !== 'scoped') { + return $handler($request, $options); + } + + $request = $request->withHeader('authorization', 'Bearer ' . $this->fetchToken()); + + return $handler($request, $options); + }; + } + + /** + * @return string + */ + private function getCacheKey() + { + $key = null; + + if (is_string($this->scopes)) { + $key .= $this->scopes; + } elseif (is_array($this->scopes)) { + $key .= implode(':', $this->scopes); + } + + return $key; + } + + /** + * Determine if token is available in the cache, if not call tokenFunc to + * fetch it. + * + * @return string + */ + private function fetchToken() + { + $cacheKey = $this->getCacheKey(); + $cached = $this->getCachedValue($cacheKey); + + if (!empty($cached)) { + return $cached; + } + + $token = call_user_func($this->tokenFunc, $this->scopes); + $this->setCachedValue($cacheKey, $token); + + return $token; + } +} diff --git a/vendor/google/auth/src/Middleware/SimpleMiddleware.php b/vendor/google/auth/src/Middleware/SimpleMiddleware.php new file mode 100644 index 0000000..6940430 --- /dev/null +++ b/vendor/google/auth/src/Middleware/SimpleMiddleware.php @@ -0,0 +1,92 @@ + + */ + private $config; + + /** + * Create a new Simple plugin. + * + * The configuration array expects one option + * - key: required, otherwise InvalidArgumentException is thrown + * + * @param array $config Configuration array + */ + public function __construct(array $config) + { + if (!isset($config['key'])) { + throw new \InvalidArgumentException('requires a key to have been set'); + } + + $this->config = array_merge(['key' => null], $config); + } + + /** + * Updates the request query with the developer key if auth is set to simple. + * + * use Google\Auth\Middleware\SimpleMiddleware; + * use GuzzleHttp\Client; + * use GuzzleHttp\HandlerStack; + * + * $my_key = 'is not the same as yours'; + * $middleware = new SimpleMiddleware(['key' => $my_key]); + * $stack = HandlerStack::create(); + * $stack->push($middleware); + * + * $client = new Client([ + * 'handler' => $stack, + * 'base_uri' => 'https://www.googleapis.com/discovery/v1/', + * 'auth' => 'simple' + * ]); + * + * $res = $client->get('drive/v2/rest'); + * + * @param callable $handler + * @return \Closure + */ + public function __invoke(callable $handler) + { + return function (RequestInterface $request, array $options) use ($handler) { + // Requests using "auth"="scoped" will be authorized. + if (!isset($options['auth']) || $options['auth'] !== 'simple') { + return $handler($request, $options); + } + + $query = Query::parse($request->getUri()->getQuery()); + $params = array_merge($query, $this->config); + $uri = $request->getUri()->withQuery(Query::build($params)); + $request = $request->withUri($uri); + + return $handler($request, $options); + }; + } +} diff --git a/vendor/google/auth/src/OAuth2.php b/vendor/google/auth/src/OAuth2.php new file mode 100644 index 0000000..ced3464 --- /dev/null +++ b/vendor/google/auth/src/OAuth2.php @@ -0,0 +1,1828 @@ + + */ + public static $knownSigningAlgorithms = [ + 'HS256', + 'HS512', + 'HS384', + 'RS256', + ]; + + /** + * The well known grant types. + * + * @var array + */ + public static $knownGrantTypes = [ + 'authorization_code', + 'refresh_token', + 'password', + 'client_credentials', + ]; + + /** + * - authorizationUri + * The authorization server's HTTP endpoint capable of + * authenticating the end-user and obtaining authorization. + * + * @var ?UriInterface + */ + private $authorizationUri; + + /** + * - tokenCredentialUri + * The authorization server's HTTP endpoint capable of issuing + * tokens and refreshing expired tokens. + * + * @var UriInterface + */ + private $tokenCredentialUri; + + /** + * The redirection URI used in the initial request. + * + * @var ?string + */ + private $redirectUri; + + /** + * A unique identifier issued to the client to identify itself to the + * authorization server. + * + * @var string + */ + private $clientId; + + /** + * A shared symmetric secret issued by the authorization server, which is + * used to authenticate the client. + * + * @var string + */ + private $clientSecret; + + /** + * The resource owner's username. + * + * @var ?string + */ + private $username; + + /** + * The resource owner's password. + * + * @var ?string + */ + private $password; + + /** + * The scope of the access request, expressed either as an Array or as a + * space-delimited string. + * + * @var ?array + */ + private $scope; + + /** + * An arbitrary string designed to allow the client to maintain state. + * + * @var string + */ + private $state; + + /** + * The authorization code issued to this client. + * + * Only used by the authorization code access grant type. + * + * @var ?string + */ + private $code; + + /** + * The issuer ID when using assertion profile. + * + * @var ?string + */ + private $issuer; + + /** + * The target audience for assertions. + * + * @var string + */ + private $audience; + + /** + * The target sub when issuing assertions. + * + * @var string + */ + private $sub; + + /** + * The number of seconds assertions are valid for. + * + * @var int + */ + private $expiry; + + /** + * The signing key when using assertion profile. + * + * @var ?string + */ + private $signingKey; + + /** + * The signing key id when using assertion profile. Param kid in jwt header + * + * @var string + */ + private $signingKeyId; + + /** + * The signing algorithm when using an assertion profile. + * + * @var ?string + */ + private $signingAlgorithm; + + /** + * The refresh token associated with the access token to be refreshed. + * + * @var ?string + */ + private $refreshToken; + + /** + * The current access token. + * + * @var string + */ + private $accessToken; + + /** + * The current ID token. + * + * @var string + */ + private $idToken; + + /** + * The scopes granted to the current access token + * + * @var string + */ + private $grantedScope; + + /** + * The lifetime in seconds of the current access token. + * + * @var ?int + */ + private $expiresIn; + + /** + * The expiration time of the access token as a number of seconds since the + * unix epoch. + * + * @var ?int + */ + private $expiresAt; + + /** + * The issue time of the access token as a number of seconds since the unix + * epoch. + * + * @var ?int + */ + private $issuedAt; + + /** + * The current grant type. + * + * @var ?string + */ + private $grantType; + + /** + * When using an extension grant type, this is the set of parameters used by + * that extension. + * + * @var array + */ + private $extensionParams; + + /** + * When using the toJwt function, these claims will be added to the JWT + * payload. + * + * @var array + */ + private $additionalClaims; + + /** + * The code verifier for PKCE for OAuth 2.0. When set, the authorization + * URI will contain the Code Challenge and Code Challenge Method querystring + * parameters, and the token URI will contain the Code Verifier parameter. + * + * @see https://datatracker.ietf.org/doc/html/rfc7636 + * @var ?string + */ + private $codeVerifier; + + /** + * For STS requests. + * A URI that indicates the target service or resource where the client + * intends to use the requested security token. + */ + private ?string $resource; + + /** + * For STS requests. + * A fetcher for the "subject_token", which is a security token that + * represents the identity of the party on behalf of whom the request is + * being made. + */ + private ?ExternalAccountCredentialSourceInterface $subjectTokenFetcher; + + /** + * For STS requests. + * An identifier, that indicates the type of the security token in the + * subjectToken parameter. + */ + private ?string $subjectTokenType; + + /** + * For STS requests. + * A security token that represents the identity of the acting party. + */ + private ?string $actorToken; + + /** + * For STS requests. + * An identifier that indicates the type of the security token in the + * actorToken parameter. + */ + private ?string $actorTokenType; + + /** + * From STS response. + * An identifier for the representation of the issued security token. + */ + private ?string $issuedTokenType = null; + + /** + * From STS response. + * An identifier for the representation of the issued security token. + * + * @var array + */ + private array $additionalOptions; + + /** + * Create a new OAuthCredentials. + * + * The configuration array accepts various options + * + * - authorizationUri + * The authorization server's HTTP endpoint capable of + * authenticating the end-user and obtaining authorization. + * + * - tokenCredentialUri + * The authorization server's HTTP endpoint capable of issuing + * tokens and refreshing expired tokens. + * + * - clientId + * A unique identifier issued to the client to identify itself to the + * authorization server. + * + * - clientSecret + * A shared symmetric secret issued by the authorization server, + * which is used to authenticate the client. + * + * - scope + * The scope of the access request, expressed either as an Array + * or as a space-delimited String. + * + * - state + * An arbitrary string designed to allow the client to maintain state. + * + * - redirectUri + * The redirection URI used in the initial request. + * + * - username + * The resource owner's username. + * + * - password + * The resource owner's password. + * + * - issuer + * Issuer ID when using assertion profile + * + * - audience + * Target audience for assertions + * + * - expiry + * Number of seconds assertions are valid for + * + * - signingKey + * Signing key when using assertion profile + * + * - signingKeyId + * Signing key id when using assertion profile + * + * - refreshToken + * The refresh token associated with the access token + * to be refreshed. + * + * - accessToken + * The current access token for this client. + * + * - idToken + * The current ID token for this client. + * + * - extensionParams + * When using an extension grant type, this is the set of parameters used + * by that extension. + * + * - codeVerifier + * The code verifier for PKCE for OAuth 2.0. + * + * - resource + * The target service or resource where the client ntends to use the + * requested security token. + * + * - subjectTokenFetcher + * A fetcher for the "subject_token", which is a security token that + * represents the identity of the party on behalf of whom the request is + * being made. + * + * - subjectTokenType + * An identifier that indicates the type of the security token in the + * subjectToken parameter. + * + * - actorToken + * A security token that represents the identity of the acting party. + * + * - actorTokenType + * An identifier for the representation of the issued security token. + * + * @param array $config Configuration array + */ + public function __construct(array $config) + { + $opts = array_merge([ + 'expiry' => self::DEFAULT_EXPIRY_SECONDS, + 'extensionParams' => [], + 'authorizationUri' => null, + 'redirectUri' => null, + 'tokenCredentialUri' => null, + 'state' => null, + 'username' => null, + 'password' => null, + 'clientId' => null, + 'clientSecret' => null, + 'issuer' => null, + 'sub' => null, + 'audience' => null, + 'signingKey' => null, + 'signingKeyId' => null, + 'signingAlgorithm' => null, + 'scope' => null, + 'additionalClaims' => [], + 'codeVerifier' => null, + 'resource' => null, + 'subjectTokenFetcher' => null, + 'subjectTokenType' => null, + 'actorToken' => null, + 'actorTokenType' => null, + 'additionalOptions' => [], + ], $config); + + $this->setAuthorizationUri($opts['authorizationUri']); + $this->setRedirectUri($opts['redirectUri']); + $this->setTokenCredentialUri($opts['tokenCredentialUri']); + $this->setState($opts['state']); + $this->setUsername($opts['username']); + $this->setPassword($opts['password']); + $this->setClientId($opts['clientId']); + $this->setClientSecret($opts['clientSecret']); + $this->setIssuer($opts['issuer']); + $this->setSub($opts['sub']); + $this->setExpiry($opts['expiry']); + $this->setAudience($opts['audience']); + $this->setSigningKey($opts['signingKey']); + $this->setSigningKeyId($opts['signingKeyId']); + $this->setSigningAlgorithm($opts['signingAlgorithm']); + $this->setScope($opts['scope']); + $this->setExtensionParams($opts['extensionParams']); + $this->setAdditionalClaims($opts['additionalClaims']); + $this->setCodeVerifier($opts['codeVerifier']); + + // for STS + $this->resource = $opts['resource']; + $this->subjectTokenFetcher = $opts['subjectTokenFetcher']; + $this->subjectTokenType = $opts['subjectTokenType']; + $this->actorToken = $opts['actorToken']; + $this->actorTokenType = $opts['actorTokenType']; + $this->additionalOptions = $opts['additionalOptions']; + + $this->updateToken($opts); + } + + /** + * Verifies the idToken if present. + * + * - if none is present, return null + * - if present, but invalid, raises DomainException. + * - otherwise returns the payload in the idtoken as a PHP object. + * + * The behavior of this method varies depending on the version of + * `firebase/php-jwt` you are using. In versions 6.0 and above, you cannot + * provide multiple $allowed_algs, and instead must provide an array of Key + * objects as the $publicKey. + * + * @param string|Key|Key[] $publicKey The public key to use to authenticate the token + * @param string|array $allowed_algs algorithm or array of supported verification algorithms. + * Providing more than one algorithm will throw an exception. + * @throws \DomainException if the token is missing an audience. + * @throws \DomainException if the audience does not match the one set in + * the OAuth2 class instance. + * @throws \UnexpectedValueException If the token is invalid + * @throws \InvalidArgumentException If more than one value for allowed_algs is supplied + * @throws \Firebase\JWT\SignatureInvalidException If the signature is invalid. + * @throws \Firebase\JWT\BeforeValidException If the token is not yet valid. + * @throws \Firebase\JWT\ExpiredException If the token has expired. + * @return null|object + */ + public function verifyIdToken($publicKey = null, $allowed_algs = []) + { + $idToken = $this->getIdToken(); + if (is_null($idToken)) { + return null; + } + + $resp = $this->jwtDecode($idToken, $publicKey, $allowed_algs); + if (!property_exists($resp, 'aud')) { + throw new \DomainException('No audience found the id token'); + } + if ($resp->aud != $this->getAudience()) { + throw new \DomainException('Wrong audience present in the id token'); + } + + return $resp; + } + + /** + * Obtains the encoded jwt from the instance data. + * + * @param array $config array optional configuration parameters + * @return string + */ + public function toJwt(array $config = []) + { + if (is_null($this->getSigningKey())) { + throw new \DomainException('No signing key available'); + } + if (is_null($this->getSigningAlgorithm())) { + throw new \DomainException('No signing algorithm specified'); + } + $now = time(); + + $opts = array_merge([ + 'skew' => self::DEFAULT_SKEW_SECONDS, + ], $config); + + $assertion = [ + 'iss' => $this->getIssuer(), + 'exp' => ($now + $this->getExpiry()), + 'iat' => ($now - $opts['skew']), + ]; + foreach ($assertion as $k => $v) { + if (is_null($v)) { + throw new \DomainException($k . ' should not be null'); + } + } + if (!(is_null($this->getAudience()))) { + $assertion['aud'] = $this->getAudience(); + } + + if (!(is_null($this->getScope()))) { + $assertion['scope'] = $this->getScope(); + } + + if (empty($assertion['scope']) && empty($assertion['aud'])) { + throw new \DomainException('one of scope or aud should not be null'); + } + + if (!(is_null($this->getSub()))) { + $assertion['sub'] = $this->getSub(); + } + $assertion += $this->getAdditionalClaims(); + + return JWT::encode( + $assertion, + $this->getSigningKey(), + $this->getSigningAlgorithm(), + $this->getSigningKeyId() + ); + } + + /** + * Generates a request for token credentials. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array $headers [optional] Additional headers to pass to + * the token endpoint request. + * @return RequestInterface the authorization Url. + */ + public function generateCredentialsRequest(?callable $httpHandler = null, array $headers = []) + { + $uri = $this->getTokenCredentialUri(); + if (is_null($uri)) { + throw new \DomainException('No token credential URI was set.'); + } + + $grantType = $this->getGrantType(); + $params = ['grant_type' => $grantType]; + switch ($grantType) { + case 'authorization_code': + $params['code'] = $this->getCode(); + $params['redirect_uri'] = $this->getRedirectUri(); + if ($this->codeVerifier) { + $params['code_verifier'] = $this->codeVerifier; + } + $this->addClientCredentials($params); + break; + case 'password': + $params['username'] = $this->getUsername(); + $params['password'] = $this->getPassword(); + $this->addClientCredentials($params); + break; + case 'refresh_token': + $params['refresh_token'] = $this->getRefreshToken(); + if (isset($this->getAdditionalClaims()['target_audience'])) { + $params['target_audience'] = $this->getAdditionalClaims()['target_audience']; + } + $this->addClientCredentials($params); + break; + case self::JWT_URN: + $params['assertion'] = $this->toJwt(); + break; + case self::STS_URN: + $token = $this->subjectTokenFetcher->fetchSubjectToken($httpHandler); + $params['subject_token'] = $token; + $params['subject_token_type'] = $this->subjectTokenType; + $params += array_filter([ + 'resource' => $this->resource, + 'audience' => $this->audience, + 'scope' => $this->getScope(), + 'requested_token_type' => self::STS_REQUESTED_TOKEN_TYPE, + 'actor_token' => $this->actorToken, + 'actor_token_type' => $this->actorTokenType, + ]); + if ($this->additionalOptions) { + $params['options'] = json_encode($this->additionalOptions); + } + break; + default: + if (!is_null($this->getRedirectUri())) { + # Grant type was supposed to be 'authorization_code', as there + # is a redirect URI. + throw new \DomainException('Missing authorization code'); + } + unset($params['grant_type']); + if (!is_null($grantType)) { + $params['grant_type'] = $grantType; + } + $params = array_merge($params, $this->getExtensionParams()); + } + + $headers = [ + 'Cache-Control' => 'no-store', + 'Content-Type' => 'application/x-www-form-urlencoded', + ] + $headers; + + return new Request( + 'POST', + $uri, + $headers, + Query::build($params) + ); + } + + /** + * Fetches the auth tokens based on the current state. + * + * @param callable|null $httpHandler callback which delivers psr7 request + * @param array $headers [optional] If present, add these headers to the token + * endpoint request. + * @return array the response + */ + public function fetchAuthToken(?callable $httpHandler = null, array $headers = []) + { + if (is_null($httpHandler)) { + $httpHandler = HttpHandlerFactory::build(HttpClientCache::getHttpClient()); + } + + $response = $httpHandler($this->generateCredentialsRequest($httpHandler, $headers)); + $credentials = $this->parseTokenResponse($response); + $this->updateToken($credentials); + if (isset($credentials['scope'])) { + $this->setGrantedScope($credentials['scope']); + } + + return $credentials; + } + + /** + * @deprecated + * + * Obtains a key that can used to cache the results of #fetchAuthToken. + * + * The key is derived from the scopes. + * + * @return ?string a key that may be used to cache the auth token. + */ + public function getCacheKey() + { + if (is_array($this->scope)) { + return implode(':', $this->scope); + } + + if ($this->audience) { + return $this->audience; + } + + // If scope has not set, return null to indicate no caching. + return null; + } + + /** + * Gets this instance's SubjectTokenFetcher + * + * @return null|ExternalAccountCredentialSourceInterface + */ + public function getSubjectTokenFetcher(): ?ExternalAccountCredentialSourceInterface + { + return $this->subjectTokenFetcher; + } + + /** + * Parses the fetched tokens. + * + * @param ResponseInterface $resp the response. + * @return array the tokens parsed from the response body. + * @throws \Exception + */ + public function parseTokenResponse(ResponseInterface $resp) + { + $body = (string) $resp->getBody(); + if ($resp->hasHeader('Content-Type') && + $resp->getHeaderLine('Content-Type') == 'application/x-www-form-urlencoded' + ) { + $res = []; + parse_str($body, $res); + + return $res; + } + + // Assume it's JSON; if it's not throw an exception + if (null === $res = json_decode($body, true)) { + throw new \Exception('Invalid JSON response'); + } + + return $res; + } + + /** + * Updates an OAuth 2.0 client. + * + * Example: + * ``` + * $oauth->updateToken([ + * 'refresh_token' => 'n4E9O119d', + * 'access_token' => 'FJQbwq9', + * 'expires_in' => 3600 + * ]); + * ``` + * + * @param array $config + * The configuration parameters related to the token. + * + * - refresh_token + * The refresh token associated with the access token + * to be refreshed. + * + * - access_token + * The current access token for this client. + * + * - id_token + * The current ID token for this client. + * + * - expires_in + * The time in seconds until access token expiration. + * + * - expires_at + * The time as an integer number of seconds since the Epoch + * + * - issued_at + * The timestamp that the token was issued at. + * @return void + */ + public function updateToken(array $config) + { + $opts = array_merge([ + 'extensionParams' => [], + 'access_token' => null, + 'id_token' => null, + 'expires_in' => null, + 'expires_at' => null, + 'issued_at' => null, + 'scope' => null, + ], $config); + + $this->setExpiresAt($opts['expires_at']); + $this->setExpiresIn($opts['expires_in']); + // By default, the token is issued at `Time.now` when `expiresIn` is set, + // but this can be used to supply a more precise time. + if (!is_null($opts['issued_at'])) { + $this->setIssuedAt($opts['issued_at']); + } + + $this->setAccessToken($opts['access_token']); + $this->setIdToken($opts['id_token']); + + // The refresh token should only be updated if a value is explicitly + // passed in, as some access token responses do not include a refresh + // token. + if (array_key_exists('refresh_token', $opts)) { + $this->setRefreshToken($opts['refresh_token']); + } + + // Required for STS response. An identifier for the representation of + // the issued security token. + if (array_key_exists('issued_token_type', $opts)) { + $this->issuedTokenType = $opts['issued_token_type']; + } + } + + /** + * Builds the authorization Uri that the user should be redirected to. + * + * @param array $config configuration options that customize the return url. + * @return UriInterface the authorization Url. + * @throws InvalidArgumentException + */ + public function buildFullAuthorizationUri(array $config = []) + { + if (is_null($this->getAuthorizationUri())) { + throw new InvalidArgumentException( + 'requires an authorizationUri to have been set' + ); + } + + $params = array_merge([ + 'response_type' => 'code', + 'access_type' => 'offline', + 'client_id' => $this->clientId, + 'redirect_uri' => $this->redirectUri, + 'state' => $this->state, + 'scope' => $this->getScope(), + ], $config); + + // Validate the auth_params + if (is_null($params['client_id'])) { + throw new InvalidArgumentException( + 'missing the required client identifier' + ); + } + if (is_null($params['redirect_uri'])) { + throw new InvalidArgumentException('missing the required redirect URI'); + } + if (!empty($params['prompt']) && !empty($params['approval_prompt'])) { + throw new InvalidArgumentException( + 'prompt and approval_prompt are mutually exclusive' + ); + } + if ($this->codeVerifier) { + $params['code_challenge'] = $this->getCodeChallenge($this->codeVerifier); + $params['code_challenge_method'] = $this->getCodeChallengeMethod(); + } + + // Construct the uri object; return it if it is valid. + $result = clone $this->authorizationUri; + $existingParams = Query::parse($result->getQuery()); + + $result = $result->withQuery( + Query::build(array_merge($existingParams, $params)) + ); + + if ($result->getScheme() != 'https') { + throw new InvalidArgumentException( + 'Authorization endpoint must be protected by TLS' + ); + } + + return $result; + } + + /** + * @return string|null + */ + public function getCodeVerifier(): ?string + { + return $this->codeVerifier; + } + + /** + * A cryptographically random string that is used to correlate the + * authorization request to the token request. + * + * The code verifier for PKCE for OAuth 2.0. When set, the authorization + * URI will contain the Code Challenge and Code Challenge Method querystring + * parameters, and the token URI will contain the Code Verifier parameter. + * + * @see https://datatracker.ietf.org/doc/html/rfc7636 + * + * @param string|null $codeVerifier + */ + public function setCodeVerifier(?string $codeVerifier): void + { + $this->codeVerifier = $codeVerifier; + } + + /** + * Generates a random 128-character string for the "code_verifier" parameter + * in PKCE for OAuth 2.0. This is a cryptographically random string that is + * determined using random_int, hashed using "hash" and sha256, and base64 + * encoded. + * + * When this method is called, the code verifier is set on the object. + * + * @return string + */ + public function generateCodeVerifier(): string + { + return $this->codeVerifier = $this->generateRandomString(128); + } + + private function getCodeChallenge(string $randomString): string + { + return rtrim(strtr(base64_encode(hash('sha256', $randomString, true)), '+/', '-_'), '='); + } + + private function getCodeChallengeMethod(): string + { + return 'S256'; + } + + private function generateRandomString(int $length): string + { + $validChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~'; + $validCharsLen = strlen($validChars); + $str = ''; + $i = 0; + while ($i++ < $length) { + $str .= $validChars[random_int(0, $validCharsLen - 1)]; + } + return $str; + } + + /** + * Sets the authorization server's HTTP endpoint capable of authenticating + * the end-user and obtaining authorization. + * + * @param string $uri + * @return void + */ + public function setAuthorizationUri($uri) + { + $this->authorizationUri = $this->coerceUri($uri); + } + + /** + * Gets the authorization server's HTTP endpoint capable of authenticating + * the end-user and obtaining authorization. + * + * @return ?UriInterface + */ + public function getAuthorizationUri() + { + return $this->authorizationUri; + } + + /** + * Gets the authorization server's HTTP endpoint capable of issuing tokens + * and refreshing expired tokens. + * + * @return ?UriInterface + */ + public function getTokenCredentialUri() + { + return $this->tokenCredentialUri; + } + + /** + * Sets the authorization server's HTTP endpoint capable of issuing tokens + * and refreshing expired tokens. + * + * @param string $uri + * @return void + */ + public function setTokenCredentialUri($uri) + { + $this->tokenCredentialUri = $this->coerceUri($uri); + } + + /** + * Gets the redirection URI used in the initial request. + * + * @return ?string + */ + public function getRedirectUri() + { + return $this->redirectUri; + } + + /** + * Sets the redirection URI used in the initial request. + * + * @param ?string $uri + * @return void + */ + public function setRedirectUri($uri) + { + if (is_null($uri)) { + $this->redirectUri = null; + + return; + } + // redirect URI must be absolute + if (!$this->isAbsoluteUri($uri)) { + // "postmessage" is a reserved URI string in Google-land + // @see https://developers.google.com/identity/sign-in/web/server-side-flow + if ('postmessage' !== (string) $uri) { + throw new InvalidArgumentException( + 'Redirect URI must be absolute' + ); + } + } + $this->redirectUri = (string) $uri; + } + + /** + * Gets the scope of the access requests as a space-delimited String. + * + * @return ?string + */ + public function getScope() + { + if (is_null($this->scope)) { + return $this->scope; + } + + return implode(' ', $this->scope); + } + + /** + * Gets the subject token type + * + * @return ?string + */ + public function getSubjectTokenType(): ?string + { + return $this->subjectTokenType; + } + + /** + * Sets the scope of the access request, expressed either as an Array or as + * a space-delimited String. + * + * @param string|array|null $scope + * @return void + * @throws InvalidArgumentException + */ + public function setScope($scope) + { + if (is_null($scope)) { + $this->scope = null; + } elseif (is_string($scope)) { + $this->scope = explode(' ', $scope); + } elseif (is_array($scope)) { + foreach ($scope as $s) { + $pos = strpos($s, ' '); + if ($pos !== false) { + throw new InvalidArgumentException( + 'array scope values should not contain spaces' + ); + } + } + $this->scope = $scope; + } else { + throw new InvalidArgumentException( + 'scopes should be a string or array of strings' + ); + } + } + + /** + * Gets the current grant type. + * + * @return ?string + */ + public function getGrantType() + { + if (!is_null($this->grantType)) { + return $this->grantType; + } + + // Returns the inferred grant type, based on the current object instance + // state. + if (!is_null($this->code)) { + return 'authorization_code'; + } + + if (!is_null($this->refreshToken)) { + return 'refresh_token'; + } + + if (!is_null($this->username) && !is_null($this->password)) { + return 'password'; + } + + if (!is_null($this->issuer) && !is_null($this->signingKey)) { + return self::JWT_URN; + } + + if (!is_null($this->subjectTokenFetcher) && !is_null($this->subjectTokenType)) { + return self::STS_URN; + } + + return null; + } + + /** + * Sets the current grant type. + * + * @param string $grantType + * @return void + * @throws InvalidArgumentException + */ + public function setGrantType($grantType) + { + if (in_array($grantType, self::$knownGrantTypes)) { + $this->grantType = $grantType; + } else { + // validate URI + if (!$this->isAbsoluteUri($grantType)) { + throw new InvalidArgumentException( + 'invalid grant type' + ); + } + $this->grantType = (string) $grantType; + } + } + + /** + * Gets an arbitrary string designed to allow the client to maintain state. + * + * @return string + */ + public function getState() + { + return $this->state; + } + + /** + * Sets an arbitrary string designed to allow the client to maintain state. + * + * @param string $state + * @return void + */ + public function setState($state) + { + $this->state = $state; + } + + /** + * Gets the authorization code issued to this client. + * + * @return string + */ + public function getCode() + { + return $this->code; + } + + /** + * Sets the authorization code issued to this client. + * + * @param string $code + * @return void + */ + public function setCode($code) + { + $this->code = $code; + } + + /** + * Gets the resource owner's username. + * + * @return string + */ + public function getUsername() + { + return $this->username; + } + + /** + * Sets the resource owner's username. + * + * @param string $username + * @return void + */ + public function setUsername($username) + { + $this->username = $username; + } + + /** + * Gets the resource owner's password. + * + * @return string + */ + public function getPassword() + { + return $this->password; + } + + /** + * Sets the resource owner's password. + * + * @param string $password + * @return void + */ + public function setPassword($password) + { + $this->password = $password; + } + + /** + * Sets a unique identifier issued to the client to identify itself to the + * authorization server. + * + * @return string + */ + public function getClientId() + { + return $this->clientId; + } + + /** + * Sets a unique identifier issued to the client to identify itself to the + * authorization server. + * + * @param string $clientId + * @return void + */ + public function setClientId($clientId) + { + $this->clientId = $clientId; + } + + /** + * Gets a shared symmetric secret issued by the authorization server, which + * is used to authenticate the client. + * + * @return string + */ + public function getClientSecret() + { + return $this->clientSecret; + } + + /** + * Sets a shared symmetric secret issued by the authorization server, which + * is used to authenticate the client. + * + * @param string $clientSecret + * @return void + */ + public function setClientSecret($clientSecret) + { + $this->clientSecret = $clientSecret; + } + + /** + * Gets the Issuer ID when using assertion profile. + * + * @return ?string + */ + public function getIssuer() + { + return $this->issuer; + } + + /** + * Sets the Issuer ID when using assertion profile. + * + * @param string $issuer + * @return void + */ + public function setIssuer($issuer) + { + $this->issuer = $issuer; + } + + /** + * Gets the target sub when issuing assertions. + * + * @return ?string + */ + public function getSub() + { + return $this->sub; + } + + /** + * Sets the target sub when issuing assertions. + * + * @param string $sub + * @return void + */ + public function setSub($sub) + { + $this->sub = $sub; + } + + /** + * Gets the target audience when issuing assertions. + * + * @return ?string + */ + public function getAudience() + { + return $this->audience; + } + + /** + * Sets the target audience when issuing assertions. + * + * @param string $audience + * @return void + */ + public function setAudience($audience) + { + $this->audience = $audience; + } + + /** + * Gets the signing key when using an assertion profile. + * + * @return ?string + */ + public function getSigningKey() + { + return $this->signingKey; + } + + /** + * Sets the signing key when using an assertion profile. + * + * @param string $signingKey + * @return void + */ + public function setSigningKey($signingKey) + { + $this->signingKey = $signingKey; + } + + /** + * Gets the signing key id when using an assertion profile. + * + * @return ?string + */ + public function getSigningKeyId() + { + return $this->signingKeyId; + } + + /** + * Sets the signing key id when using an assertion profile. + * + * @param string $signingKeyId + * @return void + */ + public function setSigningKeyId($signingKeyId) + { + $this->signingKeyId = $signingKeyId; + } + + /** + * Gets the signing algorithm when using an assertion profile. + * + * @return ?string + */ + public function getSigningAlgorithm() + { + return $this->signingAlgorithm; + } + + /** + * Sets the signing algorithm when using an assertion profile. + * + * @param ?string $signingAlgorithm + * @return void + */ + public function setSigningAlgorithm($signingAlgorithm) + { + if (is_null($signingAlgorithm)) { + $this->signingAlgorithm = null; + } elseif (!in_array($signingAlgorithm, self::$knownSigningAlgorithms)) { + throw new InvalidArgumentException('unknown signing algorithm'); + } else { + $this->signingAlgorithm = $signingAlgorithm; + } + } + + /** + * Gets the set of parameters used by extension when using an extension + * grant type. + * + * @return array + */ + public function getExtensionParams() + { + return $this->extensionParams; + } + + /** + * Sets the set of parameters used by extension when using an extension + * grant type. + * + * @param array $extensionParams + * @return void + */ + public function setExtensionParams($extensionParams) + { + $this->extensionParams = $extensionParams; + } + + /** + * Gets the number of seconds assertions are valid for. + * + * @return int + */ + public function getExpiry() + { + return $this->expiry; + } + + /** + * Sets the number of seconds assertions are valid for. + * + * @param int $expiry + * @return void + */ + public function setExpiry($expiry) + { + $this->expiry = $expiry; + } + + /** + * Gets the lifetime of the access token in seconds. + * + * @return int + */ + public function getExpiresIn() + { + return $this->expiresIn; + } + + /** + * Sets the lifetime of the access token in seconds. + * + * @param ?int $expiresIn + * @return void + */ + public function setExpiresIn($expiresIn) + { + if (is_null($expiresIn)) { + $this->expiresIn = null; + $this->issuedAt = null; + } else { + $this->issuedAt = time(); + $this->expiresIn = (int) $expiresIn; + } + } + + /** + * Gets the time the current access token expires at. + * + * @return ?int + */ + public function getExpiresAt() + { + if (!is_null($this->expiresAt)) { + return $this->expiresAt; + } + + if (!is_null($this->issuedAt) && !is_null($this->expiresIn)) { + return $this->issuedAt + $this->expiresIn; + } + + return null; + } + + /** + * Returns true if the acccess token has expired. + * + * @return bool + */ + public function isExpired() + { + $expiration = $this->getExpiresAt(); + $now = time(); + + return !is_null($expiration) && $now >= $expiration; + } + + /** + * Sets the time the current access token expires at. + * + * @param int $expiresAt + * @return void + */ + public function setExpiresAt($expiresAt) + { + $this->expiresAt = $expiresAt; + } + + /** + * Gets the time the current access token was issued at. + * + * @return ?int + */ + public function getIssuedAt() + { + return $this->issuedAt; + } + + /** + * Sets the time the current access token was issued at. + * + * @param int $issuedAt + * @return void + */ + public function setIssuedAt($issuedAt) + { + $this->issuedAt = $issuedAt; + } + + /** + * Gets the current access token. + * + * @return ?string + */ + public function getAccessToken() + { + return $this->accessToken; + } + + /** + * Sets the current access token. + * + * @param string $accessToken + * @return void + */ + public function setAccessToken($accessToken) + { + $this->accessToken = $accessToken; + } + + /** + * Gets the current ID token. + * + * @return ?string + */ + public function getIdToken() + { + return $this->idToken; + } + + /** + * Sets the current ID token. + * + * @param string $idToken + * @return void + */ + public function setIdToken($idToken) + { + $this->idToken = $idToken; + } + + /** + * Get the granted space-separated scopes (if they exist) for the last + * fetched token. + * + * @return string|null + */ + public function getGrantedScope() + { + return $this->grantedScope; + } + + /** + * Sets the current ID token. + * + * @param string $grantedScope + * @return void + */ + public function setGrantedScope($grantedScope) + { + $this->grantedScope = $grantedScope; + } + + /** + * Gets the refresh token associated with the current access token. + * + * @return ?string + */ + public function getRefreshToken() + { + return $this->refreshToken; + } + + /** + * Sets the refresh token associated with the current access token. + * + * @param string $refreshToken + * @return void + */ + public function setRefreshToken($refreshToken) + { + $this->refreshToken = $refreshToken; + } + + /** + * Sets additional claims to be included in the JWT token + * + * @param array $additionalClaims + * @return void + */ + public function setAdditionalClaims(array $additionalClaims) + { + $this->additionalClaims = $additionalClaims; + } + + /** + * Gets the additional claims to be included in the JWT token. + * + * @return array + */ + public function getAdditionalClaims() + { + return $this->additionalClaims; + } + + /** + * Gets the additional claims to be included in the JWT token. + * + * @return ?string + */ + public function getIssuedTokenType() + { + return $this->issuedTokenType; + } + + /** + * The expiration of the last received token. + * + * @return array|null + */ + public function getLastReceivedToken() + { + if ($token = $this->getAccessToken()) { + // the bare necessity of an auth token + $authToken = [ + 'access_token' => $token, + 'expires_at' => $this->getExpiresAt(), + ]; + } elseif ($idToken = $this->getIdToken()) { + $authToken = [ + 'id_token' => $idToken, + 'expires_at' => $this->getExpiresAt(), + ]; + } else { + return null; + } + + if ($expiresIn = $this->getExpiresIn()) { + $authToken['expires_in'] = $expiresIn; + } + if ($issuedAt = $this->getIssuedAt()) { + $authToken['issued_at'] = $issuedAt; + } + if ($refreshToken = $this->getRefreshToken()) { + $authToken['refresh_token'] = $refreshToken; + } + + return $authToken; + } + + /** + * Get the client ID. + * + * Alias of {@see OAuth2::getClientId()}. + * + * @param callable|null $httpHandler + * @return string + * @access private + */ + public function getClientName(?callable $httpHandler = null) + { + return $this->getClientId(); + } + + /** + * @todo handle uri as array + * + * @param ?string $uri + * @return null|UriInterface + */ + private function coerceUri($uri) + { + if (is_null($uri)) { + return null; + } + + return Utils::uriFor($uri); + } + + /** + * @param string $idToken + * @param Key|Key[]|string|string[] $publicKey + * @param string|string[] $allowedAlgs + * @return object + */ + private function jwtDecode($idToken, $publicKey, $allowedAlgs) + { + $keys = $this->getFirebaseJwtKeys($publicKey, $allowedAlgs); + + // Default exception if none are caught. We are using the same exception + // class and message from firebase/php-jwt to preserve backwards + // compatibility. + $e = new \InvalidArgumentException('Key may not be empty'); + foreach ($keys as $key) { + try { + return JWT::decode($idToken, $key); + } catch (\Exception $e) { + // try next alg + } + } + throw $e; + } + + /** + * @param Key|Key[]|string|string[] $publicKey + * @param string|string[] $allowedAlgs + * @return Key[] + */ + private function getFirebaseJwtKeys($publicKey, $allowedAlgs) + { + // If $publicKey is instance of Key, return it + if ($publicKey instanceof Key) { + return [$publicKey]; + } + + // If $allowedAlgs is empty, $publicKey must be Key or Key[]. + if (empty($allowedAlgs)) { + $keys = []; + foreach ((array) $publicKey as $kid => $pubKey) { + if (!$pubKey instanceof Key) { + throw new \InvalidArgumentException(sprintf( + 'When allowed algorithms is empty, the public key must' + . 'be an instance of %s or an array of %s objects', + Key::class, + Key::class + )); + } + $keys[$kid] = $pubKey; + } + return $keys; + } + + $allowedAlg = null; + if (is_string($allowedAlgs)) { + $allowedAlg = $allowedAlgs; + } elseif (is_array($allowedAlgs)) { + if (count($allowedAlgs) > 1) { + throw new \InvalidArgumentException( + 'To have multiple allowed algorithms, You must provide an' + . ' array of Firebase\JWT\Key objects.' + . ' See https://github.com/firebase/php-jwt for more information.' + ); + } + $allowedAlg = array_pop($allowedAlgs); + } else { + throw new \InvalidArgumentException('allowed algorithms must be a string or array.'); + } + + if (is_array($publicKey)) { + // When publicKey is greater than 1, create keys with the single alg. + $keys = []; + foreach ($publicKey as $kid => $pubKey) { + if ($pubKey instanceof Key) { + $keys[$kid] = $pubKey; + } else { + $keys[$kid] = new Key($pubKey, $allowedAlg); + } + } + return $keys; + } + + return [new Key($publicKey, $allowedAlg)]; + } + + /** + * Determines if the URI is absolute based on its scheme and host or path + * (RFC 3986). + * + * @param string $uri + * @return bool + */ + private function isAbsoluteUri($uri) + { + $uri = $this->coerceUri($uri); + + return $uri->getScheme() && ($uri->getHost() || $uri->getPath()); + } + + /** + * @param array $params + * @return array + */ + private function addClientCredentials(&$params) + { + $clientId = $this->getClientId(); + $clientSecret = $this->getClientSecret(); + + if ($clientId && $clientSecret) { + $params['client_id'] = $clientId; + $params['client_secret'] = $clientSecret; + } + + return $params; + } +} diff --git a/vendor/google/auth/src/ProjectIdProviderInterface.php b/vendor/google/auth/src/ProjectIdProviderInterface.php new file mode 100644 index 0000000..8d10c29 --- /dev/null +++ b/vendor/google/auth/src/ProjectIdProviderInterface.php @@ -0,0 +1,32 @@ +auth->getSigningKey(); + + $signedString = ''; + if (class_exists(phpseclib3\Crypt\RSA::class) && !$forceOpenssl) { + $key = PublicKeyLoader::load($privateKey); + $rsa = $key->withHash('sha256')->withPadding(RSA::SIGNATURE_PKCS1); + + $signedString = $rsa->sign($stringToSign); + } elseif (extension_loaded('openssl')) { + openssl_sign($stringToSign, $signedString, $privateKey, 'sha256WithRSAEncryption'); + } else { + // @codeCoverageIgnoreStart + throw new \RuntimeException('OpenSSL is not installed.'); + } + // @codeCoverageIgnoreEnd + + return base64_encode($signedString); + } +} diff --git a/vendor/google/auth/src/SignBlobInterface.php b/vendor/google/auth/src/SignBlobInterface.php new file mode 100644 index 0000000..b3c2b05 --- /dev/null +++ b/vendor/google/auth/src/SignBlobInterface.php @@ -0,0 +1,44 @@ + $metadata metadata hashmap + * @param string $authUri optional auth uri + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array updated metadata hashmap + */ + public function updateMetadata( + $metadata, + $authUri = null, + ?callable $httpHandler = null + ); +} diff --git a/vendor/google/auth/src/UpdateMetadataTrait.php b/vendor/google/auth/src/UpdateMetadataTrait.php new file mode 100644 index 0000000..486ec72 --- /dev/null +++ b/vendor/google/auth/src/UpdateMetadataTrait.php @@ -0,0 +1,74 @@ + $metadata metadata hashmap + * @param string $authUri optional auth uri + * @param callable|null $httpHandler callback which delivers psr7 request + * @return array updated metadata hashmap + */ + public function updateMetadata( + $metadata, + $authUri = null, + ?callable $httpHandler = null + ) { + $metadata_copy = $metadata; + + // We do need to set the service api usage metrics irrespective even if + // the auth token is set because invoking this method with auth tokens + // would mean the intention is to just explicitly set the metrics metadata. + $metadata_copy = $this->applyServiceApiUsageMetrics($metadata_copy); + + if (isset($metadata_copy[self::AUTH_METADATA_KEY])) { + // Auth metadata has already been set + return $metadata_copy; + } + $result = $this->fetchAuthToken($httpHandler); + if (isset($result['access_token'])) { + $metadata_copy[self::AUTH_METADATA_KEY] = ['Bearer ' . $result['access_token']]; + } elseif (isset($result['id_token'])) { + $metadata_copy[self::AUTH_METADATA_KEY] = ['Bearer ' . $result['id_token']]; + } + return $metadata_copy; + } +} diff --git a/vendor/google/cloud-dialogflow/.gitattributes b/vendor/google/cloud-dialogflow/.gitattributes new file mode 100644 index 0000000..3e957a6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/.gitattributes @@ -0,0 +1,7 @@ +/*.xml.dist export-ignore +/tests export-ignore +/.github export-ignore +/samples export-ignore +/.OwlBot.yaml export-ignore +/owlbot.py export-ignore +/src/**/gapic_metadata.json export-ignore diff --git a/vendor/google/cloud-dialogflow/.owlbot/create_conversation_model_sample_fix.patch b/vendor/google/cloud-dialogflow/.owlbot/create_conversation_model_sample_fix.patch new file mode 100644 index 0000000..400f5af --- /dev/null +++ b/vendor/google/cloud-dialogflow/.owlbot/create_conversation_model_sample_fix.patch @@ -0,0 +1,21 @@ +diff --git a/Dialogflow/samples/V2/ConversationModelsClient/create_conversation_model.php b/Dialogflow/samples/V2/ConversationModelsClient/create_conversation_model.php +index 6f11d9f9524..a7a4ddb6fa8 100644 +--- a/Dialogflow/samples/V2/ConversationModelsClient/create_conversation_model.php ++++ b/Dialogflow/samples/V2/ConversationModelsClient/create_conversation_model.php +@@ -26,6 +26,7 @@ require_once __DIR__ . '/../../../vendor/autoload.php'; + use Google\ApiCore\ApiException; + use Google\ApiCore\OperationResponse; + use Google\Cloud\Dialogflow\V2\ConversationModel; ++use Google\Cloud\Dialogflow\V2\ConversationDatasetsClient; + use Google\Cloud\Dialogflow\V2\ConversationModelsClient; + use Google\Cloud\Dialogflow\V2\InputDataset; + use Google\Rpc\Status; +@@ -93,7 +94,7 @@ function create_conversation_model_sample( + function callSample(): void + { + $conversationModelDisplayName = '[DISPLAY_NAME]'; +- $formattedConversationModelDatasetsDataset = ConversationModelsClient::conversationDatasetName( ++ $formattedConversationModelDatasetsDataset = ConversationDatasetsClient::conversationDatasetName( + '[PROJECT]', + '[LOCATION]', + '[CONVERSATION_DATASET]' diff --git a/vendor/google/cloud-dialogflow/CODE_OF_CONDUCT.md b/vendor/google/cloud-dialogflow/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..c372780 --- /dev/null +++ b/vendor/google/cloud-dialogflow/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, +and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, +posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project +a harassment-free experience for everyone, +regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, +such as physical or electronic +addresses, without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, +project maintainers commit themselves to fairly and consistently +applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct +may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by opening an issue +or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, +available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) \ No newline at end of file diff --git a/vendor/google/cloud-dialogflow/CONTRIBUTING.md b/vendor/google/cloud-dialogflow/CONTRIBUTING.md new file mode 100644 index 0000000..76ea811 --- /dev/null +++ b/vendor/google/cloud-dialogflow/CONTRIBUTING.md @@ -0,0 +1,10 @@ +# How to Contribute + +We'd love to accept your patches and contributions to this project. We accept +and review pull requests against the main +[Google Cloud PHP](https://github.com/googleapis/google-cloud-php) +repository, which contains all of our client libraries. You will also need to +sign a Contributor License Agreement. For more details about how to contribute, +see the +[CONTRIBUTING.md](https://github.com/googleapis/google-cloud-php/blob/main/CONTRIBUTING.md) +file in the main Google Cloud PHP repository. diff --git a/vendor/google/cloud-dialogflow/LICENSE b/vendor/google/cloud-dialogflow/LICENSE new file mode 100644 index 0000000..8f71f43 --- /dev/null +++ b/vendor/google/cloud-dialogflow/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/vendor/google/cloud-dialogflow/README.md b/vendor/google/cloud-dialogflow/README.md new file mode 100644 index 0000000..3be307e --- /dev/null +++ b/vendor/google/cloud-dialogflow/README.md @@ -0,0 +1,73 @@ +# Google Cloud Dialogflow for PHP + +> Idiomatic PHP client for [Google Cloud Dialogflow](https://cloud.google.com/dialogflow-enterprise/). + +[![Latest Stable Version](https://poser.pugx.org/google/cloud-dialogflow/v/stable)](https://packagist.org/packages/google/cloud-dialogflow) [![Packagist](https://img.shields.io/packagist/dm/google/cloud-dialogflow.svg)](https://packagist.org/packages/google/cloud-dialogflow) + +* [API documentation](https://cloud.google.com/php/docs/reference/cloud-dialogflow/latest) + +**NOTE:** This repository is part of [Google Cloud PHP](https://github.com/googleapis/google-cloud-php). Any +support requests, bug reports, or development contributions should be directed to +that project. + +Dialogflow Enterprise Edition is the enterprise tier of Dialogflow which is a natural language understanding platform +that makes it easy for you to design and integrate a conversational user interface into your mobile app, web application, +device, bot, and so on. Using Dialogflow you can provide users new and engaging ways to interact with your product using +both voice recognition and text input. + +### Installation + +To begin, install the preferred dependency manager for PHP, [Composer](https://getcomposer.org/). + +Now install this component: + +```sh +$ composer require google/cloud-dialogflow +``` + +This component supports both REST over HTTP/1.1 and gRPC. In order to take advantage of the benefits offered by gRPC (such as streaming methods) +please see our [gRPC installation guide](https://cloud.google.com/php/grpc). + +### Authentication + +Please see our [Authentication guide](https://github.com/googleapis/google-cloud-php/blob/main/AUTHENTICATION.md) for more information +on authenticating your client. Once authenticated, you'll be ready to start making requests. + +### Sample + +```php +require 'vendor/autoload.php'; + +use Google\Cloud\Dialogflow\V2\EntityTypesClient; + +$entityTypesClient = new EntityTypesClient(); +$projectId = '[MY_PROJECT_ID]'; +$entityTypeId = '[ENTITY_TYPE_ID]'; +$formattedEntityTypeName = $entityTypesClient->entityTypeName($projectId, $entityTypeId); + +$entityType = $entityTypesClient->getEntityType($formattedEntityTypeName); +foreach ($entityType->getEntities() as $entity) { + print(PHP_EOL); + printf('Entity value: %s' . PHP_EOL, $entity->getValue()); + print('Synonyms: '); + foreach ($entity->getSynonyms() as $synonym) { + print($synonym . "\t"); + } + print(PHP_EOL); +} +``` + +### Debugging + +Please see our [Debugging guide](https://github.com/googleapis/google-cloud-php/blob/main/DEBUG.md) +for more information about the debugging tools. + +### Version + +This component is considered GA (generally available). As such, it will not introduce backwards-incompatible changes in +any minor or patch releases. We will address issues and requests with the highest priority. + +### Next Steps + +1. Understand the [official documentation](https://cloud.google.com/dialogflow-enterprise/docs/). +2. Take a look at [in-depth usage samples](https://github.com/GoogleCloudPlatform/php-docs-samples/tree/master/dialogflow). diff --git a/vendor/google/cloud-dialogflow/SECURITY.md b/vendor/google/cloud-dialogflow/SECURITY.md new file mode 100644 index 0000000..8b58ae9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/SECURITY.md @@ -0,0 +1,7 @@ +# Security Policy + +To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). + +The Google Security Team will respond within 5 working days of your report on g.co/vulnz. + +We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. diff --git a/vendor/google/cloud-dialogflow/VERSION b/vendor/google/cloud-dialogflow/VERSION new file mode 100644 index 0000000..ccbccc3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/VERSION @@ -0,0 +1 @@ +2.2.0 diff --git a/vendor/google/cloud-dialogflow/composer.json b/vendor/google/cloud-dialogflow/composer.json new file mode 100644 index 0000000..988f49a --- /dev/null +++ b/vendor/google/cloud-dialogflow/composer.json @@ -0,0 +1,31 @@ +{ + "name": "google/cloud-dialogflow", + "description": "Google Cloud Dialogflow Client for PHP", + "license": "Apache-2.0", + "minimum-stability": "stable", + "autoload": { + "psr-4": { + "Google\\Cloud\\Dialogflow\\": "src", + "GPBMetadata\\Google\\Cloud\\Dialogflow\\": "metadata" + } + }, + "extra": { + "component": { + "id": "cloud-dialogflow", + "path": "Dialogflow", + "entry": null, + "target": "googleapis/google-cloud-php-dialogflow.git" + } + }, + "require": { + "php": "^8.1", + "google/gax": "^1.38.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.0", + "google/cloud-core": "^1.52.7" + }, + "suggest": { + "ext-grpc": "Enables use of gRPC, a universal high-performance RPC framework created by Google." + } +} diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Agent.php b/vendor/google/cloud-dialogflow/metadata/V2/Agent.php new file mode 100644 index 0000000000000000000000000000000000000000..4a07bdf7b1d2e76f9e9b63b378b793724a930221 GIT binary patch literal 5891 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 + ' +" +(google/cloud/dialogflow/v2/context.protogoogle.cloud.dialogflow.v2google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.protogoogle/protobuf/empty.proto google/protobuf/field_mask.protogoogle/protobuf/struct.proto" +Context +name ( BA +lifespan_count (BA0 + +parameters ( 2.google.protobuf.StructBA:A +!dialogflow.googleapis.com/Context>projects/{project}/agent/sessions/{session}/contexts/{context}fprojects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}Sprojects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context}{projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}" +ListContextsRequest9 +parent ( B)AA#!dialogflow.googleapis.com/Context + page_size (BA + +page_token ( BA"f +ListContextsResponse5 +contexts ( 2#.google.cloud.dialogflow.v2.Context +next_page_token ( "L +GetContextRequest7 +name ( B)AA# +!dialogflow.googleapis.com/Context" +CreateContextRequest9 +parent ( B)AA#!dialogflow.googleapis.com/Context9 +context ( 2#.google.cloud.dialogflow.v2.ContextBA" +UpdateContextRequest9 +context ( 2#.google.cloud.dialogflow.v2.ContextBA4 + update_mask ( 2.google.protobuf.FieldMaskBA"O +DeleteContextRequest7 +name ( B)AA# +!dialogflow.googleapis.com/Context"U +DeleteAllContextsRequest9 +parent ( B)AA#!dialogflow.googleapis.com/Context2 +Contexts + ListContexts/.google.cloud.dialogflow.v2.ListContextsRequest0.google.cloud.dialogflow.v2.ListContextsResponse"Aparent1/v2/{parent=projects/*/agent/sessions/*}/contextsZJH/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contextsZ?=/v2/{parent=projects/*/locations/*/agent/sessions/*}/contextsZVT/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts + +GetContext-.google.cloud.dialogflow.v2.GetContextRequest#.google.cloud.dialogflow.v2.Context"Aname1/v2/{name=projects/*/agent/sessions/*/contexts/*}ZJH/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}Z?=/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}ZVT/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*} + CreateContext0.google.cloud.dialogflow.v2.CreateContextRequest#.google.cloud.dialogflow.v2.Context"Aparent,context"1/v2/{parent=projects/*/agent/sessions/*}/contexts:contextZS"H/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts:contextZH"=/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts:contextZ_"T/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts:context + UpdateContext0.google.cloud.dialogflow.v2.UpdateContextRequest#.google.cloud.dialogflow.v2.Context"Acontext,update_mask29/v2/{context.name=projects/*/agent/sessions/*/contexts/*}:contextZ[2P/v2/{context.name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}:contextZP2E/v2/{context.name=projects/*/locations/*/agent/sessions/*/contexts/*}:contextZg2\\/v2/{context.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}:context + DeleteContext0.google.cloud.dialogflow.v2.DeleteContextRequest.google.protobuf.Empty"Aname*1/v2/{name=projects/*/agent/sessions/*/contexts/*}ZJ*H/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}Z?*=/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}ZV*T/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*} +DeleteAllContexts4.google.cloud.dialogflow.v2.DeleteAllContextsRequest.google.protobuf.Empty"Aparent*1/v2/{parent=projects/*/agent/sessions/*}/contextsZJ*H/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contextsZ?*=/v2/{parent=projects/*/locations/*/agent/sessions/*}/contextsZV*T/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contextsxAdialogflow.googleapis.comAYhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/dialogflowB +com.google.cloud.dialogflow.v2B ContextProtoPZ>cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpbDFGoogle.Cloud.Dialogflow.V2bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Conversation.php b/vendor/google/cloud-dialogflow/metadata/V2/Conversation.php new file mode 100644 index 0000000000000000000000000000000000000000..5068ac23181427804bce0ec1a7916ab8dfe73f0f GIT binary patch literal 14824 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 literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/ConversationDataset.php b/vendor/google/cloud-dialogflow/metadata/V2/ConversationDataset.php new file mode 100644 index 0000000000000000000000000000000000000000..1d9e200b7883621ce26b223af5f04d19ff5a75df GIT binary patch literal 5291 zcmcgw&2QX96t6dJXeTYS)341|C4*a$bd}oDLM3pTqWx&oNTpe&p%T?fE5|##adB+p z87EDn<$yR;LP#J^TzcSyxN?BMp+_ol$N_QS#D#k$BxdZf*PFFByHz2ljpw~L@BQBU zy*D%0KX5l(a0xA88+$s%EwsLa=mtiv=TOIREVS;o+t@>fv+0@^_7sF_E9maZ8oF6q zUVDqF636!ptf7wMbS$hImgBe7mZ@7#r)@dg>Q+fL9D56UM5m@>H(NT@38qT00|2(Z ziHWNl7%kN+A7ZNW^~O?QtWo908nxJ1<9=xY0K?J=LDhuOT4)pO0>u7Yf88<-L@3+P zK$lI@G;NbIBj#fk;38`47QxKUplsW>4eli33M;mO=dPg8CYQbJIt-9S6nR(Y7%_Yr z%QnTHty_&6CWdFa)bZ*}RMR?`#>nz7b63Q++??4)bD@u#HsItUqMnbFyCdXb>U;J= z;5RqWjej*#uq(S}qiov_N5Qd)ruAa#naEPCS|+yXcsjRCY_%$QL*FtTZ#>miEUIW^ zCsQh;v1E)90wNLd;cXZuV*J#{h zDfKf#4Qll24O3KPxz&mb@D}6mTwF4|fM&t(2wZz9;=)3xrUZOfdVE*5N`>>nr0$xm zAMi>F*u`yl$Pzb0}J4UrQ01}@8G84v~XTR(%iAi z#2;lz{s>Gh+pbTUQrqmn>j1DgnjsScxvA3IO6Y1D%nGabdqMLhw+~g0g2_-*{`oLC zo%BOAM|cVx=FPU}!33NJ$6F?GEq$jMEaf8Saxf33TB4gVV&o^H6$!ozrVJ0WVbSEs z8 z2A1ZB8A`&z(-K;n0kF@S;rKSqzsAf>L;@%H&?2lMEa}zg#@l9_z@f|FDW@{#QuaoJqQ@Gdx;20dZvnRp58 znKy6P_z`U;TnhSv+ySVDEllx$osu6UaB+Flb-aP3LuZ|Xx^ zxBSfr(Xqo@SctDax-)EO1a-is2Jg+>;Un^ApqSaD{s+wEc~H#c!NC5d-;RSbDTE>L zryQ8hj00Ye(w8&ZSQU_7%{agK zNh`j5b^M(J=hBDKaCW5Yj0nOD2EyvWQ!t(rBhSmAlAcO(bsTnS;l$YAay6;=U`<|0 zwKM|nvaJ>#Ju6RVp6`Dxf4o7dOEgv8-rg4Uj1T|1PdCCBv#ab9M%#|JIe(CNZ>!2v z3B1Yf5JN~`$?wO3J-yZWyH#C!a3k!K(G8PbMmkRN<&L?@dUtO>cYPuG&-b}p?beUE z!cy>7r&Re{ol=Y6>XiGX^~rz{@65)p4)fu&R^k8&L&tgUTeJu z(TX?eRWJJhz3a2JYda*VLJ?}NV$aOynSW>hx9|K5AMC*f@d(45^kMG?@(TieMme>q z3wz;UKp3>?rSG_e$q?3BP;D6y)fD5UC=F=HY*KM!RxOIPPPP%|?tes}ahqjZtQ|cnpB;;vj(4 zDI|)B;46UQ=Z8Jlv0=c)$85Oo1eW7DTp*k;Vz?7Hz-~YUWj1#ZdUn(xj0#$wP4b5@ zVMe+8J{4k|z`Neskv>8jQ}H-q9(K(d32f&0oU*n^EtQ6Zk5!G{|glNl$-$AWYc1VX3BLp0wu zb#WkJaDPp#?dwx#q-43@9}8C(JC`4i8V!B`el3Bc|5!FDmlVnIhRTx-m9L7q`~$!s znKxP4+}0?Q`F0^X!7xYyyT9kbvze`wHo)5S_GeQtm0ywGg9U!$lWbZ%Jt-FDe|IL& zAZ0^TN_ntG7^BQeddSWT(rQtnT%|keyGlDN2Z>UW$T1;uq?fy)Gg?O+H zkTE{Ck=0T4HmWLh1=TWhQWk7fTWS|+df8A~s-+uc%@C24v<;sB6{#z#qBlh-ExiES z&CYpQwG`DrS{JEtsftidgy*HFU{ysQtaGI6eFd*0(YB0FAGCD zZKK$Cgp*FT*6$rpKYUN8YxN)LTqCwlIkrxDVx4lg*jtJ{_vm1Jon9qAGi6KBGCB4= OmK0|uR&fh%0r&&Q-UVv_ literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/ConversationModel.php b/vendor/google/cloud-dialogflow/metadata/V2/ConversationModel.php new file mode 100644 index 0000000000000000000000000000000000000000..7bc132ad5eec006cc6f9d3cb27d2426ce7bd43ef GIT binary patch literal 9282 zcmcgyO>7%k9q%|FOz=@5GM}oaV3yAAka#^Ac45_fH-hK+*U|?=mGIQ=F6TB$05d%A5Bd@wf6n(iP=m$haE*@~r_j$v)$t;J#oIXcNxCR|0D=N}j zCA2ResD?Ef=@xP$=)_8{8G6U+>AI?Snj0pG+tG~leTR{&c1`E#2^yGvT&g1q6oz}H>`j;X{%V3l&d{|MC>d;q3M<*|`t&yDkAm}Jo-iNQ8k)6Je!VFXO(8 z4mw*hpV)KrnA;RJ`#tW590vzBsB_t1Lk4dUe#(IfiWR&JE^ar(MpfFWZ*Nx1wUt`6 zGJ6Jx$y9l(DmH5M)maW+0AQzHscx=q?Bdl7JP)SXH?llNHv5a?@D(uQZ6?bTY8r&VaL<)p~_&n-V%;ni|?TG7-#zE9)DT>YCKp-5k_S01Mme;#Nc2 z!W!*Ll^tOQAGpQH?X)&fx}~j|3Ln zz-jg^q&Rl|sr%_TuNexfnE9vP$K$>hP0hg+N~p)OKsbiQ7>40}DYT_oaG^_DwI5F8 z7pX5KBEP7@pT@zph+)+OS?f_NPFfi_xCSmFpA6@g-c~zvlQf`jr=?6F3#)-?NWgNZ ztTP{gOMTge97|Q~xe2Ppoir^%X~l?G-kgDp;F={LO8dR8tV_f|$-(tjBNb4w4`@xG zrE#qI0te9N9Jn_^00p+g?bCZcAK;F|D)@2?_hXoPL5a6|A5R>giIPgw;4H3_1a0A? zaWESg#+=&M0me?#0lo=f*tKqakhmvijE#TQb-wk0ub(kg$mM;gCYid_QqgDiA>En z8inW{;CJ*Eo^nScD}p!TJQ%cq6g>^lycG*_K>a^<>n}O5I9#IZUFmQxg!42xNy>m>==nE!abja-l;OM^0|rJLPhHI;4n5u zmdawiTwNn)vvG3fbHDnhxW<-PtCMe&!Xa3!#3yaUu1MPm139v_M_?(jUVOo#sm-xP z@e3CGc?J{`qA1AAs19!oODPu1@o`QD;%TV#$9dxvah{^#X(PTfB;sfB*jcYNYT{b$ z5eZk0Tr_O$)M@O}+lwI3Y1{`XF&?^~m?-?`3V@MjX2XAGz|{nQz|>2l1R}SjX0Lnj zhHeFOzF&pUxM$*W+?`%h(e_Ebn)Y0rXLHr@FeW!skhQ{__J z$+6f!4${1Sv?hEloG;vxkRdU++dGWg`K5SD_=60%5<4&0Fm-&7r|~RL4b3D{Hk1gx=b}53_W^OD zF!6zi>>d^p@Ygug5(d%qOiLj0pcs;ApWsXr!R5ibZu*P^;>LHfCeRl-OCv?j(rF{- zw-m70X?hr7u|y{X><>c#i{%|DPc*ci2w$P~V=!yN6>FW`e&X~wF0zwDkz0CH5|(4> zhGtv91O71s<`bt2_>Nbemi!j0wQfYkS+X#3#aCX9DF<0<~X$a?nQBpUxAfa z+F^JN@PWV206w+^2Ws1}oQByjY7e!_%Q12L!Ot*+;fCOY7_ISfFdm2P_d$%(4ui3e z5BzHe+(;O)0vKT`07J<=7>9HalFlEbKW{n3NdH{C$uNqU-$FM8v?(bUCRZje w(c~)rOEkHMg}q5UA3Mg~TmD-Jx7iyfp%+xh!)#TFc{zpdWG|5%gJS^x3t4T1MF0Q* literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/ConversationProfile.php b/vendor/google/cloud-dialogflow/metadata/V2/ConversationProfile.php new file mode 100644 index 0000000000000000000000000000000000000000..f1e997f9ac43367739fb464ee56239e281493f4b GIT binary patch literal 12416 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 literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Document.php b/vendor/google/cloud-dialogflow/metadata/V2/Document.php new file mode 100644 index 0000000000000000000000000000000000000000..207e55a6760e9b6033e2e4ada2c215daf6284f82 GIT binary patch literal 7755 zcmb_hPjK5<8L#Z5b)K6veY9KG3tgejv}x$t;KESc?H?spykS$vb=~La+!yXt8%-(iSJKQM4z`$+cz=0ER28I*gd(x97$5EAZd#R)M zz3+YB@BO~-{q*$qE&Gv;-W2P^B#!2hp18FudXI=`JC{itLptC|9bZVi4&i%@Dgt~_2x?(MGgq|T0{@KGVL+^^N zr+M(-g6^uise3R}|2|}LL)_L3m%!xxw%bFq>*cueV^2J!L}gt8zK*> zNx=XhI%}p!98)toHR5(1-S#Y}38vL*pLijJ^vUAoU|H%;-xe4B7^~HNLEaEOXGo%} zi=sokp<`ZWaZ?9-;jhjFz+_wR$fjvg6fD!NR!2FFTpToU#n5464mW32Cq{3XJkp-% zmUFnNEfUZrb&wP2(5ZJ1k>$E&_MM?=>Sn*QVN;eL4yADO0eWR%d%Ni~4yQ82?r84g zBg}29t71ALvdOa{=eF_S`Oz4IOgS^9qgMOd`*w(;;XAxR>eD4ASp1)&v%d{g5 zgXp9Wb127~8$OMuXooBaqOdr#oc)_D;PdEYPj_uY+f~_6h7V=%YiMQw%c$P2O$yo3 z^Cmj=*tB*G((C(!ZedEyF3wddB|pnaJ5=I9l-}iY+u)Z5k-=wCzH0$zOivv;dSRNb z_0BQ+*wJ>>V5l$yk59tmHxMSKwq+1i8+w-N5W~`Xg*=Sr{G8h8i~&cE>jh(~k4WJp znB*&8OBH2{dG)zYy=L(m$_;`OrEmiB&8N(lA47`iIlF#q@PzsO<+$MZMS9Y$_{jt7}Sa z{un-iva9mlc>yRntGw54$t&%(`-*y3o~OLSa;v?zvaYC`_v&?Jv%R*_n9t%bqJmsk z8f|q|URi6@)y+F#rnZ#k`h)o?sf(r=Lcp5Sn{By0zT!!gTWKkB8)m|?2p#vAg!N$L zUbE(pWFftoma@Jf*QntX9jqzq3Y#`v{e$oi`F8@6BF)FAJoFv61X8BVX^!gv{&z{& zbIZ?yUwh@SY?d{bz(Dx7x&;sRLOBCNy+Dxc;ZA3QC&TLc$4&Ve|9Ld`%Q+wf6IxOO z;X3hn0xj~rA(Rll7V8;HP_F-z7t$ag{a8R})^#`Z=yI1;bllb)sP>={1x|4qSWlxF zTZ6vif)Zm4oW`)3?2%_ZCZ^x0@Ekh6ts9`Jpfy1=k#ux+EELxUNki~A(F}*$g>YzD zFYuC>aL|Np44*@%O!CxIBTKV_kbWYdvnvjPVjYL_Rr0=$ay(9!cFHhWf0cfgL9eY1 zY|Ht4_d-SpjzQI@PY~6`B=A69Z8EO8tPesjZ=usXE!BfFk@ju2g)ix@@od_`OqMOQ zxT4OIRcUnHq3c-#HEi9K54i~If3y!9?k#=*hG%95PdETGuXX^oB43kKRMxhhn;C!&}_GVu}_7 z-J8P{1pYe851Ch$imZUT`;W~~T{F5$zlUJ_V|To=kDMSb#-&dvvjixP&ZQJgW-9J0 z=z=@Y91m#jx>_Ih3Hp*lUszQ?Po}ASc@*LPzaSyyX|yl!7Jc-D6m*J~T@TI<-DGD} z0B@qofzAMLzI+Dc{yO>sVUelZL&FF)AjKz#FQ!a)7Ud&xNPTq9&o+Ep;}wI~QNdr1 z^jO!3ObbNSA;OnF$$m6=9ZH^RPnU~Jb(%^y`$Q@!_|nSEOUaS4}!HF-KnT zuQTY>nCQTX*9c?ADY5^p@IwB^!SW_yD;V(a3(~g^sKT)A`mc1+>aXfdg;s?n0A4v@ zeiFeWon+(-{{_ezms!bVjoYRK?B4*`RdhDE&w*~ouBl7xni40#6>kMgK3&I4avZZ* zF+RM#N|O7;L~ za#Eg;@uobUTQcc=J^cCL9QrCgeIcJe@KW$k@`Fd7XS>yMd1q%QPzm9UAzWfV@;`3A zMXx`$EoX4$W#*%$mY)mg0$einternalAddGeneratedFile( + ' + +0google/cloud/dialogflow/v2/encryption_spec.protogoogle.cloud.dialogflow.v2google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.proto#google/longrunning/operations.proto"Z +GetEncryptionSpecRequest> +name ( B0AA* +(dialogflow.googleapis.com/EncryptionSpec" +EncryptionSpec +name ( BA +kms_key ( BA:A +(dialogflow.googleapis.com/EncryptionSpec6projects/{project}/locations/{location}/encryptionSpec*encryptionSpecs2encryptionSpec"k +InitializeEncryptionSpecRequestH +encryption_spec ( 2*.google.cloud.dialogflow.v2.EncryptionSpecBA"" + InitializeEncryptionSpecResponse"u + InitializeEncryptionSpecMetadataQ +request ( 2;.google.cloud.dialogflow.v2.InitializeEncryptionSpecRequestBA2 +EncryptionSpecService +GetEncryptionSpec4.google.cloud.dialogflow.v2.GetEncryptionSpecRequest*.google.cloud.dialogflow.v2.EncryptionSpec"?Aname20/v2/{name=projects/*/locations/*/encryptionSpec} +InitializeEncryptionSpec;.google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest.google.longrunning.Operation"AD + InitializeEncryptionSpecResponse InitializeEncryptionSpecMetadataAencryption_specP"K/v2/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize:*xAdialogflow.googleapis.comAYhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/dialogflowB +com.google.cloud.dialogflow.v2BEncryptionSpecProtoPZ>cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpbDFGoogle.Cloud.Dialogflow.V2bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/cloud-dialogflow/metadata/V2/EntityType.php b/vendor/google/cloud-dialogflow/metadata/V2/EntityType.php new file mode 100644 index 0000000000000000000000000000000000000000..4c6b3d2b6e236f015867316e958e6a547ab2acab GIT binary patch literal 7506 zcmds6O>7&-70%K>u}5~KjBWiewY^;%iLAB)2385M9zkPdVlo^w2jmyUXD&Nv(b^ ztuGd5-+S}k_rCYu?Cgubuy<^9OxR{CWE;9>SgodEJGy`d6xT_&&Qm+ zBYRGph`YU z1JYX`0x;v*&AYnKDz(uFNwfqNHyfs%lHfV?bq>uRq||VlOJ`VNW_pF0d5}v_`IaK;PsilDm-Y?Ojm1us(pbOLBR3z=|8&WKQekr%UWU5e4%H2A=VC{sYOn z)D*spPTtqe#`FnTdMfv$4BuoBa+#j_%&VZn^|#Rlt?gM=@}{ksE>N_(YcIx3mR5>|i6CWy}DK^6eIgwMb8WpDioL0t<}v5DgU1It@<|!T^9<0rx|L% z&A^z;_EL*;z`);-y60ve`+s$_S_|^vk2E@l;2A6g^R0`Q2k019owuy)}BnuTRervO`vC0 z*p~UJnCRj%5l{(0$%|zkK$0-gBOp=!E}^MKhrsEmmx*A{qb1@cG$sJV(vTP*UW+lm zY3uSc^8xt1Wy85@fZvgwX=gm@&H{;kg2vix<0@_0j7DR*bddL;t7pQA$|$C6p{W8f z$RKx*kXq#*DRg;3^XfZMERLy~uA)mq600@3RkiKtysBP)0+-NqTtGJs-Q*QEmUPmv zD8OJW>2$#Gq~i$mr&wb5gMQ%xdOGH!@@sTu7;eW=;7ZreOEl@nl$R_0F|ij8abA5S zp)`w6sBIXo`&4$qej-k5IwKD=tyA$t3)THy;J!fX{~hrD2>X;y-#U;E zuW{uaX;1YJ8++#dBZO&-ZthqRg#3h{rnuqEGoQTg!s!8njCzT!7l_} z4(g+Wb%Fpd2dctFM<%?TQofNsRX5NJBkmA}nfFgulfG(*AHPLnxVNN-;jD@G>KKxv?BLG=Sfdnh6TlkNNeJs#0BaUqiekgKg@-`4r%uNk7rXs& z4~r&u|LACjcJOy8bb&EK=-zO)!9NRVHk6_L3JG!iUFtA6j*B>gcYEsP$jX3b_ZLZd zX~?`E)Z+O31LK^xJUWW>FO}6HW@5aJ%+O&bd!P#wAQ|ZW3jc4Q^XQHh^w1>!Pr!7c z2P6Z%Um+pre>fD=gQKoLTKOx%o~np+?^OBnv2#A`3dhI!&}90}Pt}>Bx1XP@ukU!C z?dG%DhYuh6ttY%1h1=~N{)O)*T%dbR%h{dZPrSF)!k;8`1#VbJG_(cbRjN!sxRs^t zyS(uQgA{IPTbB5N5xj#pkKQ(R?Y8*iuc=gF>HSoCnSEQ#EYfd_nL_w&G4ookcAAaY cThE1`TITupIN|f%&`))8=6aWAK literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Environment.php b/vendor/google/cloud-dialogflow/metadata/V2/Environment.php new file mode 100644 index 0000000000000000000000000000000000000000..6f2ebb1876a3ba2ab5276a1da7b28b7f39c5721d GIT binary patch literal 5519 zcmbtY&u`mQ9LLGJA1|Y{54vXAG(2ypU9~!pO{hxgSlXmr(bk3~E24@Nx%Nw9=Gw-7 zZr4?jCNv3g;Q~U43lawoyK>@B01ilS+i3?*oVhS@;Qg=@Cvn|$+huY6{eIu~^ZkCl zpZEOUd*5!^;F7q4OynpSY2wzNh+9as9Sd8kWr$l|qk$YzwYF{DK#nYm#dUFQy(*T9 ztJRCd)wMiFMR~DlSxp0FRm1YMtfni5)od8nZgwY^Mdps~Smrh|vCIMkU@F_lwG|bK zE9J#I2rHU`mD&o6QCp%hYQ;{B+D2|30M$@jS1fg7fqfv7f3~+}=&I;q1(W|S>uy~) zbxfS~hXl`p*iZ}?5&uEkhG(i+w@i^bteYyDz9RCN)b_G%5&R2ckX4zMgp{MUYGUM= zicu>fS9Nq7TTYpn=JQR2JB6fwnZDvLOT+06ahm6t&krQIAY#Wu;nhXaLD+N5d6qW~ z(C+-IMbxZd>$QSuTC@t5>E`oYOx+L%IW8GG>CMr6mUU!ki>RgS=$3Od*Sp9k&Cp3k zFrrrQG~HUV%!b|^e)*_C%bwBD4TI8i_&^;tkY1FwZM^pauB?Q26!-oM_*Qi?Kv>zf zqkS29XK&~}RSTNdVdgTK(8{P7LWh725^B>t;e{}o%XPhS+ugu2S8;G4&xX>|MTTc7iTGjSp# zo<+2y{>wnwIxl(Z+oW&4MS!bgfrI971L^SyNQHz8j)P-V0MmjfOrKgzJ}V?)8l*H| zPRRVG6Tuq+-UP2IO;W`A4su-jF3H|qc~%gf7cPN|q2hBGr0%Xv1UtLI9bf^BP~}1C zW5jbbH!E|ysOHI`H026);^|!nDbFSvjp`IzdV~Z@uwRm!EM)#cSvaqJbC0w*ff^>Ud!2=w9hdZDwV8YWKWQn}S2~?hH6(6Q0#+6>~t<2<3s)C6X6viLGpYPGj0Q`_c zC;cpd^pb-Jzd~6Ap z$q_oiSMN$Y-O_vngVNqPtOQ=QDa9ZM{JLQ&8dZ4BQ5r-WOs%fzuBtd%U2Q356S)ix z7ZK?rkS-zvMYiJQy8NX8&iAtC78xeX**mP$L(&Kyd4~QK01WlaPY1ry4gri_*4L+y{v@q#DVU$4ImG#Cz8>Fjvg`x zu=PO8&a^w|`mG1B^?Snq1Ta3JtT47g1LjA^__@G9J`$uO^e`Wm>CKY#f(`8n1HVpy z@d0g)$3I|xbo}3Q{ND;W4gz%#i*kPtBMz4{?H&-DALbSrx#PkdN`;<~@OQ$C0hy1l z%Yb=Mmove*kQrt7FEabw4wyc}IWQFN&AAy~v3~1A;lam={RJ$n~U(~0e*+V4`O5<{8~7B;Fr!Hg^ybp+ipIa z-QC^w!F4`H6%V)g?cl6!D7axc+gA@W?=H3YjQ}o?Z`zoWEslk1R;FYr3!681SAq{- z@=@Hh!nX$`J+cjS*Ri+e!w)|s62;{wiOdSSn3R|3#iU&9TujOvxvk@jm)E8`H!4^8 YU0&$wkA8gXYQ(i4v*g!vZO{hbf5m-mNB{r; literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Fulfillment.php b/vendor/google/cloud-dialogflow/metadata/V2/Fulfillment.php new file mode 100644 index 0000000000000000000000000000000000000000..0fe45f23b97fa95745b1eeacb66cf59ba9dd4f99 GIT binary patch literal 2905 zcmb7G&vV;E6t0}4P1kL4R62EhfF*=U3W+qR?F>~&J8~SS8S=x^xP@jkV`OP%FOel7 ztzy!QFPu0q%s^+D;mQfP@?UU-Te)!Pseb||c2}~jU?+8av24Bf?R($*-rM)_1HbKq zci{$dQD6{c!R8SpZ3O+mBcACwuo>Al3ZUtAeC(h=g0Qj+cXsP=y|P(qgLKV#IOuv=o=hE zUt<`0CB@L6C@TP%juD2iI=}+Q0Md^iH63iikQju1&Ev3vT}-Gmen#_Ig|^{@i24uP z+L3D#?75IR?7Ajeyai)SW;^eDH2+oDkE+Hfp>*h*E_k=JbbK29p6Syoz* zDwXeIN+Bb30en{gOXtz8SccS&#* zQvtyYomE^(js7H}oG_}UiUK98bQfG7;VtID!~r^rvlOp_sYAnwP>~l^&3z=4o`FjV zS7I4Vk|RGB!!_m3xLG9bQl0wFeE=reH!WzP{Tb3CmSu=IoT^iyf?zi z@yvM8$;bW25w7K{Aa4&YjJZ0vv4Kb?f`ndiCijRGIgP{@7 z+KCW&)$)qIFlH&@2EGIG5yx+^#^OJ<_ya>QEl# zCjLT)!cZN=GgUuio+#oRS^h4(&~9c_wv;Iq&-@2LiPOm#Nv~%?%}RHFM|r?0ISb=# zdQRY#zWPI(J+(>y)Sk8p@k3RXyWMUgk+g%2h_vH9Z<*dH#P)*D((B9zN0omRz*}?> zoFTk&AtT!wTf1t){{2{?{Tqo+l9rd5{M%Z)KS!?$ia2TgHo45A*=|5A(~^)Bpeg literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Gcs.php b/vendor/google/cloud-dialogflow/metadata/V2/Gcs.php new file mode 100644 index 0000000..17288a5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/metadata/V2/Gcs.php @@ -0,0 +1,33 @@ +internalAddGeneratedFile( + ' + +$google/cloud/dialogflow/v2/gcs.protogoogle.cloud.dialogflow.v2" + +GcsSources +uris ( BA" +GcsDestination +uri ( B +com.google.cloud.dialogflow.v2BGcsProtoPZ>cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpbDFGoogle.Cloud.Dialogflow.V2bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Generator.php b/vendor/google/cloud-dialogflow/metadata/V2/Generator.php new file mode 100644 index 0000000000000000000000000000000000000000..353fab34f446ac45645d75649f36bc7c47e778ee GIT binary patch literal 6230 zcmcIo&2!sm8L#Xlt)C>0tEOq{on5qUcQ#F1yLgwGt=kl2TTaX*aqvfHwuI3r_UlAc zmb8+bG+QzZ9DoZK;JC~%%y8krm4ATK9+&}c9fs+F6Gx7mc;5GwWZ7|DhmTw$OV9Vm z?|I($@z?Dm8*WLP#3YX9k&bk5DtSjlvK`B_+Lj?5^t)Z+NNuZU>jrVMl2ooqyS1jI zl&j76k=3>OPMZ{@L(4ieNUm*I{Z6iTVs=vj zXW`TSn25=?zAu}mMWbMuZlN&nX&~ZFj3q-Srgt%(icXA9ksN8qy5(GqwNCtkncB!O z_UO6Nv%S;l6^5+L;2q6<{vYr*bu3m->)GRZS*hHAqWgs*cRFDmRIp>#!pzY;eh9z3 z1MAbbikRlKS=LtBL0e^y^XVJD9L?6T?PwNxf2F??`Ou}QQV;xG`2;s31dg8&|I<7E zC)TN0@i{_6?tcuLJp9O|_b{*{szVAdh#n`%{9b^Sl0y({{4iNgoqX2E2#Y0{vo#0Z zSQR8;Em8dFwH*7Gd>`&I=L0)?nyDQk5OF)vcQ=dRl*3eim$W@`0}>(Jtj18zeEtKU zc3cp%p%ukAsuOR*LddS_oz*zA1V0IxJ-D_RHu=EnhcH9o%(wY2v-tzK6-m{IrJ=^m zPX)NXt-AqmSdRNY4aEv1Yz&p^A{eqz%u*i(@df~U?^(}@8THVBl~HqC8v%ug4*|lk zxaewp>ae1=C6m1H)QC!&mPDojD`jGkF@^Bog>J2X>tY@h({oP6Z@`RW8N6JQ`TGI?nEuX2`LcCn;_15z zGad$%S&-nb(y(Y~=3$>^yKQwyB&j0W-Ddr!(pFrZVUC}-J488d_a4kpjp8z->a}e} zZS6Mplv1@)Rm!PL;u6enwRYrPRo+x~n<+uO21|0QS=*7DO4)xI6Bpo$vRhVL4W*un zXTAg1N|t#{9G6Wge5PKA6<9)erSVa*^BtW8<+V0#Xt=?j!D^%5>uHYuIg{T&Fu-9* z>sf5UiW~i=y8L6H>cJ#c+b=OO-_oN}BM7h(2TGx{9Y z5{1|&LQ#a2Zo0TjvBWb^GJg<2MAr#Ul{VSa90Y3I-^5#RwWqyMxtS`%L0SvK8b`>j zOFt0=@m-kraQM-^xbJX90*l_3KtJDrSVY{ z%uGe*j{?llUlbggpYDxR%^Qm4FGd;i9N@}BtTth)V5pfcU*i2ZqyaI zQQK83wYpl8cT39lHfNl{QGC7BY9Od6b+v&n8x>#9EJv1RwOLgfsX1y!NLW@X)m_A> z%i?vo8k(V&YP+RsLrEn>5t3X?_zp7v6h^`ufYbj6IK*$l)h;@M~uC%8?ZcRD>odROyGQeV(Ffb z7Arc|4q_OGfk=LWnz*J04u(v=#Nq zORYy*X+7FPg+Z%4%Vjd-ncu)5{zia>=!sT*%ceFsr(V$ejaM?88_dTCBKMIVn&04I z6eHHp#J>rU96pzdU!9byVcNjfiP;@x;oy-WuVnv9f|>r*H+|~#Ji9GUkrVL?0hUIN z!jp?}gg9_)RWB{Ar8!&vRB%#S ztja@*?9_!6X_oYhFXfwWyrTKD{OOVB*=`}1J2^S=gBsp6X?^dAUvuBL4b7vw&Aqpg z4^$O@A;5chVHKom%)!5y41sEo-aGFJ&z^8Hev`!RyAG}BB|932xG~UTA3Tcw_;oB+ zuKYHZ-efoI*%G~B&z8d*_UzOA!5piZk3I~qEAR1Z>Buei8*i`~CBJDtgEN4C16Pv= A8~^|S literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/HumanAgentAssistantEvent.php b/vendor/google/cloud-dialogflow/metadata/V2/HumanAgentAssistantEvent.php new file mode 100644 index 0000000..b3a1cbe --- /dev/null +++ b/vendor/google/cloud-dialogflow/metadata/V2/HumanAgentAssistantEvent.php @@ -0,0 +1,32 @@ +internalAddGeneratedFile( + ' + +cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpbDFGoogle.Cloud.Dialogflow.V2bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Intent.php b/vendor/google/cloud-dialogflow/metadata/V2/Intent.php new file mode 100644 index 0000000000000000000000000000000000000000..3b9d4d87b879738b301f1a0133418b3d862a9f60 GIT binary patch literal 12744 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 W=K#K64;=c-0XCDr@P7yo0saR%Od7!e literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/KnowledgeBase.php b/vendor/google/cloud-dialogflow/metadata/V2/KnowledgeBase.php new file mode 100644 index 0000000..0473fd3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/metadata/V2/KnowledgeBase.php @@ -0,0 +1,66 @@ +internalAddGeneratedFile( + ' + +/google/cloud/dialogflow/v2/knowledge_base.protogoogle.cloud.dialogflow.v2google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.protogoogle/protobuf/empty.proto google/protobuf/field_mask.proto" + KnowledgeBase +name (  + display_name ( BA + language_code ( :A +\'dialogflow.googleapis.com/KnowledgeBase2projects/{project}/knowledgeBases/{knowledge_base}Gprojects/{project}/locations/{location}/knowledgeBases/{knowledge_base}" +ListKnowledgeBasesRequest? +parent ( B/AA)\'dialogflow.googleapis.com/KnowledgeBase + page_size ( + +page_token (  +filter ( "y +ListKnowledgeBasesResponseB +knowledge_bases ( 2).google.cloud.dialogflow.v2.KnowledgeBase +next_page_token ( "X +GetKnowledgeBaseRequest= +name ( B/AA) +\'dialogflow.googleapis.com/KnowledgeBase" +CreateKnowledgeBaseRequest? +parent ( B/AA)\'dialogflow.googleapis.com/KnowledgeBaseF +knowledge_base ( 2).google.cloud.dialogflow.v2.KnowledgeBaseBA"o +DeleteKnowledgeBaseRequest= +name ( B/AA) +\'dialogflow.googleapis.com/KnowledgeBase +force (BA" +UpdateKnowledgeBaseRequestF +knowledge_base ( 2).google.cloud.dialogflow.v2.KnowledgeBaseBA4 + update_mask ( 2.google.protobuf.FieldMaskBA2 +KnowledgeBases +ListKnowledgeBases5.google.cloud.dialogflow.v2.ListKnowledgeBasesRequest6.google.cloud.dialogflow.v2.ListKnowledgeBasesResponse"Aparent&/v2/{parent=projects/*}/knowledgeBasesZ42/v2/{parent=projects/*/locations/*}/knowledgeBasesZ.,/v2/{parent=projects/*/agent}/knowledgeBases +GetKnowledgeBase3.google.cloud.dialogflow.v2.GetKnowledgeBaseRequest).google.cloud.dialogflow.v2.KnowledgeBase"Aname&/v2/{name=projects/*/knowledgeBases/*}Z42/v2/{name=projects/*/locations/*/knowledgeBases/*}Z.,/v2/{name=projects/*/agent/knowledgeBases/*} +CreateKnowledgeBase6.google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest).google.cloud.dialogflow.v2.KnowledgeBase"Aparent,knowledge_base"&/v2/{parent=projects/*}/knowledgeBases:knowledge_baseZD"2/v2/{parent=projects/*/locations/*}/knowledgeBases:knowledge_baseZ>",/v2/{parent=projects/*/agent}/knowledgeBases:knowledge_base +DeleteKnowledgeBase6.google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest.google.protobuf.Empty"Aname*&/v2/{name=projects/*/knowledgeBases/*}Z4*2/v2/{name=projects/*/locations/*/knowledgeBases/*}Z.*,/v2/{name=projects/*/agent/knowledgeBases/*} +UpdateKnowledgeBase6.google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest).google.cloud.dialogflow.v2.KnowledgeBase"Aknowledge_base,update_mask25/v2/{knowledge_base.name=projects/*/knowledgeBases/*}:knowledge_baseZS2A/v2/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}:knowledge_baseZM2;/v2/{knowledge_base.name=projects/*/agent/knowledgeBases/*}:knowledge_basexAdialogflow.googleapis.comAYhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/dialogflowB +com.google.cloud.dialogflow.v2BKnowledgeBaseProtoPZ>cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpbDFGoogle.Cloud.Dialogflow.V2bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Participant.php b/vendor/google/cloud-dialogflow/metadata/V2/Participant.php new file mode 100644 index 0000000000000000000000000000000000000000..ddccc2695cdd90d13d51f3158c9b36f8b691e957 GIT binary patch literal 14998 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 literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/SessionEntityType.php b/vendor/google/cloud-dialogflow/metadata/V2/SessionEntityType.php new file mode 100644 index 0000000000000000000000000000000000000000..8df38c138acee40c8493b5b04f5d3ae17a338991 GIT binary patch literal 5742 zcmcIo&u<$=6vlR2(WwMwh?3S-+wHcfsY!Mvw-Ul7rFQIusC8|nX{%V4%z8aemaKP| z-EqNWOK9#2coPYhZDLb3b)ng9w~;NVX2;TWWJ`ijtO)liYeK2G zvUZ7>I%d~aQBK$}%?%yNs%~~$a!XTmbEB=BJMwl`c97#}rqMtK*6?lv?^;Nr4gfHe z4st9-MZ$8mP)1m3DOjm5Q>^-;i&ZZMSoMe5n*gY~;yA*6hFPMJYXlMO0fGEk-KMUo zf`b)IUan|PLo+l?Ahb`&?iPf$qC1G7gx9vahKfm;f@@GQR5W`{V3_XOE0#&Ju^{-d zRow)UE>qX?Kwq{||u9Bs>+y=ryTHSAEuX%1=IIS(rvKVu@P>>4(w!3K1 zyCB#IcWvV)joSt21@G#d%;hbuo;M8B&4Ot-xmVo65Fk z+VMP_W1k=n)qV$vc^pm!;=@}1Eu{1(Yx3-LZ>5Bso+HL_GO|OF9g0lk) zY_Ck-qdD&pkMG38VV0J@s7!E}lOlMP zI?<4GCMBe1Pi5yv0W%m^qC7;3BJL*u410iAfKa-(wz9U~s5~sKuC5eIjdF$jdvNc5 zwY0dhv{EXbeg$3v=eetVo6`w+8C>Kpx&NSAy;~}iXQz|7-%`)=zofw10}aDcM0&-M zi0I3qw7?Rn(?>|fj=bl+>&eOn$%wD>|9h|#34@Gn%{Gk= zSx$|DPd&NoAe(&WzVza`t8v`vrpokD-t*s1w3YotJn)yXLGjB3IDc1jaHwF;D*CvK z91Iu12}`j_Rz1dCCye<@(FK% zQ(fw^;R?MMeA*XMLMS?3Nx}I_+e}o!g(A|?h(Mpej@f5Z0ERNg^ zE91#wF)$OMu5cuYB8(=i z-ILToKF#NujC7&HT$n%PMkiW=jnz@0KkT%fosq6<-{Wy!IVQvi#-vN0k^ROH9=@~vM0V>ryuFYe!>1`Q6EU-l?#Kuuzayvp!z!4S=p9DraLF(!irF=_ za)zl6-!5)yYK06Fm|?gWHLk5^n3jykh#Ow|@gMoKkw1d}%&%`^Y&khu-r3pl(jNRm zR=RkTU3<=3x`NxL-I*J=yzi>;gv{RLhqhl#&H!1M4owhMcRa2pYPZ;O|5}6mUf(bW zFJDQJWE|{!vzj*tKRit)i%Z`p)64X}Ra$iKTcu)f-zq)KHc!y*x_&jdsG4J!lLL2| Qk@uK%CA)9zfgS+=1Kki45&!@I literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/ValidationResult.php b/vendor/google/cloud-dialogflow/metadata/V2/ValidationResult.php new file mode 100644 index 0000000000000000000000000000000000000000..481fcd077310219bbbdb6ee418816d2537cb1ad0 GIT binary patch literal 1123 zcmb7D?`zXg6tzEe-J7}^9F%>K>l`dYO(FWJbCa!2OF-Mw)ec9Yyr#F^gDfw+_fna% zzr=5T6#pOp9bb|yEgKV-Pf57v+;i_a_ru5VEF`a>g#ikxa025CP-h6C;EH?PhjBEW zq5zMdhs;M|0W><$?)1TFxc!$JDtRP4tig=)nU7V^=h37(Vbtfdsn5Sv=XP~YeKw(r z@n9rSM!vEVdO`wvjxwYkLaTf985Px4bl6ImhV__f*vOcM1AC7U&!Pyrlw`-?S;Kc$V26O@s&0R=2s9Q- zwX|-$9le>M8z>Y3^@k0Vo?xNkqN_`5wHc~xr|}_7dGO!DaTAD0_Rru5=tuCRy92_RGu)W7rP)QzZ8NjWRY-Y+5tdkWClwc?;1t^%S#s+zUafgx4 zjifWI6gB(mR-cqIOoco@b_Pz*?SCD8X&-l;y4!S}M)`qJB1N~|?38oH8d*6x?6uu? ztDHAh$wQ~t>-5S6<1s1KHPEdeekvEYPDy#8EX|po?Abia-YC%`^@s&?&3=845s!Z6 z$P0Z_|A8EB+-#ntuA4hONNu=YC_k^x`0~Zkkm;jaxD<}}mOp;w^Nr^3{AMdTGb=eW iYjI}Qz#czJ?(^MFmYz3hD3>yPXMU5)G^&^6l8}FLN@@xK literal 0 HcmV?d00001 diff --git a/vendor/google/cloud-dialogflow/metadata/V2/Version.php b/vendor/google/cloud-dialogflow/metadata/V2/Version.php new file mode 100644 index 0000000000000000000000000000000000000000..135ff8bbd6b5b2975796c6bfc0a417a7dab7de9e GIT binary patch literal 3766 zcmbtX&u<$=6lU!V#w$Oc1I=3Y++cETyq!Cqa!Yto3^AELra^ zyR%74WQlU17fv8?EKriGSiwsa_|y6HBghNkFdtErpE(osq}g0`cXhDd?}U?^?qSc(dTd}-q;L`p+J zN;OaXtDByGH52$(_fl&BsJh}f!XAwSPJn>_EVr&}s^B06;h%?^Q_~C$VMpx?jALDB zD!K!)@1SkdHB^KX5%Kx2Bg4=oepUKjj~N?s{&8L9;XLEBLDY6d#0ty##l zOV~7>Zb1|j(0h|yWZQb-w5E`xIi}MCNv;dXc42sTL9iimZDWn(?FHxrPt_syk}a(& z8;0ps!8Dw7x{IkB;ylMqU4sU?m`_fFdSe3~C`X!UU(B@(S+k6tWKesIJlnR=i}5!M zTuH)D73c60zB?LjRiw17;l89*R-S0AG2})g=z|Z~6NmzLzam3dQYOWk=rGt<-k6E2ZpaAy>#|X5Zj% zf~mrGtyC`N%h^h0mg6VE)pAzOJe!U108HfM!WOoRroZR@lE3A^gAnf&5~kb{@idnF zQofA~{uxw}Bb~6Pj-<43OZa0KFR=1;_>YGe>!wO)hjijUo*yCck^{H5GzYQmoihB~ z#S-Bkg9%Hq@wSZ9#WOkbkG#N-fnXj?S~%mHg9kU^olwj1cK{&ok$DIW!Z~RbF3|*Y zy(u^r9(|C1A6#ch9h^lJH^RagyyAUs8t^%)g*GGIm)HWg^3X@>1O1?DD;Xpb;Oi!K{h{D0fI;5q~4@Mj#j5$+aV8r2hFOU6(9o$(!LBPQCXGE>7> zfBgAfJ2KD==> zk~ln-$;9r#mO!m|h6gEACXDp{y)39T9+5 zVobu)zEt+t6PI8vaOb~{faxAJj)vT0dLhU^V92)_*5!~`3GOeslt}uI8HoM7^?g{D zIstI`rLXFs|$va-O%internalAddGeneratedFile( + ' + +(google/cloud/dialogflow/v2/webhook.protogoogle.cloud.dialogflow.v2\'google/cloud/dialogflow/v2/intent.proto(google/cloud/dialogflow/v2/session.proto4google/cloud/dialogflow/v2/session_entity_type.protogoogle/protobuf/struct.proto" +WebhookRequest +session (  + response_id ( = + query_result ( 2\'.google.cloud.dialogflow.v2.QueryResult_ +original_detect_intent_request ( 27.google.cloud.dialogflow.v2.OriginalDetectIntentRequest" +WebhookResponse +fulfillment_text ( H +fulfillment_messages ( 2*.google.cloud.dialogflow.v2.Intent.Message +source ( ( +payload ( 2.google.protobuf.Struct< +output_contexts ( 2#.google.cloud.dialogflow.v2.ContextD +followup_event_input ( 2&.google.cloud.dialogflow.v2.EventInputK +session_entity_types + ( 2-.google.cloud.dialogflow.v2.SessionEntityType"h +OriginalDetectIntentRequest +source (  +version ( ( +payload ( 2.google.protobuf.StructB +com.google.cloud.dialogflow.v2B WebhookProtoPZ>cloud.google.com/go/dialogflow/apiv2/dialogflowpb;dialogflowpbDFGoogle.Cloud.Dialogflow.V2bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Agent.php b/vendor/google/cloud-dialogflow/src/V2/Agent.php new file mode 100644 index 0000000..13164b2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Agent.php @@ -0,0 +1,543 @@ +google.cloud.dialogflow.v2.Agent + */ +class Agent extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project of this agent. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The name of this agent. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Required. The default language of the agent as a language tag. See + * [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. This field cannot be + * set by the `Update` method. + * + * Generated from protobuf field string default_language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $default_language_code = ''; + /** + * Optional. The list of all languages supported by this agent (except for the + * `default_language_code`). + * + * Generated from protobuf field repeated string supported_language_codes = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $supported_language_codes; + /** + * Required. The time zone of this agent from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. + * + * Generated from protobuf field string time_zone = 5 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $time_zone = ''; + /** + * Optional. The description of this agent. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * + * Generated from protobuf field string description = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Optional. The URI of the agent's avatar. + * Avatars are used throughout the Dialogflow console and in the self-hosted + * [Web + * Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) + * integration. + * + * Generated from protobuf field string avatar_uri = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $avatar_uri = ''; + /** + * Optional. Determines whether this agent should log conversation queries. + * + * Generated from protobuf field bool enable_logging = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_logging = false; + /** + * Optional. Determines how intents are detected from user queries. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.MatchMode match_mode = 9 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * @deprecated + */ + protected $match_mode = 0; + /** + * Optional. To filter out false positive results and still get variety in + * matched natural language inputs for your agent, you can tune the machine + * learning classification threshold. If the returned score value is less than + * the threshold value, then a fallback intent will be triggered or, if there + * are no fallback intents defined, no intent will be triggered. The score + * values range from 0.0 (completely uncertain) to 1.0 (completely certain). + * If set to 0.0, the default of 0.3 is used. + * + * Generated from protobuf field float classification_threshold = 10 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $classification_threshold = 0.0; + /** + * Optional. API version displayed in Dialogflow console. If not specified, + * V2 API is assumed. Clients are free to query different service endpoints + * for different API versions. However, bots connectors and webhook calls will + * follow the specified API version. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.ApiVersion api_version = 14 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $api_version = 0; + /** + * Optional. The agent tier. If not specified, TIER_STANDARD is assumed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.Tier tier = 15 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $tier = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project of this agent. + * Format: `projects/`. + * @type string $display_name + * Required. The name of this agent. + * @type string $default_language_code + * Required. The default language of the agent as a language tag. See + * [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. This field cannot be + * set by the `Update` method. + * @type array|\Google\Protobuf\Internal\RepeatedField $supported_language_codes + * Optional. The list of all languages supported by this agent (except for the + * `default_language_code`). + * @type string $time_zone + * Required. The time zone of this agent from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. + * @type string $description + * Optional. The description of this agent. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * @type string $avatar_uri + * Optional. The URI of the agent's avatar. + * Avatars are used throughout the Dialogflow console and in the self-hosted + * [Web + * Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) + * integration. + * @type bool $enable_logging + * Optional. Determines whether this agent should log conversation queries. + * @type int $match_mode + * Optional. Determines how intents are detected from user queries. + * @type float $classification_threshold + * Optional. To filter out false positive results and still get variety in + * matched natural language inputs for your agent, you can tune the machine + * learning classification threshold. If the returned score value is less than + * the threshold value, then a fallback intent will be triggered or, if there + * are no fallback intents defined, no intent will be triggered. The score + * values range from 0.0 (completely uncertain) to 1.0 (completely certain). + * If set to 0.0, the default of 0.3 is used. + * @type int $api_version + * Optional. API version displayed in Dialogflow console. If not specified, + * V2 API is assumed. Clients are free to query different service endpoints + * for different API versions. However, bots connectors and webhook calls will + * follow the specified API version. + * @type int $tier + * Optional. The agent tier. If not specified, TIER_STANDARD is assumed. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project of this agent. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project of this agent. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The name of this agent. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The name of this agent. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Required. The default language of the agent as a language tag. See + * [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. This field cannot be + * set by the `Update` method. + * + * Generated from protobuf field string default_language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDefaultLanguageCode() + { + return $this->default_language_code; + } + + /** + * Required. The default language of the agent as a language tag. See + * [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. This field cannot be + * set by the `Update` method. + * + * Generated from protobuf field string default_language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDefaultLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->default_language_code = $var; + + return $this; + } + + /** + * Optional. The list of all languages supported by this agent (except for the + * `default_language_code`). + * + * Generated from protobuf field repeated string supported_language_codes = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSupportedLanguageCodes() + { + return $this->supported_language_codes; + } + + /** + * Optional. The list of all languages supported by this agent (except for the + * `default_language_code`). + * + * Generated from protobuf field repeated string supported_language_codes = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSupportedLanguageCodes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->supported_language_codes = $arr; + + return $this; + } + + /** + * Required. The time zone of this agent from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. + * + * Generated from protobuf field string time_zone = 5 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getTimeZone() + { + return $this->time_zone; + } + + /** + * Required. The time zone of this agent from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. + * + * Generated from protobuf field string time_zone = 5 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setTimeZone($var) + { + GPBUtil::checkString($var, True); + $this->time_zone = $var; + + return $this; + } + + /** + * Optional. The description of this agent. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * + * Generated from protobuf field string description = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. The description of this agent. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * + * Generated from protobuf field string description = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. The URI of the agent's avatar. + * Avatars are used throughout the Dialogflow console and in the self-hosted + * [Web + * Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) + * integration. + * + * Generated from protobuf field string avatar_uri = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getAvatarUri() + { + return $this->avatar_uri; + } + + /** + * Optional. The URI of the agent's avatar. + * Avatars are used throughout the Dialogflow console and in the self-hosted + * [Web + * Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) + * integration. + * + * Generated from protobuf field string avatar_uri = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setAvatarUri($var) + { + GPBUtil::checkString($var, True); + $this->avatar_uri = $var; + + return $this; + } + + /** + * Optional. Determines whether this agent should log conversation queries. + * + * Generated from protobuf field bool enable_logging = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableLogging() + { + return $this->enable_logging; + } + + /** + * Optional. Determines whether this agent should log conversation queries. + * + * Generated from protobuf field bool enable_logging = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableLogging($var) + { + GPBUtil::checkBool($var); + $this->enable_logging = $var; + + return $this; + } + + /** + * Optional. Determines how intents are detected from user queries. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.MatchMode match_mode = 9 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * @return int + * @deprecated + */ + public function getMatchMode() + { + if ($this->match_mode !== 0) { + @trigger_error('match_mode is deprecated.', E_USER_DEPRECATED); + } + return $this->match_mode; + } + + /** + * Optional. Determines how intents are detected from user queries. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.MatchMode match_mode = 9 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + * @deprecated + */ + public function setMatchMode($var) + { + @trigger_error('match_mode is deprecated.', E_USER_DEPRECATED); + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Agent\MatchMode::class); + $this->match_mode = $var; + + return $this; + } + + /** + * Optional. To filter out false positive results and still get variety in + * matched natural language inputs for your agent, you can tune the machine + * learning classification threshold. If the returned score value is less than + * the threshold value, then a fallback intent will be triggered or, if there + * are no fallback intents defined, no intent will be triggered. The score + * values range from 0.0 (completely uncertain) to 1.0 (completely certain). + * If set to 0.0, the default of 0.3 is used. + * + * Generated from protobuf field float classification_threshold = 10 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getClassificationThreshold() + { + return $this->classification_threshold; + } + + /** + * Optional. To filter out false positive results and still get variety in + * matched natural language inputs for your agent, you can tune the machine + * learning classification threshold. If the returned score value is less than + * the threshold value, then a fallback intent will be triggered or, if there + * are no fallback intents defined, no intent will be triggered. The score + * values range from 0.0 (completely uncertain) to 1.0 (completely certain). + * If set to 0.0, the default of 0.3 is used. + * + * Generated from protobuf field float classification_threshold = 10 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setClassificationThreshold($var) + { + GPBUtil::checkFloat($var); + $this->classification_threshold = $var; + + return $this; + } + + /** + * Optional. API version displayed in Dialogflow console. If not specified, + * V2 API is assumed. Clients are free to query different service endpoints + * for different API versions. However, bots connectors and webhook calls will + * follow the specified API version. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.ApiVersion api_version = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getApiVersion() + { + return $this->api_version; + } + + /** + * Optional. API version displayed in Dialogflow console. If not specified, + * V2 API is assumed. Clients are free to query different service endpoints + * for different API versions. However, bots connectors and webhook calls will + * follow the specified API version. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.ApiVersion api_version = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setApiVersion($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Agent\ApiVersion::class); + $this->api_version = $var; + + return $this; + } + + /** + * Optional. The agent tier. If not specified, TIER_STANDARD is assumed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.Tier tier = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getTier() + { + return $this->tier; + } + + /** + * Optional. The agent tier. If not specified, TIER_STANDARD is assumed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent.Tier tier = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setTier($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Agent\Tier::class); + $this->tier = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Agent/ApiVersion.php b/vendor/google/cloud-dialogflow/src/V2/Agent/ApiVersion.php new file mode 100644 index 0000000..d81f985 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Agent/ApiVersion.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.Agent.ApiVersion + */ +class ApiVersion +{ + /** + * Not specified. + * + * Generated from protobuf enum API_VERSION_UNSPECIFIED = 0; + */ + const API_VERSION_UNSPECIFIED = 0; + /** + * Legacy V1 API. + * + * Generated from protobuf enum API_VERSION_V1 = 1; + */ + const API_VERSION_V1 = 1; + /** + * V2 API. + * + * Generated from protobuf enum API_VERSION_V2 = 2; + */ + const API_VERSION_V2 = 2; + /** + * V2beta1 API. + * + * Generated from protobuf enum API_VERSION_V2_BETA_1 = 3; + */ + const API_VERSION_V2_BETA_1 = 3; + + private static $valueToName = [ + self::API_VERSION_UNSPECIFIED => 'API_VERSION_UNSPECIFIED', + self::API_VERSION_V1 => 'API_VERSION_V1', + self::API_VERSION_V2 => 'API_VERSION_V2', + self::API_VERSION_V2_BETA_1 => 'API_VERSION_V2_BETA_1', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Agent/MatchMode.php b/vendor/google/cloud-dialogflow/src/V2/Agent/MatchMode.php new file mode 100644 index 0000000..7401d69 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Agent/MatchMode.php @@ -0,0 +1,64 @@ +google.cloud.dialogflow.v2.Agent.MatchMode + */ +class MatchMode +{ + /** + * Not specified. + * + * Generated from protobuf enum MATCH_MODE_UNSPECIFIED = 0; + */ + const MATCH_MODE_UNSPECIFIED = 0; + /** + * Best for agents with a small number of examples in intents and/or wide + * use of templates syntax and composite entities. + * + * Generated from protobuf enum MATCH_MODE_HYBRID = 1; + */ + const MATCH_MODE_HYBRID = 1; + /** + * Can be used for agents with a large number of examples in intents, + * especially the ones using @sys.any or very large custom entities. + * + * Generated from protobuf enum MATCH_MODE_ML_ONLY = 2; + */ + const MATCH_MODE_ML_ONLY = 2; + + private static $valueToName = [ + self::MATCH_MODE_UNSPECIFIED => 'MATCH_MODE_UNSPECIFIED', + self::MATCH_MODE_HYBRID => 'MATCH_MODE_HYBRID', + self::MATCH_MODE_ML_ONLY => 'MATCH_MODE_ML_ONLY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Agent/Tier.php b/vendor/google/cloud-dialogflow/src/V2/Agent/Tier.php new file mode 100644 index 0000000..79b2318 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Agent/Tier.php @@ -0,0 +1,70 @@ +google.cloud.dialogflow.v2.Agent.Tier + */ +class Tier +{ + /** + * Not specified. This value should never be used. + * + * Generated from protobuf enum TIER_UNSPECIFIED = 0; + */ + const TIER_UNSPECIFIED = 0; + /** + * Trial Edition, previously known as Standard Edition. + * + * Generated from protobuf enum TIER_STANDARD = 1; + */ + const TIER_STANDARD = 1; + /** + * Essentials Edition, previously known as Enterprise Essential Edition. + * + * Generated from protobuf enum TIER_ENTERPRISE = 2; + */ + const TIER_ENTERPRISE = 2; + /** + * Essentials Edition (same as TIER_ENTERPRISE), previously known as + * Enterprise Plus Edition. + * + * Generated from protobuf enum TIER_ENTERPRISE_PLUS = 3 [deprecated = true]; + */ + const TIER_ENTERPRISE_PLUS = 3; + + private static $valueToName = [ + self::TIER_UNSPECIFIED => 'TIER_UNSPECIFIED', + self::TIER_STANDARD => 'TIER_STANDARD', + self::TIER_ENTERPRISE => 'TIER_ENTERPRISE', + self::TIER_ENTERPRISE_PLUS => 'TIER_ENTERPRISE_PLUS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback.php new file mode 100644 index 0000000..1b8743f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback.php @@ -0,0 +1,331 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback + */ +class AgentAssistantFeedback extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Whether or not the suggested answer is relevant. + * For example: + * * Query: "Can I change my mailing address?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * [answer_relevance][google.cloud.dialogflow.v2.AgentAssistantFeedback.answer_relevance]: [AnswerRelevance.IRRELEVANT][google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance.IRRELEVANT] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance answer_relevance = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $answer_relevance = 0; + /** + * Optional. Whether or not the information in the document is correct. + * For example: + * * Query: "Can I return the package in 2 days once received?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * Ground truth: "No return or exchange is allowed." + * * [document_correctness][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_correctness]: [INCORRECT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness.INCORRECT] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness document_correctness = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $document_correctness = 0; + /** + * Optional. Whether or not the suggested document is efficient. For example, + * if the document is poorly written, hard to understand, hard to use or + * too long to find useful information, + * [document_efficiency][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_efficiency] + * is + * [DocumentEfficiency.INEFFICIENT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency.INEFFICIENT]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency document_efficiency = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $document_efficiency = 0; + /** + * Optional. Feedback for conversation summarization. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback summarization_feedback = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $summarization_feedback = null; + /** + * Optional. Feedback for knowledge search. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback knowledge_search_feedback = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $knowledge_search_feedback = null; + /** + * Optional. Feedback for knowledge assist. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback knowledge_assist_feedback = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $knowledge_assist_feedback = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $answer_relevance + * Optional. Whether or not the suggested answer is relevant. + * For example: + * * Query: "Can I change my mailing address?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * [answer_relevance][google.cloud.dialogflow.v2.AgentAssistantFeedback.answer_relevance]: [AnswerRelevance.IRRELEVANT][google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance.IRRELEVANT] + * @type int $document_correctness + * Optional. Whether or not the information in the document is correct. + * For example: + * * Query: "Can I return the package in 2 days once received?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * Ground truth: "No return or exchange is allowed." + * * [document_correctness][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_correctness]: [INCORRECT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness.INCORRECT] + * @type int $document_efficiency + * Optional. Whether or not the suggested document is efficient. For example, + * if the document is poorly written, hard to understand, hard to use or + * too long to find useful information, + * [document_efficiency][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_efficiency] + * is + * [DocumentEfficiency.INEFFICIENT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency.INEFFICIENT]. + * @type \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\SummarizationFeedback $summarization_feedback + * Optional. Feedback for conversation summarization. + * @type \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeSearchFeedback $knowledge_search_feedback + * Optional. Feedback for knowledge search. + * @type \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeAssistFeedback $knowledge_assist_feedback + * Optional. Feedback for knowledge assist. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Whether or not the suggested answer is relevant. + * For example: + * * Query: "Can I change my mailing address?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * [answer_relevance][google.cloud.dialogflow.v2.AgentAssistantFeedback.answer_relevance]: [AnswerRelevance.IRRELEVANT][google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance.IRRELEVANT] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance answer_relevance = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getAnswerRelevance() + { + return $this->answer_relevance; + } + + /** + * Optional. Whether or not the suggested answer is relevant. + * For example: + * * Query: "Can I change my mailing address?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * [answer_relevance][google.cloud.dialogflow.v2.AgentAssistantFeedback.answer_relevance]: [AnswerRelevance.IRRELEVANT][google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance.IRRELEVANT] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance answer_relevance = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setAnswerRelevance($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\AnswerRelevance::class); + $this->answer_relevance = $var; + + return $this; + } + + /** + * Optional. Whether or not the information in the document is correct. + * For example: + * * Query: "Can I return the package in 2 days once received?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * Ground truth: "No return or exchange is allowed." + * * [document_correctness][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_correctness]: [INCORRECT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness.INCORRECT] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness document_correctness = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getDocumentCorrectness() + { + return $this->document_correctness; + } + + /** + * Optional. Whether or not the information in the document is correct. + * For example: + * * Query: "Can I return the package in 2 days once received?" + * * Suggested document says: "Items must be returned/exchanged within 60 + * days of the purchase date." + * * Ground truth: "No return or exchange is allowed." + * * [document_correctness][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_correctness]: [INCORRECT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness.INCORRECT] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness document_correctness = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setDocumentCorrectness($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\DocumentCorrectness::class); + $this->document_correctness = $var; + + return $this; + } + + /** + * Optional. Whether or not the suggested document is efficient. For example, + * if the document is poorly written, hard to understand, hard to use or + * too long to find useful information, + * [document_efficiency][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_efficiency] + * is + * [DocumentEfficiency.INEFFICIENT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency.INEFFICIENT]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency document_efficiency = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getDocumentEfficiency() + { + return $this->document_efficiency; + } + + /** + * Optional. Whether or not the suggested document is efficient. For example, + * if the document is poorly written, hard to understand, hard to use or + * too long to find useful information, + * [document_efficiency][google.cloud.dialogflow.v2.AgentAssistantFeedback.document_efficiency] + * is + * [DocumentEfficiency.INEFFICIENT][google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency.INEFFICIENT]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency document_efficiency = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setDocumentEfficiency($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\DocumentEfficiency::class); + $this->document_efficiency = $var; + + return $this; + } + + /** + * Optional. Feedback for conversation summarization. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback summarization_feedback = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\SummarizationFeedback|null + */ + public function getSummarizationFeedback() + { + return $this->summarization_feedback; + } + + public function hasSummarizationFeedback() + { + return isset($this->summarization_feedback); + } + + public function clearSummarizationFeedback() + { + unset($this->summarization_feedback); + } + + /** + * Optional. Feedback for conversation summarization. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback summarization_feedback = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\SummarizationFeedback $var + * @return $this + */ + public function setSummarizationFeedback($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\SummarizationFeedback::class); + $this->summarization_feedback = $var; + + return $this; + } + + /** + * Optional. Feedback for knowledge search. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback knowledge_search_feedback = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeSearchFeedback|null + */ + public function getKnowledgeSearchFeedback() + { + return $this->knowledge_search_feedback; + } + + public function hasKnowledgeSearchFeedback() + { + return isset($this->knowledge_search_feedback); + } + + public function clearKnowledgeSearchFeedback() + { + unset($this->knowledge_search_feedback); + } + + /** + * Optional. Feedback for knowledge search. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback knowledge_search_feedback = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeSearchFeedback $var + * @return $this + */ + public function setKnowledgeSearchFeedback($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeSearchFeedback::class); + $this->knowledge_search_feedback = $var; + + return $this; + } + + /** + * Optional. Feedback for knowledge assist. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback knowledge_assist_feedback = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeAssistFeedback|null + */ + public function getKnowledgeAssistFeedback() + { + return $this->knowledge_assist_feedback; + } + + public function hasKnowledgeAssistFeedback() + { + return isset($this->knowledge_assist_feedback); + } + + public function clearKnowledgeAssistFeedback() + { + unset($this->knowledge_assist_feedback); + } + + /** + * Optional. Feedback for knowledge assist. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback knowledge_assist_feedback = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeAssistFeedback $var + * @return $this + */ + public function setKnowledgeAssistFeedback($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback\KnowledgeAssistFeedback::class); + $this->knowledge_assist_feedback = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/AnswerRelevance.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/AnswerRelevance.php new file mode 100644 index 0000000..3f3827b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/AnswerRelevance.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback.AnswerRelevance + */ +class AnswerRelevance +{ + /** + * Answer relevance unspecified. + * + * Generated from protobuf enum ANSWER_RELEVANCE_UNSPECIFIED = 0; + */ + const ANSWER_RELEVANCE_UNSPECIFIED = 0; + /** + * Answer is irrelevant to query. + * + * Generated from protobuf enum IRRELEVANT = 1; + */ + const IRRELEVANT = 1; + /** + * Answer is relevant to query. + * + * Generated from protobuf enum RELEVANT = 2; + */ + const RELEVANT = 2; + + private static $valueToName = [ + self::ANSWER_RELEVANCE_UNSPECIFIED => 'ANSWER_RELEVANCE_UNSPECIFIED', + self::IRRELEVANT => 'IRRELEVANT', + self::RELEVANT => 'RELEVANT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentCorrectness.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentCorrectness.php new file mode 100644 index 0000000..0b0f089 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentCorrectness.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentCorrectness + */ +class DocumentCorrectness +{ + /** + * Document correctness unspecified. + * + * Generated from protobuf enum DOCUMENT_CORRECTNESS_UNSPECIFIED = 0; + */ + const DOCUMENT_CORRECTNESS_UNSPECIFIED = 0; + /** + * Information in document is incorrect. + * + * Generated from protobuf enum INCORRECT = 1; + */ + const INCORRECT = 1; + /** + * Information in document is correct. + * + * Generated from protobuf enum CORRECT = 2; + */ + const CORRECT = 2; + + private static $valueToName = [ + self::DOCUMENT_CORRECTNESS_UNSPECIFIED => 'DOCUMENT_CORRECTNESS_UNSPECIFIED', + self::INCORRECT => 'INCORRECT', + self::CORRECT => 'CORRECT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentEfficiency.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentEfficiency.php new file mode 100644 index 0000000..d164799 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/DocumentEfficiency.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback.DocumentEfficiency + */ +class DocumentEfficiency +{ + /** + * Document efficiency unspecified. + * + * Generated from protobuf enum DOCUMENT_EFFICIENCY_UNSPECIFIED = 0; + */ + const DOCUMENT_EFFICIENCY_UNSPECIFIED = 0; + /** + * Document is inefficient. + * + * Generated from protobuf enum INEFFICIENT = 1; + */ + const INEFFICIENT = 1; + /** + * Document is efficient. + * + * Generated from protobuf enum EFFICIENT = 2; + */ + const EFFICIENT = 2; + + private static $valueToName = [ + self::DOCUMENT_EFFICIENCY_UNSPECIFIED => 'DOCUMENT_EFFICIENCY_UNSPECIFIED', + self::INEFFICIENT => 'INEFFICIENT', + self::EFFICIENT => 'EFFICIENT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeAssistFeedback.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeAssistFeedback.php new file mode 100644 index 0000000..f3dc6a3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeAssistFeedback.php @@ -0,0 +1,130 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeAssistFeedback + */ +class KnowledgeAssistFeedback extends \Google\Protobuf\Internal\Message +{ + /** + * Whether the suggested answer was copied by the human agent. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field bool answer_copied = 1; + */ + protected $answer_copied = false; + /** + * The URIs clicked by the human agent. The value is appended for each + * UpdateAnswerRecordRequest. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field repeated string clicked_uris = 2; + */ + private $clicked_uris; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $answer_copied + * Whether the suggested answer was copied by the human agent. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * @type array|\Google\Protobuf\Internal\RepeatedField $clicked_uris + * The URIs clicked by the human agent. The value is appended for each + * UpdateAnswerRecordRequest. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Whether the suggested answer was copied by the human agent. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field bool answer_copied = 1; + * @return bool + */ + public function getAnswerCopied() + { + return $this->answer_copied; + } + + /** + * Whether the suggested answer was copied by the human agent. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field bool answer_copied = 1; + * @param bool $var + * @return $this + */ + public function setAnswerCopied($var) + { + GPBUtil::checkBool($var); + $this->answer_copied = $var; + + return $this; + } + + /** + * The URIs clicked by the human agent. The value is appended for each + * UpdateAnswerRecordRequest. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field repeated string clicked_uris = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getClickedUris() + { + return $this->clicked_uris; + } + + /** + * The URIs clicked by the human agent. The value is appended for each + * UpdateAnswerRecordRequest. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field repeated string clicked_uris = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setClickedUris($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->clicked_uris = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeSearchFeedback.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeSearchFeedback.php new file mode 100644 index 0000000..16c54ca --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/KnowledgeSearchFeedback.php @@ -0,0 +1,130 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback.KnowledgeSearchFeedback + */ +class KnowledgeSearchFeedback extends \Google\Protobuf\Internal\Message +{ + /** + * Whether the answer was copied by the human agent or not. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field bool answer_copied = 1; + */ + protected $answer_copied = false; + /** + * The URIs clicked by the human agent. The value is appended for each + * [UpdateAnswerRecordRequest][google.cloud.dialogflow.v2.UpdateAnswerRecordRequest]. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field repeated string clicked_uris = 2; + */ + private $clicked_uris; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $answer_copied + * Whether the answer was copied by the human agent or not. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * @type array|\Google\Protobuf\Internal\RepeatedField $clicked_uris + * The URIs clicked by the human agent. The value is appended for each + * [UpdateAnswerRecordRequest][google.cloud.dialogflow.v2.UpdateAnswerRecordRequest]. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Whether the answer was copied by the human agent or not. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field bool answer_copied = 1; + * @return bool + */ + public function getAnswerCopied() + { + return $this->answer_copied; + } + + /** + * Whether the answer was copied by the human agent or not. + * If the value is set to be true, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field bool answer_copied = 1; + * @param bool $var + * @return $this + */ + public function setAnswerCopied($var) + { + GPBUtil::checkBool($var); + $this->answer_copied = $var; + + return $this; + } + + /** + * The URIs clicked by the human agent. The value is appended for each + * [UpdateAnswerRecordRequest][google.cloud.dialogflow.v2.UpdateAnswerRecordRequest]. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field repeated string clicked_uris = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getClickedUris() + { + return $this->clicked_uris; + } + + /** + * The URIs clicked by the human agent. The value is appended for each + * [UpdateAnswerRecordRequest][google.cloud.dialogflow.v2.UpdateAnswerRecordRequest]. + * If the value is not empty, + * [AnswerFeedback.clicked][google.cloud.dialogflow.v2.AnswerFeedback.clicked] + * will be updated to be true. + * + * Generated from protobuf field repeated string clicked_uris = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setClickedUris($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->clicked_uris = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/SummarizationFeedback.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/SummarizationFeedback.php new file mode 100644 index 0000000..21ba9cc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantFeedback/SummarizationFeedback.php @@ -0,0 +1,190 @@ +google.cloud.dialogflow.v2.AgentAssistantFeedback.SummarizationFeedback + */ +class SummarizationFeedback extends \Google\Protobuf\Internal\Message +{ + /** + * Timestamp when composing of the summary starts. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 1; + */ + protected $start_time = null; + /** + * Timestamp when the summary was submitted. + * + * Generated from protobuf field .google.protobuf.Timestamp submit_time = 2; + */ + protected $submit_time = null; + /** + * Text of actual submitted summary. + * + * Generated from protobuf field string summary_text = 3; + */ + protected $summary_text = ''; + /** + * Optional. Actual text sections of submitted summary. + * + * Generated from protobuf field map text_sections = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $text_sections; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Protobuf\Timestamp $start_time + * Timestamp when composing of the summary starts. + * @type \Google\Protobuf\Timestamp $submit_time + * Timestamp when the summary was submitted. + * @type string $summary_text + * Text of actual submitted summary. + * @type array|\Google\Protobuf\Internal\MapField $text_sections + * Optional. Actual text sections of submitted summary. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Timestamp when composing of the summary starts. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 1; + * @return \Google\Protobuf\Timestamp|null + */ + public function getStartTime() + { + return $this->start_time; + } + + public function hasStartTime() + { + return isset($this->start_time); + } + + public function clearStartTime() + { + unset($this->start_time); + } + + /** + * Timestamp when composing of the summary starts. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 1; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setStartTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->start_time = $var; + + return $this; + } + + /** + * Timestamp when the summary was submitted. + * + * Generated from protobuf field .google.protobuf.Timestamp submit_time = 2; + * @return \Google\Protobuf\Timestamp|null + */ + public function getSubmitTime() + { + return $this->submit_time; + } + + public function hasSubmitTime() + { + return isset($this->submit_time); + } + + public function clearSubmitTime() + { + unset($this->submit_time); + } + + /** + * Timestamp when the summary was submitted. + * + * Generated from protobuf field .google.protobuf.Timestamp submit_time = 2; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setSubmitTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->submit_time = $var; + + return $this; + } + + /** + * Text of actual submitted summary. + * + * Generated from protobuf field string summary_text = 3; + * @return string + */ + public function getSummaryText() + { + return $this->summary_text; + } + + /** + * Text of actual submitted summary. + * + * Generated from protobuf field string summary_text = 3; + * @param string $var + * @return $this + */ + public function setSummaryText($var) + { + GPBUtil::checkString($var, True); + $this->summary_text = $var; + + return $this; + } + + /** + * Optional. Actual text sections of submitted summary. + * + * Generated from protobuf field map text_sections = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getTextSections() + { + return $this->text_sections; + } + + /** + * Optional. Actual text sections of submitted summary. + * + * Generated from protobuf field map text_sections = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setTextSections($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->text_sections = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AgentAssistantRecord.php b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantRecord.php new file mode 100644 index 0000000..d36c798 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AgentAssistantRecord.php @@ -0,0 +1,141 @@ +google.cloud.dialogflow.v2.AgentAssistantRecord + */ +class AgentAssistantRecord extends \Google\Protobuf\Internal\Message +{ + protected $answer; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\ArticleAnswer $article_suggestion_answer + * Output only. The article suggestion answer. + * @type \Google\Cloud\Dialogflow\V2\FaqAnswer $faq_answer + * Output only. The FAQ answer. + * @type \Google\Cloud\Dialogflow\V2\DialogflowAssistAnswer $dialogflow_assist_answer + * Output only. Dialogflow assist answer. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The article suggestion answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ArticleAnswer article_suggestion_answer = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\ArticleAnswer|null + */ + public function getArticleSuggestionAnswer() + { + return $this->readOneof(5); + } + + public function hasArticleSuggestionAnswer() + { + return $this->hasOneof(5); + } + + /** + * Output only. The article suggestion answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ArticleAnswer article_suggestion_answer = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\ArticleAnswer $var + * @return $this + */ + public function setArticleSuggestionAnswer($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ArticleAnswer::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * Output only. The FAQ answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.FaqAnswer faq_answer = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\FaqAnswer|null + */ + public function getFaqAnswer() + { + return $this->readOneof(6); + } + + public function hasFaqAnswer() + { + return $this->hasOneof(6); + } + + /** + * Output only. The FAQ answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.FaqAnswer faq_answer = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\FaqAnswer $var + * @return $this + */ + public function setFaqAnswer($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\FaqAnswer::class); + $this->writeOneof(6, $var); + + return $this; + } + + /** + * Output only. Dialogflow assist answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DialogflowAssistAnswer dialogflow_assist_answer = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\DialogflowAssistAnswer|null + */ + public function getDialogflowAssistAnswer() + { + return $this->readOneof(7); + } + + public function hasDialogflowAssistAnswer() + { + return $this->hasOneof(7); + } + + /** + * Output only. Dialogflow assist answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DialogflowAssistAnswer dialogflow_assist_answer = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\DialogflowAssistAnswer $var + * @return $this + */ + public function setDialogflowAssistAnswer($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\DialogflowAssistAnswer::class); + $this->writeOneof(7, $var); + + return $this; + } + + /** + * @return string + */ + public function getAnswer() + { + return $this->whichOneof("answer"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AnalyzeContentRequest.php b/vendor/google/cloud-dialogflow/src/V2/AnalyzeContentRequest.php new file mode 100644 index 0000000..253b3d3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AnalyzeContentRequest.php @@ -0,0 +1,521 @@ +google.cloud.dialogflow.v2.AnalyzeContentRequest + */ +class AnalyzeContentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string participant = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $participant = ''; + /** + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * AnalyzeContent. If this configuration is not supplied, speech synthesis + * is disabled. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig reply_audio_config = 5; + */ + protected $reply_audio_config = null; + /** + * Parameters for a Dialogflow virtual-agent query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 9; + */ + protected $query_params = null; + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 14; + */ + protected $assist_query_params = null; + /** + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * + * Generated from protobuf field .google.protobuf.Struct cx_parameters = 18; + */ + protected $cx_parameters = null; + /** + * A unique identifier for this request. Restricted to 36 ASCII characters. + * A random UUID is recommended. + * This request is only idempotent if a `request_id` is provided. + * + * Generated from protobuf field string request_id = 11; + */ + protected $request_id = ''; + protected $input; + + /** + * @param string $participant Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\TextInput $textInput The natural language text to be processed. + * + * @return \Google\Cloud\Dialogflow\V2\AnalyzeContentRequest + * + * @experimental + */ + public static function build(string $participant, \Google\Cloud\Dialogflow\V2\TextInput $textInput): self + { + return (new self()) + ->setParticipant($participant) + ->setTextInput($textInput); + } + + /** + * @param string $participant Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EventInput $eventInput An input event to send to Dialogflow. + * + * @return \Google\Cloud\Dialogflow\V2\AnalyzeContentRequest + * + * @experimental + */ + public static function buildFromParticipantEventInput(string $participant, \Google\Cloud\Dialogflow\V2\EventInput $eventInput): self + { + return (new self()) + ->setParticipant($participant) + ->setEventInput($eventInput); + } + + /** + * @param string $participant Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\AudioInput $audioInput The natural language speech audio to be processed. + * + * @return \Google\Cloud\Dialogflow\V2\AnalyzeContentRequest + * + * @experimental + */ + public static function buildFromParticipantAudioInput(string $participant, \Google\Cloud\Dialogflow\V2\AudioInput $audioInput): self + { + return (new self()) + ->setParticipant($participant) + ->setAudioInput($audioInput); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $participant + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * @type \Google\Cloud\Dialogflow\V2\TextInput $text_input + * The natural language text to be processed. + * @type \Google\Cloud\Dialogflow\V2\AudioInput $audio_input + * The natural language speech audio to be processed. + * @type \Google\Cloud\Dialogflow\V2\EventInput $event_input + * An input event to send to Dialogflow. + * @type \Google\Cloud\Dialogflow\V2\SuggestionInput $suggestion_input + * An input representing the selection of a suggestion. + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $reply_audio_config + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * AnalyzeContent. If this configuration is not supplied, speech synthesis + * is disabled. + * @type \Google\Cloud\Dialogflow\V2\QueryParameters $query_params + * Parameters for a Dialogflow virtual-agent query. + * @type \Google\Cloud\Dialogflow\V2\AssistQueryParameters $assist_query_params + * Parameters for a human assist query. + * @type \Google\Protobuf\Struct $cx_parameters + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * @type string $request_id + * A unique identifier for this request. Restricted to 36 ASCII characters. + * A random UUID is recommended. + * This request is only idempotent if a `request_id` is provided. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string participant = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParticipant() + { + return $this->participant; + } + + /** + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string participant = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParticipant($var) + { + GPBUtil::checkString($var, True); + $this->participant = $var; + + return $this; + } + + /** + * The natural language text to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput text_input = 6; + * @return \Google\Cloud\Dialogflow\V2\TextInput|null + */ + public function getTextInput() + { + return $this->readOneof(6); + } + + public function hasTextInput() + { + return $this->hasOneof(6); + } + + /** + * The natural language text to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput text_input = 6; + * @param \Google\Cloud\Dialogflow\V2\TextInput $var + * @return $this + */ + public function setTextInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\TextInput::class); + $this->writeOneof(6, $var); + + return $this; + } + + /** + * The natural language speech audio to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioInput audio_input = 7; + * @return \Google\Cloud\Dialogflow\V2\AudioInput|null + */ + public function getAudioInput() + { + return $this->readOneof(7); + } + + public function hasAudioInput() + { + return $this->hasOneof(7); + } + + /** + * The natural language speech audio to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioInput audio_input = 7; + * @param \Google\Cloud\Dialogflow\V2\AudioInput $var + * @return $this + */ + public function setAudioInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AudioInput::class); + $this->writeOneof(7, $var); + + return $this; + } + + /** + * An input event to send to Dialogflow. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput event_input = 8; + * @return \Google\Cloud\Dialogflow\V2\EventInput|null + */ + public function getEventInput() + { + return $this->readOneof(8); + } + + public function hasEventInput() + { + return $this->hasOneof(8); + } + + /** + * An input event to send to Dialogflow. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput event_input = 8; + * @param \Google\Cloud\Dialogflow\V2\EventInput $var + * @return $this + */ + public function setEventInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EventInput::class); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * An input representing the selection of a suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionInput suggestion_input = 12; + * @return \Google\Cloud\Dialogflow\V2\SuggestionInput|null + */ + public function getSuggestionInput() + { + return $this->readOneof(12); + } + + public function hasSuggestionInput() + { + return $this->hasOneof(12); + } + + /** + * An input representing the selection of a suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionInput suggestion_input = 12; + * @param \Google\Cloud\Dialogflow\V2\SuggestionInput $var + * @return $this + */ + public function setSuggestionInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestionInput::class); + $this->writeOneof(12, $var); + + return $this; + } + + /** + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * AnalyzeContent. If this configuration is not supplied, speech synthesis + * is disabled. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig reply_audio_config = 5; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getReplyAudioConfig() + { + return $this->reply_audio_config; + } + + public function hasReplyAudioConfig() + { + return isset($this->reply_audio_config); + } + + public function clearReplyAudioConfig() + { + unset($this->reply_audio_config); + } + + /** + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * AnalyzeContent. If this configuration is not supplied, speech synthesis + * is disabled. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig reply_audio_config = 5; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setReplyAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->reply_audio_config = $var; + + return $this; + } + + /** + * Parameters for a Dialogflow virtual-agent query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 9; + * @return \Google\Cloud\Dialogflow\V2\QueryParameters|null + */ + public function getQueryParams() + { + return $this->query_params; + } + + public function hasQueryParams() + { + return isset($this->query_params); + } + + public function clearQueryParams() + { + unset($this->query_params); + } + + /** + * Parameters for a Dialogflow virtual-agent query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 9; + * @param \Google\Cloud\Dialogflow\V2\QueryParameters $var + * @return $this + */ + public function setQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryParameters::class); + $this->query_params = $var; + + return $this; + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 14; + * @return \Google\Cloud\Dialogflow\V2\AssistQueryParameters|null + */ + public function getAssistQueryParams() + { + return $this->assist_query_params; + } + + public function hasAssistQueryParams() + { + return isset($this->assist_query_params); + } + + public function clearAssistQueryParams() + { + unset($this->assist_query_params); + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 14; + * @param \Google\Cloud\Dialogflow\V2\AssistQueryParameters $var + * @return $this + */ + public function setAssistQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AssistQueryParameters::class); + $this->assist_query_params = $var; + + return $this; + } + + /** + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * + * Generated from protobuf field .google.protobuf.Struct cx_parameters = 18; + * @return \Google\Protobuf\Struct|null + */ + public function getCxParameters() + { + return $this->cx_parameters; + } + + public function hasCxParameters() + { + return isset($this->cx_parameters); + } + + public function clearCxParameters() + { + unset($this->cx_parameters); + } + + /** + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * + * Generated from protobuf field .google.protobuf.Struct cx_parameters = 18; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setCxParameters($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->cx_parameters = $var; + + return $this; + } + + /** + * A unique identifier for this request. Restricted to 36 ASCII characters. + * A random UUID is recommended. + * This request is only idempotent if a `request_id` is provided. + * + * Generated from protobuf field string request_id = 11; + * @return string + */ + public function getRequestId() + { + return $this->request_id; + } + + /** + * A unique identifier for this request. Restricted to 36 ASCII characters. + * A random UUID is recommended. + * This request is only idempotent if a `request_id` is provided. + * + * Generated from protobuf field string request_id = 11; + * @param string $var + * @return $this + */ + public function setRequestId($var) + { + GPBUtil::checkString($var, True); + $this->request_id = $var; + + return $this; + } + + /** + * @return string + */ + public function getInput() + { + return $this->whichOneof("input"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AnalyzeContentResponse.php b/vendor/google/cloud-dialogflow/src/V2/AnalyzeContentResponse.php new file mode 100644 index 0000000..0302ea4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AnalyzeContentResponse.php @@ -0,0 +1,432 @@ +google.cloud.dialogflow.v2.AnalyzeContentResponse + */ +class AnalyzeContentResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The output text content. + * This field is set if the automated agent responded with text to show to + * the user. + * + * Generated from protobuf field string reply_text = 1; + */ + protected $reply_text = ''; + /** + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - `reply_audio_config` was specified in the request, or + * - The automated agent responded with audio to play to the user. In such + * case, `reply_audio.config` contains settings used to synthesize the + * speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudio reply_audio = 2; + */ + protected $reply_audio = null; + /** + * Only set if a Dialogflow automated agent has responded. + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.AnalyzeContentResponse.reply_audio] + * instead. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply automated_agent_reply = 3; + */ + protected $automated_agent_reply = null; + /** + * Message analyzed by CCAI. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message message = 5; + */ + protected $message = null; + /** + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * Note that any failure of Agent Assist features will not lead to the overall + * failure of an AnalyzeContent API call. Instead, the features will + * fail silently with the error field set in the corresponding + * SuggestionResult. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult human_agent_suggestion_results = 6; + */ + private $human_agent_suggestion_results; + /** + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * Same as human_agent_suggestion_results, any failure of Agent Assist + * features will not lead to the overall failure of an AnalyzeContent API + * call. Instead, the features will fail silently with the error field set in + * the corresponding SuggestionResult. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult end_user_suggestion_results = 7; + */ + private $end_user_suggestion_results; + /** + * Indicates the parameters of DTMF. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DtmfParameters dtmf_parameters = 9; + */ + protected $dtmf_parameters = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $reply_text + * The output text content. + * This field is set if the automated agent responded with text to show to + * the user. + * @type \Google\Cloud\Dialogflow\V2\OutputAudio $reply_audio + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - `reply_audio_config` was specified in the request, or + * - The automated agent responded with audio to play to the user. In such + * case, `reply_audio.config` contains settings used to synthesize the + * speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * @type \Google\Cloud\Dialogflow\V2\AutomatedAgentReply $automated_agent_reply + * Only set if a Dialogflow automated agent has responded. + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.AnalyzeContentResponse.reply_audio] + * instead. + * @type \Google\Cloud\Dialogflow\V2\Message $message + * Message analyzed by CCAI. + * @type array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $human_agent_suggestion_results + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * Note that any failure of Agent Assist features will not lead to the overall + * failure of an AnalyzeContent API call. Instead, the features will + * fail silently with the error field set in the corresponding + * SuggestionResult. + * @type array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $end_user_suggestion_results + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * Same as human_agent_suggestion_results, any failure of Agent Assist + * features will not lead to the overall failure of an AnalyzeContent API + * call. Instead, the features will fail silently with the error field set in + * the corresponding SuggestionResult. + * @type \Google\Cloud\Dialogflow\V2\DtmfParameters $dtmf_parameters + * Indicates the parameters of DTMF. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The output text content. + * This field is set if the automated agent responded with text to show to + * the user. + * + * Generated from protobuf field string reply_text = 1; + * @return string + */ + public function getReplyText() + { + return $this->reply_text; + } + + /** + * The output text content. + * This field is set if the automated agent responded with text to show to + * the user. + * + * Generated from protobuf field string reply_text = 1; + * @param string $var + * @return $this + */ + public function setReplyText($var) + { + GPBUtil::checkString($var, True); + $this->reply_text = $var; + + return $this; + } + + /** + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - `reply_audio_config` was specified in the request, or + * - The automated agent responded with audio to play to the user. In such + * case, `reply_audio.config` contains settings used to synthesize the + * speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudio reply_audio = 2; + * @return \Google\Cloud\Dialogflow\V2\OutputAudio|null + */ + public function getReplyAudio() + { + return $this->reply_audio; + } + + public function hasReplyAudio() + { + return isset($this->reply_audio); + } + + public function clearReplyAudio() + { + unset($this->reply_audio); + } + + /** + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - `reply_audio_config` was specified in the request, or + * - The automated agent responded with audio to play to the user. In such + * case, `reply_audio.config` contains settings used to synthesize the + * speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudio reply_audio = 2; + * @param \Google\Cloud\Dialogflow\V2\OutputAudio $var + * @return $this + */ + public function setReplyAudio($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudio::class); + $this->reply_audio = $var; + + return $this; + } + + /** + * Only set if a Dialogflow automated agent has responded. + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.AnalyzeContentResponse.reply_audio] + * instead. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply automated_agent_reply = 3; + * @return \Google\Cloud\Dialogflow\V2\AutomatedAgentReply|null + */ + public function getAutomatedAgentReply() + { + return $this->automated_agent_reply; + } + + public function hasAutomatedAgentReply() + { + return isset($this->automated_agent_reply); + } + + public function clearAutomatedAgentReply() + { + unset($this->automated_agent_reply); + } + + /** + * Only set if a Dialogflow automated agent has responded. + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.AnalyzeContentResponse.reply_audio] + * instead. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply automated_agent_reply = 3; + * @param \Google\Cloud\Dialogflow\V2\AutomatedAgentReply $var + * @return $this + */ + public function setAutomatedAgentReply($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AutomatedAgentReply::class); + $this->automated_agent_reply = $var; + + return $this; + } + + /** + * Message analyzed by CCAI. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message message = 5; + * @return \Google\Cloud\Dialogflow\V2\Message|null + */ + public function getMessage() + { + return $this->message; + } + + public function hasMessage() + { + return isset($this->message); + } + + public function clearMessage() + { + unset($this->message); + } + + /** + * Message analyzed by CCAI. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message message = 5; + * @param \Google\Cloud\Dialogflow\V2\Message $var + * @return $this + */ + public function setMessage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Message::class); + $this->message = $var; + + return $this; + } + + /** + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * Note that any failure of Agent Assist features will not lead to the overall + * failure of an AnalyzeContent API call. Instead, the features will + * fail silently with the error field set in the corresponding + * SuggestionResult. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult human_agent_suggestion_results = 6; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getHumanAgentSuggestionResults() + { + return $this->human_agent_suggestion_results; + } + + /** + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * Note that any failure of Agent Assist features will not lead to the overall + * failure of an AnalyzeContent API call. Instead, the features will + * fail silently with the error field set in the corresponding + * SuggestionResult. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult human_agent_suggestion_results = 6; + * @param array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setHumanAgentSuggestionResults($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SuggestionResult::class); + $this->human_agent_suggestion_results = $arr; + + return $this; + } + + /** + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * Same as human_agent_suggestion_results, any failure of Agent Assist + * features will not lead to the overall failure of an AnalyzeContent API + * call. Instead, the features will fail silently with the error field set in + * the corresponding SuggestionResult. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult end_user_suggestion_results = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEndUserSuggestionResults() + { + return $this->end_user_suggestion_results; + } + + /** + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * Same as human_agent_suggestion_results, any failure of Agent Assist + * features will not lead to the overall failure of an AnalyzeContent API + * call. Instead, the features will fail silently with the error field set in + * the corresponding SuggestionResult. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult end_user_suggestion_results = 7; + * @param array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEndUserSuggestionResults($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SuggestionResult::class); + $this->end_user_suggestion_results = $arr; + + return $this; + } + + /** + * Indicates the parameters of DTMF. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DtmfParameters dtmf_parameters = 9; + * @return \Google\Cloud\Dialogflow\V2\DtmfParameters|null + */ + public function getDtmfParameters() + { + return $this->dtmf_parameters; + } + + public function hasDtmfParameters() + { + return isset($this->dtmf_parameters); + } + + public function clearDtmfParameters() + { + unset($this->dtmf_parameters); + } + + /** + * Indicates the parameters of DTMF. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DtmfParameters dtmf_parameters = 9; + * @param \Google\Cloud\Dialogflow\V2\DtmfParameters $var + * @return $this + */ + public function setDtmfParameters($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\DtmfParameters::class); + $this->dtmf_parameters = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AnnotatedMessagePart.php b/vendor/google/cloud-dialogflow/src/V2/AnnotatedMessagePart.php new file mode 100644 index 0000000..932abff --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AnnotatedMessagePart.php @@ -0,0 +1,195 @@ +google.cloud.dialogflow.v2.AnnotatedMessagePart + */ +class AnnotatedMessagePart extends \Google\Protobuf\Internal\Message +{ + /** + * A part of a message possibly annotated with an entity. + * + * Generated from protobuf field string text = 1; + */ + protected $text = ''; + /** + * The [Dialogflow system entity + * type](https://cloud.google.com/dialogflow/docs/reference/system-entities) + * of this message part. If this is empty, Dialogflow could not annotate the + * phrase part with a system entity. + * + * Generated from protobuf field string entity_type = 2; + */ + protected $entity_type = ''; + /** + * The [Dialogflow system entity formatted value + * ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of + * this message part. For example for a system entity of type + * `@sys.unit-currency`, this may contain: + *
+     * {
+     *   "amount": 5,
+     *   "currency": "USD"
+     * }
+     * 
+ * + * Generated from protobuf field .google.protobuf.Value formatted_value = 3; + */ + protected $formatted_value = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * A part of a message possibly annotated with an entity. + * @type string $entity_type + * The [Dialogflow system entity + * type](https://cloud.google.com/dialogflow/docs/reference/system-entities) + * of this message part. If this is empty, Dialogflow could not annotate the + * phrase part with a system entity. + * @type \Google\Protobuf\Value $formatted_value + * The [Dialogflow system entity formatted value + * ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of + * this message part. For example for a system entity of type + * `@sys.unit-currency`, this may contain: + *
+     *           {
+     *             "amount": 5,
+     *             "currency": "USD"
+     *           }
+     *           
+ * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * A part of a message possibly annotated with an entity. + * + * Generated from protobuf field string text = 1; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * A part of a message possibly annotated with an entity. + * + * Generated from protobuf field string text = 1; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * The [Dialogflow system entity + * type](https://cloud.google.com/dialogflow/docs/reference/system-entities) + * of this message part. If this is empty, Dialogflow could not annotate the + * phrase part with a system entity. + * + * Generated from protobuf field string entity_type = 2; + * @return string + */ + public function getEntityType() + { + return $this->entity_type; + } + + /** + * The [Dialogflow system entity + * type](https://cloud.google.com/dialogflow/docs/reference/system-entities) + * of this message part. If this is empty, Dialogflow could not annotate the + * phrase part with a system entity. + * + * Generated from protobuf field string entity_type = 2; + * @param string $var + * @return $this + */ + public function setEntityType($var) + { + GPBUtil::checkString($var, True); + $this->entity_type = $var; + + return $this; + } + + /** + * The [Dialogflow system entity formatted value + * ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of + * this message part. For example for a system entity of type + * `@sys.unit-currency`, this may contain: + *
+     * {
+     *   "amount": 5,
+     *   "currency": "USD"
+     * }
+     * 
+ * + * Generated from protobuf field .google.protobuf.Value formatted_value = 3; + * @return \Google\Protobuf\Value|null + */ + public function getFormattedValue() + { + return $this->formatted_value; + } + + public function hasFormattedValue() + { + return isset($this->formatted_value); + } + + public function clearFormattedValue() + { + unset($this->formatted_value); + } + + /** + * The [Dialogflow system entity formatted value + * ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of + * this message part. For example for a system entity of type + * `@sys.unit-currency`, this may contain: + *
+     * {
+     *   "amount": 5,
+     *   "currency": "USD"
+     * }
+     * 
+ * + * Generated from protobuf field .google.protobuf.Value formatted_value = 3; + * @param \Google\Protobuf\Value $var + * @return $this + */ + public function setFormattedValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Value::class); + $this->formatted_value = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AnswerFeedback.php b/vendor/google/cloud-dialogflow/src/V2/AnswerFeedback.php new file mode 100644 index 0000000..6063491 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AnswerFeedback.php @@ -0,0 +1,282 @@ +google.cloud.dialogflow.v2.AnswerFeedback + */ +class AnswerFeedback extends \Google\Protobuf\Internal\Message +{ + /** + * The correctness level of the specific answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel correctness_level = 1; + */ + protected $correctness_level = 0; + /** + * Indicates whether the answer/item was clicked by the human agent + * or not. Default to false. + * For knowledge search and knowledge assist, the answer record is considered + * to be clicked if the answer was copied or any URI was clicked. + * + * Generated from protobuf field bool clicked = 3; + */ + protected $clicked = false; + /** + * Time when the answer/item was clicked. + * + * Generated from protobuf field .google.protobuf.Timestamp click_time = 5; + */ + protected $click_time = null; + /** + * Indicates whether the answer/item was displayed to the human + * agent in the agent desktop UI. Default to false. + * + * Generated from protobuf field bool displayed = 4; + */ + protected $displayed = false; + /** + * Time when the answer/item was displayed. + * + * Generated from protobuf field .google.protobuf.Timestamp display_time = 6; + */ + protected $display_time = null; + protected $detail_feedback; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $correctness_level + * The correctness level of the specific answer. + * @type \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback $agent_assistant_detail_feedback + * Detail feedback of agent assist suggestions. + * @type bool $clicked + * Indicates whether the answer/item was clicked by the human agent + * or not. Default to false. + * For knowledge search and knowledge assist, the answer record is considered + * to be clicked if the answer was copied or any URI was clicked. + * @type \Google\Protobuf\Timestamp $click_time + * Time when the answer/item was clicked. + * @type bool $displayed + * Indicates whether the answer/item was displayed to the human + * agent in the agent desktop UI. Default to false. + * @type \Google\Protobuf\Timestamp $display_time + * Time when the answer/item was displayed. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * The correctness level of the specific answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel correctness_level = 1; + * @return int + */ + public function getCorrectnessLevel() + { + return $this->correctness_level; + } + + /** + * The correctness level of the specific answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel correctness_level = 1; + * @param int $var + * @return $this + */ + public function setCorrectnessLevel($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AnswerFeedback\CorrectnessLevel::class); + $this->correctness_level = $var; + + return $this; + } + + /** + * Detail feedback of agent assist suggestions. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback agent_assistant_detail_feedback = 2; + * @return \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback|null + */ + public function getAgentAssistantDetailFeedback() + { + return $this->readOneof(2); + } + + public function hasAgentAssistantDetailFeedback() + { + return $this->hasOneof(2); + } + + /** + * Detail feedback of agent assist suggestions. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantFeedback agent_assistant_detail_feedback = 2; + * @param \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback $var + * @return $this + */ + public function setAgentAssistantDetailFeedback($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AgentAssistantFeedback::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Indicates whether the answer/item was clicked by the human agent + * or not. Default to false. + * For knowledge search and knowledge assist, the answer record is considered + * to be clicked if the answer was copied or any URI was clicked. + * + * Generated from protobuf field bool clicked = 3; + * @return bool + */ + public function getClicked() + { + return $this->clicked; + } + + /** + * Indicates whether the answer/item was clicked by the human agent + * or not. Default to false. + * For knowledge search and knowledge assist, the answer record is considered + * to be clicked if the answer was copied or any URI was clicked. + * + * Generated from protobuf field bool clicked = 3; + * @param bool $var + * @return $this + */ + public function setClicked($var) + { + GPBUtil::checkBool($var); + $this->clicked = $var; + + return $this; + } + + /** + * Time when the answer/item was clicked. + * + * Generated from protobuf field .google.protobuf.Timestamp click_time = 5; + * @return \Google\Protobuf\Timestamp|null + */ + public function getClickTime() + { + return $this->click_time; + } + + public function hasClickTime() + { + return isset($this->click_time); + } + + public function clearClickTime() + { + unset($this->click_time); + } + + /** + * Time when the answer/item was clicked. + * + * Generated from protobuf field .google.protobuf.Timestamp click_time = 5; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setClickTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->click_time = $var; + + return $this; + } + + /** + * Indicates whether the answer/item was displayed to the human + * agent in the agent desktop UI. Default to false. + * + * Generated from protobuf field bool displayed = 4; + * @return bool + */ + public function getDisplayed() + { + return $this->displayed; + } + + /** + * Indicates whether the answer/item was displayed to the human + * agent in the agent desktop UI. Default to false. + * + * Generated from protobuf field bool displayed = 4; + * @param bool $var + * @return $this + */ + public function setDisplayed($var) + { + GPBUtil::checkBool($var); + $this->displayed = $var; + + return $this; + } + + /** + * Time when the answer/item was displayed. + * + * Generated from protobuf field .google.protobuf.Timestamp display_time = 6; + * @return \Google\Protobuf\Timestamp|null + */ + public function getDisplayTime() + { + return $this->display_time; + } + + public function hasDisplayTime() + { + return isset($this->display_time); + } + + public function clearDisplayTime() + { + unset($this->display_time); + } + + /** + * Time when the answer/item was displayed. + * + * Generated from protobuf field .google.protobuf.Timestamp display_time = 6; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setDisplayTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->display_time = $var; + + return $this; + } + + /** + * @return string + */ + public function getDetailFeedback() + { + return $this->whichOneof("detail_feedback"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AnswerFeedback/CorrectnessLevel.php b/vendor/google/cloud-dialogflow/src/V2/AnswerFeedback/CorrectnessLevel.php new file mode 100644 index 0000000..d67105a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AnswerFeedback/CorrectnessLevel.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.AnswerFeedback.CorrectnessLevel + */ +class CorrectnessLevel +{ + /** + * Correctness level unspecified. + * + * Generated from protobuf enum CORRECTNESS_LEVEL_UNSPECIFIED = 0; + */ + const CORRECTNESS_LEVEL_UNSPECIFIED = 0; + /** + * Answer is totally wrong. + * + * Generated from protobuf enum NOT_CORRECT = 1; + */ + const NOT_CORRECT = 1; + /** + * Answer is partially correct. + * + * Generated from protobuf enum PARTIALLY_CORRECT = 2; + */ + const PARTIALLY_CORRECT = 2; + /** + * Answer is fully correct. + * + * Generated from protobuf enum FULLY_CORRECT = 3; + */ + const FULLY_CORRECT = 3; + + private static $valueToName = [ + self::CORRECTNESS_LEVEL_UNSPECIFIED => 'CORRECTNESS_LEVEL_UNSPECIFIED', + self::NOT_CORRECT => 'NOT_CORRECT', + self::PARTIALLY_CORRECT => 'PARTIALLY_CORRECT', + self::FULLY_CORRECT => 'FULLY_CORRECT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/AnswerRecord.php b/vendor/google/cloud-dialogflow/src/V2/AnswerRecord.php new file mode 100644 index 0000000..d173d57 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AnswerRecord.php @@ -0,0 +1,190 @@ +google.cloud.dialogflow.v2.AnswerRecord + */ +class AnswerRecord extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of this answer record. + * Format: `projects//locations//answerRecords/`. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Required. The AnswerFeedback for this record. You can set this with + * [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecord] + * in order to give us feedback about this answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerFeedback answer_feedback = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $answer_feedback = null; + protected $record; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The unique identifier of this answer record. + * Format: `projects//locations//answerRecords/`. + * @type \Google\Cloud\Dialogflow\V2\AnswerFeedback $answer_feedback + * Required. The AnswerFeedback for this record. You can set this with + * [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecord] + * in order to give us feedback about this answer. + * @type \Google\Cloud\Dialogflow\V2\AgentAssistantRecord $agent_assistant_record + * Output only. The record for human agent assistant. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of this answer record. + * Format: `projects//locations//answerRecords/`. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The unique identifier of this answer record. + * Format: `projects//locations//answerRecords/`. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The AnswerFeedback for this record. You can set this with + * [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecord] + * in order to give us feedback about this answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerFeedback answer_feedback = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\AnswerFeedback|null + */ + public function getAnswerFeedback() + { + return $this->answer_feedback; + } + + public function hasAnswerFeedback() + { + return isset($this->answer_feedback); + } + + public function clearAnswerFeedback() + { + unset($this->answer_feedback); + } + + /** + * Required. The AnswerFeedback for this record. You can set this with + * [AnswerRecords.UpdateAnswerRecord][google.cloud.dialogflow.v2.AnswerRecords.UpdateAnswerRecord] + * in order to give us feedback about this answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerFeedback answer_feedback = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\AnswerFeedback $var + * @return $this + */ + public function setAnswerFeedback($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AnswerFeedback::class); + $this->answer_feedback = $var; + + return $this; + } + + /** + * Output only. The record for human agent assistant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantRecord agent_assistant_record = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\AgentAssistantRecord|null + */ + public function getAgentAssistantRecord() + { + return $this->readOneof(4); + } + + public function hasAgentAssistantRecord() + { + return $this->hasOneof(4); + } + + /** + * Output only. The record for human agent assistant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AgentAssistantRecord agent_assistant_record = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\AgentAssistantRecord $var + * @return $this + */ + public function setAgentAssistantRecord($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AgentAssistantRecord::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * @return string + */ + public function getRecord() + { + return $this->whichOneof("record"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ArticleAnswer.php b/vendor/google/cloud-dialogflow/src/V2/ArticleAnswer.php new file mode 100644 index 0000000..ecbdd73 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ArticleAnswer.php @@ -0,0 +1,261 @@ +google.cloud.dialogflow.v2.ArticleAnswer + */ +class ArticleAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The article title. + * + * Generated from protobuf field string title = 1; + */ + protected $title = ''; + /** + * The article URI. + * + * Generated from protobuf field string uri = 2; + */ + protected $uri = ''; + /** + * Article snippets. + * + * Generated from protobuf field repeated string snippets = 3; + */ + private $snippets; + /** + * Article match confidence. + * The system's confidence score that this article is a good match for this + * conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * + * Generated from protobuf field float confidence = 4; + */ + protected $confidence = 0.0; + /** + * A map that contains metadata about the answer and the + * document from which it originates. + * + * Generated from protobuf field map metadata = 5; + */ + private $metadata; + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 6; + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * The article title. + * @type string $uri + * The article URI. + * @type array|\Google\Protobuf\Internal\RepeatedField $snippets + * Article snippets. + * @type float $confidence + * Article match confidence. + * The system's confidence score that this article is a good match for this + * conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * @type array|\Google\Protobuf\Internal\MapField $metadata + * A map that contains metadata about the answer and the + * document from which it originates. + * @type string $answer_record + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The article title. + * + * Generated from protobuf field string title = 1; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * The article title. + * + * Generated from protobuf field string title = 1; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * The article URI. + * + * Generated from protobuf field string uri = 2; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * The article URI. + * + * Generated from protobuf field string uri = 2; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + + /** + * Article snippets. + * + * Generated from protobuf field repeated string snippets = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSnippets() + { + return $this->snippets; + } + + /** + * Article snippets. + * + * Generated from protobuf field repeated string snippets = 3; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSnippets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->snippets = $arr; + + return $this; + } + + /** + * Article match confidence. + * The system's confidence score that this article is a good match for this + * conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * + * Generated from protobuf field float confidence = 4; + * @return float + */ + public function getConfidence() + { + return $this->confidence; + } + + /** + * Article match confidence. + * The system's confidence score that this article is a good match for this + * conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * + * Generated from protobuf field float confidence = 4; + * @param float $var + * @return $this + */ + public function setConfidence($var) + { + GPBUtil::checkFloat($var); + $this->confidence = $var; + + return $this; + } + + /** + * A map that contains metadata about the answer and the + * document from which it originates. + * + * Generated from protobuf field map metadata = 5; + * @return \Google\Protobuf\Internal\MapField + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * A map that contains metadata about the answer and the + * document from which it originates. + * + * Generated from protobuf field map metadata = 5; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setMetadata($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->metadata = $arr; + + return $this; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 6; + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 6; + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ArticleSuggestionModelMetadata.php b/vendor/google/cloud-dialogflow/src/V2/ArticleSuggestionModelMetadata.php new file mode 100644 index 0000000..615d7a2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ArticleSuggestionModelMetadata.php @@ -0,0 +1,71 @@ +google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata + */ +class ArticleSuggestionModelMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Type of the article suggestion model. If not provided, model_type + * is used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.ModelType training_model_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $training_model_type = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $training_model_type + * Optional. Type of the article suggestion model. If not provided, model_type + * is used. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Type of the article suggestion model. If not provided, model_type + * is used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.ModelType training_model_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getTrainingModelType() + { + return $this->training_model_type; + } + + /** + * Optional. Type of the article suggestion model. If not provided, model_type + * is used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.ModelType training_model_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setTrainingModelType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\ConversationModel\ModelType::class); + $this->training_model_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AssistQueryParameters.php b/vendor/google/cloud-dialogflow/src/V2/AssistQueryParameters.php new file mode 100644 index 0000000..2deb569 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AssistQueryParameters.php @@ -0,0 +1,131 @@ +google.cloud.dialogflow.v2.AssistQueryParameters + */ +class AssistQueryParameters extends \Google\Protobuf\Internal\Message +{ + /** + * Key-value filters on the metadata of documents returned by article + * suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * + * Generated from protobuf field map documents_metadata_filters = 1; + */ + private $documents_metadata_filters; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\MapField $documents_metadata_filters + * Key-value filters on the metadata of documents returned by article + * suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Key-value filters on the metadata of documents returned by article + * suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * + * Generated from protobuf field map documents_metadata_filters = 1; + * @return \Google\Protobuf\Internal\MapField + */ + public function getDocumentsMetadataFilters() + { + return $this->documents_metadata_filters; + } + + /** + * Key-value filters on the metadata of documents returned by article + * suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * + * Generated from protobuf field map documents_metadata_filters = 1; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setDocumentsMetadataFilters($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->documents_metadata_filters = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AudioEncoding.php b/vendor/google/cloud-dialogflow/src/V2/AudioEncoding.php new file mode 100644 index 0000000..e630d14 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AudioEncoding.php @@ -0,0 +1,125 @@ +google.cloud.dialogflow.v2.AudioEncoding + */ +class AudioEncoding +{ + /** + * Not specified. + * + * Generated from protobuf enum AUDIO_ENCODING_UNSPECIFIED = 0; + */ + const AUDIO_ENCODING_UNSPECIFIED = 0; + /** + * Uncompressed 16-bit signed little-endian samples (Linear PCM). + * + * Generated from protobuf enum AUDIO_ENCODING_LINEAR_16 = 1; + */ + const AUDIO_ENCODING_LINEAR_16 = 1; + /** + * [`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio + * Codec) is the recommended encoding because it is lossless (therefore + * recognition is not compromised) and requires only about half the + * bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and + * 24-bit samples, however, not all fields in `STREAMINFO` are supported. + * + * Generated from protobuf enum AUDIO_ENCODING_FLAC = 2; + */ + const AUDIO_ENCODING_FLAC = 2; + /** + * 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law. + * + * Generated from protobuf enum AUDIO_ENCODING_MULAW = 3; + */ + const AUDIO_ENCODING_MULAW = 3; + /** + * Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000. + * + * Generated from protobuf enum AUDIO_ENCODING_AMR = 4; + */ + const AUDIO_ENCODING_AMR = 4; + /** + * Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000. + * + * Generated from protobuf enum AUDIO_ENCODING_AMR_WB = 5; + */ + const AUDIO_ENCODING_AMR_WB = 5; + /** + * Opus encoded audio frames in Ogg container + * ([OggOpus](https://wiki.xiph.org/OggOpus)). + * `sample_rate_hertz` must be 16000. + * + * Generated from protobuf enum AUDIO_ENCODING_OGG_OPUS = 6; + */ + const AUDIO_ENCODING_OGG_OPUS = 6; + /** + * Although the use of lossy encodings is not recommended, if a very low + * bitrate encoding is required, `OGG_OPUS` is highly preferred over + * Speex encoding. The [Speex](https://speex.org/) encoding supported by + * Dialogflow API has a header byte in each block, as in MIME type + * `audio/x-speex-with-header-byte`. + * It is a variant of the RTP Speex encoding defined in + * [RFC 5574](https://tools.ietf.org/html/rfc5574). + * The stream is a sequence of blocks, one block per RTP packet. Each block + * starts with a byte containing the length of the block, in bytes, followed + * by one or more frames of Speex data, padded to an integral number of + * bytes (octets) as specified in RFC 5574. In other words, each RTP header + * is replaced with a single byte containing the block length. Only Speex + * wideband is supported. `sample_rate_hertz` must be 16000. + * + * Generated from protobuf enum AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7; + */ + const AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7; + /** + * 8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law. + * + * Generated from protobuf enum AUDIO_ENCODING_ALAW = 8; + */ + const AUDIO_ENCODING_ALAW = 8; + + private static $valueToName = [ + self::AUDIO_ENCODING_UNSPECIFIED => 'AUDIO_ENCODING_UNSPECIFIED', + self::AUDIO_ENCODING_LINEAR_16 => 'AUDIO_ENCODING_LINEAR_16', + self::AUDIO_ENCODING_FLAC => 'AUDIO_ENCODING_FLAC', + self::AUDIO_ENCODING_MULAW => 'AUDIO_ENCODING_MULAW', + self::AUDIO_ENCODING_AMR => 'AUDIO_ENCODING_AMR', + self::AUDIO_ENCODING_AMR_WB => 'AUDIO_ENCODING_AMR_WB', + self::AUDIO_ENCODING_OGG_OPUS => 'AUDIO_ENCODING_OGG_OPUS', + self::AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE => 'AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE', + self::AUDIO_ENCODING_ALAW => 'AUDIO_ENCODING_ALAW', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AudioInput.php b/vendor/google/cloud-dialogflow/src/V2/AudioInput.php new file mode 100644 index 0000000..f4591eb --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AudioInput.php @@ -0,0 +1,123 @@ +google.cloud.dialogflow.v2.AudioInput + */ +class AudioInput extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig config = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $config = null; + /** + * Required. The natural language speech audio to be processed. + * A single request can contain up to 2 minutes of speech audio data. + * The transcribed text cannot contain more than 256 bytes for virtual agent + * interactions. + * + * Generated from protobuf field bytes audio = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $audio = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\InputAudioConfig $config + * Required. Instructs the speech recognizer how to process the speech audio. + * @type string $audio + * Required. The natural language speech audio to be processed. + * A single request can contain up to 2 minutes of speech audio data. + * The transcribed text cannot contain more than 256 bytes for virtual agent + * interactions. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig config = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\InputAudioConfig|null + */ + public function getConfig() + { + return $this->config; + } + + public function hasConfig() + { + return isset($this->config); + } + + public function clearConfig() + { + unset($this->config); + } + + /** + * Required. Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig config = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\InputAudioConfig $var + * @return $this + */ + public function setConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InputAudioConfig::class); + $this->config = $var; + + return $this; + } + + /** + * Required. The natural language speech audio to be processed. + * A single request can contain up to 2 minutes of speech audio data. + * The transcribed text cannot contain more than 256 bytes for virtual agent + * interactions. + * + * Generated from protobuf field bytes audio = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getAudio() + { + return $this->audio; + } + + /** + * Required. The natural language speech audio to be processed. + * A single request can contain up to 2 minutes of speech audio data. + * The transcribed text cannot contain more than 256 bytes for virtual agent + * interactions. + * + * Generated from protobuf field bytes audio = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setAudio($var) + { + GPBUtil::checkString($var, False); + $this->audio = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentConfig.php b/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentConfig.php new file mode 100644 index 0000000..9c86f69 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentConfig.php @@ -0,0 +1,175 @@ +google.cloud.dialogflow.v2.AutomatedAgentConfig + */ +class AutomatedAgentConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. ID of the Dialogflow agent environment to use. + * This project needs to either be the same project as the conversation or you + * need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API + * Service Agent` role in this project. + * - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not + * specified, the default `draft` environment is used. Refer to + * [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) + * for more details. + * - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment + * is used. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $agent = ''; + /** + * Optional. Configure lifetime of the Dialogflow session. + * By default, a Dialogflow CX session remains active and its data is stored + * for 30 minutes after the last request is sent for the session. + * This value should be no longer than 1 day. + * + * Generated from protobuf field .google.protobuf.Duration session_ttl = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $session_ttl = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $agent + * Required. ID of the Dialogflow agent environment to use. + * This project needs to either be the same project as the conversation or you + * need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API + * Service Agent` role in this project. + * - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not + * specified, the default `draft` environment is used. Refer to + * [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) + * for more details. + * - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment + * is used. + * @type \Google\Protobuf\Duration $session_ttl + * Optional. Configure lifetime of the Dialogflow session. + * By default, a Dialogflow CX session remains active and its data is stored + * for 30 minutes after the last request is sent for the session. + * This value should be no longer than 1 day. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. ID of the Dialogflow agent environment to use. + * This project needs to either be the same project as the conversation or you + * need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API + * Service Agent` role in this project. + * - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not + * specified, the default `draft` environment is used. Refer to + * [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) + * for more details. + * - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment + * is used. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getAgent() + { + return $this->agent; + } + + /** + * Required. ID of the Dialogflow agent environment to use. + * This project needs to either be the same project as the conversation or you + * need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow API + * Service Agent` role in this project. + * - For ES agents, use format: `projects//locations//agent/environments/`. If environment is not + * specified, the default `draft` environment is used. Refer to + * [DetectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest) + * for more details. + * - For CX agents, use format `projects//locations//agents//environments/`. If environment is not specified, the default `draft` environment + * is used. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAgent($var) + { + GPBUtil::checkString($var, True); + $this->agent = $var; + + return $this; + } + + /** + * Optional. Configure lifetime of the Dialogflow session. + * By default, a Dialogflow CX session remains active and its data is stored + * for 30 minutes after the last request is sent for the session. + * This value should be no longer than 1 day. + * + * Generated from protobuf field .google.protobuf.Duration session_ttl = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Duration|null + */ + public function getSessionTtl() + { + return $this->session_ttl; + } + + public function hasSessionTtl() + { + return isset($this->session_ttl); + } + + public function clearSessionTtl() + { + unset($this->session_ttl); + } + + /** + * Optional. Configure lifetime of the Dialogflow session. + * By default, a Dialogflow CX session remains active and its data is stored + * for 30 minutes after the last request is sent for the session. + * This value should be no longer than 1 day. + * + * Generated from protobuf field .google.protobuf.Duration session_ttl = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setSessionTtl($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->session_ttl = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply.php b/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply.php new file mode 100644 index 0000000..a7eb6d7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply.php @@ -0,0 +1,203 @@ +google.cloud.dialogflow.v2.AutomatedAgentReply + */ +class AutomatedAgentReply extends \Google\Protobuf\Internal\Message +{ + /** + * Response of the Dialogflow + * [Sessions.DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] + * call. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DetectIntentResponse detect_intent_response = 1; + */ + protected $detect_intent_response = null; + /** + * AutomatedAgentReply type. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType automated_agent_reply_type = 7; + */ + protected $automated_agent_reply_type = 0; + /** + * Indicates whether the partial automated agent reply is interruptible when a + * later reply message arrives. e.g. if the agent specified some music as + * partial response, it can be cancelled. + * + * Generated from protobuf field bool allow_cancellation = 8; + */ + protected $allow_cancellation = false; + /** + * The unique identifier of the current Dialogflow CX conversation page. + * Format: `projects//locations//agents//flows//pages/`. + * + * Generated from protobuf field string cx_current_page = 11; + */ + protected $cx_current_page = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\DetectIntentResponse $detect_intent_response + * Response of the Dialogflow + * [Sessions.DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] + * call. + * @type int $automated_agent_reply_type + * AutomatedAgentReply type. + * @type bool $allow_cancellation + * Indicates whether the partial automated agent reply is interruptible when a + * later reply message arrives. e.g. if the agent specified some music as + * partial response, it can be cancelled. + * @type string $cx_current_page + * The unique identifier of the current Dialogflow CX conversation page. + * Format: `projects//locations//agents//flows//pages/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Response of the Dialogflow + * [Sessions.DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] + * call. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DetectIntentResponse detect_intent_response = 1; + * @return \Google\Cloud\Dialogflow\V2\DetectIntentResponse|null + */ + public function getDetectIntentResponse() + { + return $this->detect_intent_response; + } + + public function hasDetectIntentResponse() + { + return isset($this->detect_intent_response); + } + + public function clearDetectIntentResponse() + { + unset($this->detect_intent_response); + } + + /** + * Response of the Dialogflow + * [Sessions.DetectIntent][google.cloud.dialogflow.v2.Sessions.DetectIntent] + * call. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DetectIntentResponse detect_intent_response = 1; + * @param \Google\Cloud\Dialogflow\V2\DetectIntentResponse $var + * @return $this + */ + public function setDetectIntentResponse($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\DetectIntentResponse::class); + $this->detect_intent_response = $var; + + return $this; + } + + /** + * AutomatedAgentReply type. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType automated_agent_reply_type = 7; + * @return int + */ + public function getAutomatedAgentReplyType() + { + return $this->automated_agent_reply_type; + } + + /** + * AutomatedAgentReply type. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType automated_agent_reply_type = 7; + * @param int $var + * @return $this + */ + public function setAutomatedAgentReplyType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AutomatedAgentReply\AutomatedAgentReplyType::class); + $this->automated_agent_reply_type = $var; + + return $this; + } + + /** + * Indicates whether the partial automated agent reply is interruptible when a + * later reply message arrives. e.g. if the agent specified some music as + * partial response, it can be cancelled. + * + * Generated from protobuf field bool allow_cancellation = 8; + * @return bool + */ + public function getAllowCancellation() + { + return $this->allow_cancellation; + } + + /** + * Indicates whether the partial automated agent reply is interruptible when a + * later reply message arrives. e.g. if the agent specified some music as + * partial response, it can be cancelled. + * + * Generated from protobuf field bool allow_cancellation = 8; + * @param bool $var + * @return $this + */ + public function setAllowCancellation($var) + { + GPBUtil::checkBool($var); + $this->allow_cancellation = $var; + + return $this; + } + + /** + * The unique identifier of the current Dialogflow CX conversation page. + * Format: `projects//locations//agents//flows//pages/`. + * + * Generated from protobuf field string cx_current_page = 11; + * @return string + */ + public function getCxCurrentPage() + { + return $this->cx_current_page; + } + + /** + * The unique identifier of the current Dialogflow CX conversation page. + * Format: `projects//locations//agents//flows//pages/`. + * + * Generated from protobuf field string cx_current_page = 11; + * @param string $var + * @return $this + */ + public function setCxCurrentPage($var) + { + GPBUtil::checkString($var, True); + $this->cx_current_page = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply/AutomatedAgentReplyType.php b/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply/AutomatedAgentReplyType.php new file mode 100644 index 0000000..aa4dd0b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/AutomatedAgentReply/AutomatedAgentReplyType.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.AutomatedAgentReply.AutomatedAgentReplyType + */ +class AutomatedAgentReplyType +{ + /** + * Not specified. This should never happen. + * + * Generated from protobuf enum AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED = 0; + */ + const AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED = 0; + /** + * Partial reply. e.g. Aggregated responses in a `Fulfillment` that enables + * `return_partial_response` can be returned as partial reply. + * WARNING: partial reply is not eligible for barge-in. + * + * Generated from protobuf enum PARTIAL = 1; + */ + const PARTIAL = 1; + /** + * Final reply. + * + * Generated from protobuf enum FINAL = 2; + */ + const PBFINAL = 2; + + private static $valueToName = [ + self::AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED => 'AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED', + self::PARTIAL => 'PARTIAL', + self::PBFINAL => 'FINAL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + $pbconst = __CLASS__. '::PB' . strtoupper($name); + if (!defined($pbconst)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($pbconst); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchCreateEntitiesRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchCreateEntitiesRequest.php new file mode 100644 index 0000000..c783511 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchCreateEntitiesRequest.php @@ -0,0 +1,196 @@ +google.cloud.dialogflow.v2.BatchCreateEntitiesRequest + */ +class BatchCreateEntitiesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the entity type to create entities in. Format: + * `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The entities to create. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $entities; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + + /** + * @param string $parent Required. The name of the entity type to create entities in. Format: + * `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EntityType\Entity[] $entities Required. The entities to create. + * + * @return \Google\Cloud\Dialogflow\V2\BatchCreateEntitiesRequest + * + * @experimental + */ + public static function build(string $parent, array $entities): self + { + return (new self()) + ->setParent($parent) + ->setEntities($entities); + } + + /** + * @param string $parent Required. The name of the entity type to create entities in. Format: + * `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EntityType\Entity[] $entities Required. The entities to create. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\BatchCreateEntitiesRequest + * + * @experimental + */ + public static function buildFromParentEntitiesLanguageCode(string $parent, array $entities, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setEntities($entities) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the entity type to create entities in. Format: + * `projects//agent/entityTypes/`. + * @type array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $entities + * Required. The entities to create. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the entity type to create entities in. Format: + * `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the entity type to create entities in. Format: + * `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The entities to create. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntities() + { + return $this->entities; + } + + /** + * Required. The entities to create. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntities($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType\Entity::class); + $this->entities = $arr; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntitiesRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntitiesRequest.php new file mode 100644 index 0000000..5eca1fa --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntitiesRequest.php @@ -0,0 +1,208 @@ +google.cloud.dialogflow.v2.BatchDeleteEntitiesRequest + */ +class BatchDeleteEntitiesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the entity type to delete entries for. Format: + * `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The reference `values` of the entities to delete. Note that + * these are not fully-qualified names, i.e. they don't start with + * `projects/`. + * + * Generated from protobuf field repeated string entity_values = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $entity_values; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + + /** + * @param string $parent Required. The name of the entity type to delete entries for. Format: + * `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param string[] $entityValues Required. The reference `values` of the entities to delete. Note that + * these are not fully-qualified names, i.e. they don't start with + * `projects/`. + * + * @return \Google\Cloud\Dialogflow\V2\BatchDeleteEntitiesRequest + * + * @experimental + */ + public static function build(string $parent, array $entityValues): self + { + return (new self()) + ->setParent($parent) + ->setEntityValues($entityValues); + } + + /** + * @param string $parent Required. The name of the entity type to delete entries for. Format: + * `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param string[] $entityValues Required. The reference `values` of the entities to delete. Note that + * these are not fully-qualified names, i.e. they don't start with + * `projects/`. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\BatchDeleteEntitiesRequest + * + * @experimental + */ + public static function buildFromParentEntityValuesLanguageCode(string $parent, array $entityValues, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setEntityValues($entityValues) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the entity type to delete entries for. Format: + * `projects//agent/entityTypes/`. + * @type array|\Google\Protobuf\Internal\RepeatedField $entity_values + * Required. The reference `values` of the entities to delete. Note that + * these are not fully-qualified names, i.e. they don't start with + * `projects/`. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the entity type to delete entries for. Format: + * `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the entity type to delete entries for. Format: + * `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The reference `values` of the entities to delete. Note that + * these are not fully-qualified names, i.e. they don't start with + * `projects/`. + * + * Generated from protobuf field repeated string entity_values = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntityValues() + { + return $this->entity_values; + } + + /** + * Required. The reference `values` of the entities to delete. Note that + * these are not fully-qualified names, i.e. they don't start with + * `projects/`. + * + * Generated from protobuf field repeated string entity_values = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntityValues($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->entity_values = $arr; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntityTypesRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntityTypesRequest.php new file mode 100644 index 0000000..cd9bed4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchDeleteEntityTypesRequest.php @@ -0,0 +1,128 @@ +google.cloud.dialogflow.v2.BatchDeleteEntityTypesRequest + */ +class BatchDeleteEntityTypesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The names entity types to delete. All names must point to the + * same agent as `parent`. + * + * Generated from protobuf field repeated string entity_type_names = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $entity_type_names; + + /** + * @param string $parent Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. Please see + * {@see EntityTypesClient::agentName()} for help formatting this field. + * @param string[] $entityTypeNames Required. The names entity types to delete. All names must point to the + * same agent as `parent`. + * + * @return \Google\Cloud\Dialogflow\V2\BatchDeleteEntityTypesRequest + * + * @experimental + */ + public static function build(string $parent, array $entityTypeNames): self + { + return (new self()) + ->setParent($parent) + ->setEntityTypeNames($entityTypeNames); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * @type array|\Google\Protobuf\Internal\RepeatedField $entity_type_names + * Required. The names entity types to delete. All names must point to the + * same agent as `parent`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The names entity types to delete. All names must point to the + * same agent as `parent`. + * + * Generated from protobuf field repeated string entity_type_names = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntityTypeNames() + { + return $this->entity_type_names; + } + + /** + * Required. The names entity types to delete. All names must point to the + * same agent as `parent`. + * + * Generated from protobuf field repeated string entity_type_names = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntityTypeNames($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->entity_type_names = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchDeleteIntentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchDeleteIntentsRequest.php new file mode 100644 index 0000000..268ec6c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchDeleteIntentsRequest.php @@ -0,0 +1,128 @@ +google.cloud.dialogflow.v2.BatchDeleteIntentsRequest + */ +class BatchDeleteIntentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The collection of intents to delete. Only intent `name` must be + * filled in. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $intents; + + /** + * @param string $parent Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Intent[] $intents Required. The collection of intents to delete. Only intent `name` must be + * filled in. + * + * @return \Google\Cloud\Dialogflow\V2\BatchDeleteIntentsRequest + * + * @experimental + */ + public static function build(string $parent, array $intents): self + { + return (new self()) + ->setParent($parent) + ->setIntents($intents); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * @type array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $intents + * Required. The collection of intents to delete. Only intent `name` must be + * filled in. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the agent to delete all entities types for. Format: + * `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The collection of intents to delete. Only intent `name` must be + * filled in. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getIntents() + { + return $this->intents; + } + + /** + * Required. The collection of intents to delete. Only intent `name` must be + * filled in. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setIntents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intents = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntitiesRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntitiesRequest.php new file mode 100644 index 0000000..3a34274 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntitiesRequest.php @@ -0,0 +1,240 @@ +google.cloud.dialogflow.v2.BatchUpdateEntitiesRequest + */ +class BatchUpdateEntitiesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the entity type to update or create entities in. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The entities to update or create. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $entities; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param string $parent Required. The name of the entity type to update or create entities in. + * Format: `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EntityType\Entity[] $entities Required. The entities to update or create. + * + * @return \Google\Cloud\Dialogflow\V2\BatchUpdateEntitiesRequest + * + * @experimental + */ + public static function build(string $parent, array $entities): self + { + return (new self()) + ->setParent($parent) + ->setEntities($entities); + } + + /** + * @param string $parent Required. The name of the entity type to update or create entities in. + * Format: `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EntityType\Entity[] $entities Required. The entities to update or create. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\BatchUpdateEntitiesRequest + * + * @experimental + */ + public static function buildFromParentEntitiesLanguageCode(string $parent, array $entities, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setEntities($entities) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the entity type to update or create entities in. + * Format: `projects//agent/entityTypes/`. + * @type array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $entities + * Required. The entities to update or create. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the entity type to update or create entities in. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the entity type to update or create entities in. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The entities to update or create. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntities() + { + return $this->entities; + } + + /** + * Required. The entities to update or create. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntities($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType\Entity::class); + $this->entities = $arr; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesRequest.php new file mode 100644 index 0000000..6a281fc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesRequest.php @@ -0,0 +1,250 @@ +google.cloud.dialogflow.v2.BatchUpdateEntityTypesRequest + */ +class BatchUpdateEntityTypesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the agent to update or create entity types in. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + protected $entity_type_batch; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the agent to update or create entity types in. + * Format: `projects//agent`. + * @type string $entity_type_batch_uri + * The URI to a Google Cloud Storage file containing entity types to update + * or create. The file format can either be a serialized proto (of + * EntityBatch type) or a JSON object. Note: The URI must start with + * "gs://". + * @type \Google\Cloud\Dialogflow\V2\EntityTypeBatch $entity_type_batch_inline + * The collection of entity types to update or create. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the agent to update or create entity types in. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the agent to update or create entity types in. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The URI to a Google Cloud Storage file containing entity types to update + * or create. The file format can either be a serialized proto (of + * EntityBatch type) or a JSON object. Note: The URI must start with + * "gs://". + * + * Generated from protobuf field string entity_type_batch_uri = 2; + * @return string + */ + public function getEntityTypeBatchUri() + { + return $this->readOneof(2); + } + + public function hasEntityTypeBatchUri() + { + return $this->hasOneof(2); + } + + /** + * The URI to a Google Cloud Storage file containing entity types to update + * or create. The file format can either be a serialized proto (of + * EntityBatch type) or a JSON object. Note: The URI must start with + * "gs://". + * + * Generated from protobuf field string entity_type_batch_uri = 2; + * @param string $var + * @return $this + */ + public function setEntityTypeBatchUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The collection of entity types to update or create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityTypeBatch entity_type_batch_inline = 3; + * @return \Google\Cloud\Dialogflow\V2\EntityTypeBatch|null + */ + public function getEntityTypeBatchInline() + { + return $this->readOneof(3); + } + + public function hasEntityTypeBatchInline() + { + return $this->hasOneof(3); + } + + /** + * The collection of entity types to update or create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityTypeBatch entity_type_batch_inline = 3; + * @param \Google\Cloud\Dialogflow\V2\EntityTypeBatch $var + * @return $this + */ + public function setEntityTypeBatchInline($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EntityTypeBatch::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + + /** + * @return string + */ + public function getEntityTypeBatch() + { + return $this->whichOneof("entity_type_batch"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesResponse.php b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesResponse.php new file mode 100644 index 0000000..b73eca8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateEntityTypesResponse.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse + */ +class BatchUpdateEntityTypesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The collection of updated or created entity types. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + */ + private $entity_types; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\EntityType>|\Google\Protobuf\Internal\RepeatedField $entity_types + * The collection of updated or created entity types. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * The collection of updated or created entity types. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntityTypes() + { + return $this->entity_types; + } + + /** + * The collection of updated or created entity types. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntityTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType::class); + $this->entity_types = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsRequest.php new file mode 100644 index 0000000..1420d06 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsRequest.php @@ -0,0 +1,314 @@ +google.cloud.dialogflow.v2.BatchUpdateIntentsRequest + */ +class BatchUpdateIntentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the agent to update or create intents in. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $intent_view = 0; + protected $intent_batch; + + /** + * @param string $parent Required. The name of the agent to update or create intents in. + * Format: `projects//agent`. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * @param string $intentBatchUri The URI to a Google Cloud Storage file containing intents to update or + * create. The file format can either be a serialized proto (of IntentBatch + * type) or JSON object. Note: The URI must start with "gs://". + * + * @return \Google\Cloud\Dialogflow\V2\BatchUpdateIntentsRequest + * + * @experimental + */ + public static function build(string $parent, string $intentBatchUri): self + { + return (new self()) + ->setParent($parent) + ->setIntentBatchUri($intentBatchUri); + } + + /** + * @param string $parent Required. The name of the agent to update or create intents in. + * Format: `projects//agent`. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\IntentBatch $intentBatchInline The collection of intents to update or create. + * + * @return \Google\Cloud\Dialogflow\V2\BatchUpdateIntentsRequest + * + * @experimental + */ + public static function buildFromParentIntentBatchInline(string $parent, \Google\Cloud\Dialogflow\V2\IntentBatch $intentBatchInline): self + { + return (new self()) + ->setParent($parent) + ->setIntentBatchInline($intentBatchInline); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the agent to update or create intents in. + * Format: `projects//agent`. + * @type string $intent_batch_uri + * The URI to a Google Cloud Storage file containing intents to update or + * create. The file format can either be a serialized proto (of IntentBatch + * type) or JSON object. Note: The URI must start with "gs://". + * @type \Google\Cloud\Dialogflow\V2\IntentBatch $intent_batch_inline + * The collection of intents to update or create. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * @type int $intent_view + * Optional. The resource view to apply to the returned intent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the agent to update or create intents in. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the agent to update or create intents in. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The URI to a Google Cloud Storage file containing intents to update or + * create. The file format can either be a serialized proto (of IntentBatch + * type) or JSON object. Note: The URI must start with "gs://". + * + * Generated from protobuf field string intent_batch_uri = 2; + * @return string + */ + public function getIntentBatchUri() + { + return $this->readOneof(2); + } + + public function hasIntentBatchUri() + { + return $this->hasOneof(2); + } + + /** + * The URI to a Google Cloud Storage file containing intents to update or + * create. The file format can either be a serialized proto (of IntentBatch + * type) or JSON object. Note: The URI must start with "gs://". + * + * Generated from protobuf field string intent_batch_uri = 2; + * @param string $var + * @return $this + */ + public function setIntentBatchUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The collection of intents to update or create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentBatch intent_batch_inline = 3; + * @return \Google\Cloud\Dialogflow\V2\IntentBatch|null + */ + public function getIntentBatchInline() + { + return $this->readOneof(3); + } + + public function hasIntentBatchInline() + { + return $this->hasOneof(3); + } + + /** + * The collection of intents to update or create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentBatch intent_batch_inline = 3; + * @param \Google\Cloud\Dialogflow\V2\IntentBatch $var + * @return $this + */ + public function setIntentBatchInline($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\IntentBatch::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getIntentView() + { + return $this->intent_view; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setIntentView($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\IntentView::class); + $this->intent_view = $var; + + return $this; + } + + /** + * @return string + */ + public function getIntentBatch() + { + return $this->whichOneof("intent_batch"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsResponse.php b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsResponse.php new file mode 100644 index 0000000..fe289de --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/BatchUpdateIntentsResponse.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.BatchUpdateIntentsResponse + */ +class BatchUpdateIntentsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The collection of updated or created intents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + */ + private $intents; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $intents + * The collection of updated or created intents. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * The collection of updated or created intents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getIntents() + { + return $this->intents; + } + + /** + * The collection of updated or created intents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setIntents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intents = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigOperationMetadata.php new file mode 100644 index 0000000..c570a3a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigOperationMetadata.php @@ -0,0 +1,193 @@ +google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata + */ +class ClearSuggestionFeatureConfigOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * + * Generated from protobuf field string conversation_profile = 1; + */ + protected $conversation_profile = ''; + /** + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $participant_role = 0; + /** + * Required. The type of the suggestion feature to remove. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $suggestion_feature_type = 0; + /** + * Timestamp whe the request was created. The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_profile + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * @type int $participant_role + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * @type int $suggestion_feature_type + * Required. The type of the suggestion feature to remove. + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp whe the request was created. The time is measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * + * Generated from protobuf field string conversation_profile = 1; + * @return string + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + /** + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * + * Generated from protobuf field string conversation_profile = 1; + * @param string $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkString($var, True); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getParticipantRole() + { + return $this->participant_role; + } + + /** + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setParticipantRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Participant\Role::class); + $this->participant_role = $var; + + return $this; + } + + /** + * Required. The type of the suggestion feature to remove. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getSuggestionFeatureType() + { + return $this->suggestion_feature_type; + } + + /** + * Required. The type of the suggestion feature to remove. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setSuggestionFeatureType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SuggestionFeature\Type::class); + $this->suggestion_feature_type = $var; + + return $this; + } + + /** + * Timestamp whe the request was created. The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp whe the request was created. The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigRequest.php b/vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigRequest.php new file mode 100644 index 0000000..bed39bb --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ClearSuggestionFeatureConfigRequest.php @@ -0,0 +1,185 @@ +google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigRequest + */ +class ClearSuggestionFeatureConfigRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_profile = ''; + /** + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $participant_role = 0; + /** + * Required. The type of the suggestion feature to remove. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $suggestion_feature_type = 0; + + /** + * @param string $conversationProfile Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * @return \Google\Cloud\Dialogflow\V2\ClearSuggestionFeatureConfigRequest + * + * @experimental + */ + public static function build(string $conversationProfile): self + { + return (new self()) + ->setConversationProfile($conversationProfile); + } + + /** + * @param string $conversationProfile Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * @param int $participantRole Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * For allowed values, use constants defined on {@see \Google\Cloud\Dialogflow\V2\Participant\Role} + * @param int $suggestionFeatureType Required. The type of the suggestion feature to remove. + * For allowed values, use constants defined on {@see \Google\Cloud\Dialogflow\V2\SuggestionFeature\Type} + * + * @return \Google\Cloud\Dialogflow\V2\ClearSuggestionFeatureConfigRequest + * + * @experimental + */ + public static function buildFromConversationProfileParticipantRoleSuggestionFeatureType(string $conversationProfile, int $participantRole, int $suggestionFeatureType): self + { + return (new self()) + ->setConversationProfile($conversationProfile) + ->setParticipantRole($participantRole) + ->setSuggestionFeatureType($suggestionFeatureType); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_profile + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * @type int $participant_role + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * @type int $suggestion_feature_type + * Required. The type of the suggestion feature to remove. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + /** + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkString($var, True); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getParticipantRole() + { + return $this->participant_role; + } + + /** + * Required. The participant role to remove the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setParticipantRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Participant\Role::class); + $this->participant_role = $var; + + return $this; + } + + /** + * Required. The type of the suggestion feature to remove. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getSuggestionFeatureType() + { + return $this->suggestion_feature_type; + } + + /** + * Required. The type of the suggestion feature to remove. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setSuggestionFeatureType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SuggestionFeature\Type::class); + $this->suggestion_feature_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/AgentsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/AgentsClient.php new file mode 100644 index 0000000..8fc5d6a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/AgentsClient.php @@ -0,0 +1,740 @@ + deleteAgentAsync(DeleteAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface exportAgentAsync(ExportAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getAgentAsync(GetAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getValidationResultAsync(GetValidationResultRequest $request, array $optionalArgs = []) + * @method PromiseInterface importAgentAsync(ImportAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface restoreAgentAsync(RestoreAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface searchAgentsAsync(SearchAgentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface setAgentAsync(SetAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface trainAgentAsync(TrainAgentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class AgentsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Agents'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/agents_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/agents_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/agents_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/agents_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a project + * resource. + * + * @param string $project + * + * @return string The formatted project resource. + */ + public static function projectName(string $project): string + { + return self::getPathTemplate('project')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - location: projects/{project}/locations/{location} + * - project: projects/{project} + * - projectAgent: projects/{project}/agent + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\AgentsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new AgentsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Deletes the specified agent. + * + * The async variant is {@see AgentsClient::deleteAgentAsync()} . + * + * @example samples/V2/AgentsClient/delete_agent.php + * + * @param DeleteAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteAgent(DeleteAgentRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteAgent', $request, $callOptions)->wait(); + } + + /** + * Exports the specified agent to a ZIP file. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: + * [ExportAgentResponse][google.cloud.dialogflow.v2.ExportAgentResponse] + * + * The async variant is {@see AgentsClient::exportAgentAsync()} . + * + * @example samples/V2/AgentsClient/export_agent.php + * + * @param ExportAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function exportAgent(ExportAgentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ExportAgent', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified agent. + * + * The async variant is {@see AgentsClient::getAgentAsync()} . + * + * @example samples/V2/AgentsClient/get_agent.php + * + * @param GetAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Agent + * + * @throws ApiException Thrown if the API call fails. + */ + public function getAgent(GetAgentRequest $request, array $callOptions = []): Agent + { + return $this->startApiCall('GetAgent', $request, $callOptions)->wait(); + } + + /** + * Gets agent validation result. Agent validation is performed during + * training time and is updated automatically when training is completed. + * + * The async variant is {@see AgentsClient::getValidationResultAsync()} . + * + * @example samples/V2/AgentsClient/get_validation_result.php + * + * @param GetValidationResultRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ValidationResult + * + * @throws ApiException Thrown if the API call fails. + */ + public function getValidationResult(GetValidationResultRequest $request, array $callOptions = []): ValidationResult + { + return $this->startApiCall('GetValidationResult', $request, $callOptions)->wait(); + } + + /** + * Imports the specified agent from a ZIP file. + * + * Uploads new intents and entity types without deleting the existing ones. + * Intents and entity types with the same name are replaced with the new + * versions from + * [ImportAgentRequest][google.cloud.dialogflow.v2.ImportAgentRequest]. After + * the import, the imported draft agent will be trained automatically (unless + * disabled in agent settings). However, once the import is done, training may + * not be completed yet. Please call + * [TrainAgent][google.cloud.dialogflow.v2.Agents.TrainAgent] and wait for the + * operation it returns in order to train explicitly. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The operation only tracks when importing is complete, not when it is done + * training. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see AgentsClient::importAgentAsync()} . + * + * @example samples/V2/AgentsClient/import_agent.php + * + * @param ImportAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function importAgent(ImportAgentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ImportAgent', $request, $callOptions)->wait(); + } + + /** + * Restores the specified agent from a ZIP file. + * + * Replaces the current agent version with a new one. All the intents and + * entity types in the older version are deleted. After the restore, the + * restored draft agent will be trained automatically (unless disabled in + * agent settings). However, once the restore is done, training may not be + * completed yet. Please call + * [TrainAgent][google.cloud.dialogflow.v2.Agents.TrainAgent] and wait for the + * operation it returns in order to train explicitly. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The operation only tracks when restoring is complete, not when it is done + * training. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see AgentsClient::restoreAgentAsync()} . + * + * @example samples/V2/AgentsClient/restore_agent.php + * + * @param RestoreAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function restoreAgent(RestoreAgentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('RestoreAgent', $request, $callOptions)->wait(); + } + + /** + * Returns the list of agents. + * + * Since there is at most one conversational agent per project, this method is + * useful primarily for listing all agents across projects the caller has + * access to. One can achieve that with a wildcard project collection id "-". + * Refer to [List + * Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections). + * + * The async variant is {@see AgentsClient::searchAgentsAsync()} . + * + * @example samples/V2/AgentsClient/search_agents.php + * + * @param SearchAgentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function searchAgents(SearchAgentsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('SearchAgents', $request, $callOptions); + } + + /** + * Creates/updates the specified agent. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see AgentsClient::setAgentAsync()} . + * + * @example samples/V2/AgentsClient/set_agent.php + * + * @param SetAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Agent + * + * @throws ApiException Thrown if the API call fails. + */ + public function setAgent(SetAgentRequest $request, array $callOptions = []): Agent + { + return $this->startApiCall('SetAgent', $request, $callOptions)->wait(); + } + + /** + * Trains the specified agent. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see AgentsClient::trainAgentAsync()} . + * + * @example samples/V2/AgentsClient/train_agent.php + * + * @param TrainAgentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function trainAgent(TrainAgentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('TrainAgent', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see AgentsClient::getLocationAsync()} . + * + * @example samples/V2/AgentsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see AgentsClient::listLocationsAsync()} . + * + * @example samples/V2/AgentsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/AnswerRecordsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/AnswerRecordsClient.php new file mode 100644 index 0000000..0182ba0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/AnswerRecordsClient.php @@ -0,0 +1,734 @@ + listAnswerRecordsAsync(ListAnswerRecordsRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateAnswerRecordAsync(UpdateAnswerRecordRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class AnswerRecordsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.AnswerRecords'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/answer_records_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/answer_records_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/answer_records_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/answer_records_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * answer_record resource. + * + * @param string $project + * @param string $answerRecord + * + * @return string The formatted answer_record resource. + */ + public static function answerRecordName(string $project, string $answerRecord): string + { + return self::getPathTemplate('answerRecord')->render([ + 'project' => $project, + 'answer_record' => $answerRecord, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a context + * resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted context resource. + */ + public static function contextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('context')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a intent + * resource. + * + * @param string $project + * @param string $intent + * + * @return string The formatted intent resource. + */ + public static function intentName(string $project, string $intent): string + { + return self::getPathTemplate('intent')->render([ + 'project' => $project, + 'intent' => $intent, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a project + * resource. + * + * @param string $project + * + * @return string The formatted project resource. + */ + public static function projectName(string $project): string + { + return self::getPathTemplate('project')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_answer_record resource. + * + * @param string $project + * @param string $answerRecord + * + * @return string The formatted project_answer_record resource. + */ + public static function projectAnswerRecordName(string $project, string $answerRecord): string + { + return self::getPathTemplate('projectAnswerRecord')->render([ + 'project' => $project, + 'answer_record' => $answerRecord, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_environment_user_session resource. + */ + public static function projectEnvironmentUserSessionName(string $project, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectEnvironmentUserSession')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_context resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_environment_user_session_context resource. + */ + public static function projectEnvironmentUserSessionContextName(string $project, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_intent resource. + * + * @param string $project + * @param string $intent + * + * @return string The formatted project_intent resource. + */ + public static function projectIntentName(string $project, string $intent): string + { + return self::getPathTemplate('projectIntent')->render([ + 'project' => $project, + 'intent' => $intent, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_answer_record resource. + * + * @param string $project + * @param string $location + * @param string $answerRecord + * + * @return string The formatted project_location_answer_record resource. + */ + public static function projectLocationAnswerRecordName(string $project, string $location, string $answerRecord): string + { + return self::getPathTemplate('projectLocationAnswerRecord')->render([ + 'project' => $project, + 'location' => $location, + 'answer_record' => $answerRecord, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_location_environment_user_session resource. + */ + public static function projectLocationEnvironmentUserSessionName(string $project, string $location, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSession')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_context resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_location_environment_user_session_context resource. + */ + public static function projectLocationEnvironmentUserSessionContextName(string $project, string $location, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_intent resource. + * + * @param string $project + * @param string $location + * @param string $intent + * + * @return string The formatted project_location_intent resource. + */ + public static function projectLocationIntentName(string $project, string $location, string $intent): string + { + return self::getPathTemplate('projectLocationIntent')->render([ + 'project' => $project, + 'location' => $location, + 'intent' => $intent, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session resource. + * + * @param string $project + * @param string $location + * @param string $session + * + * @return string The formatted project_location_session resource. + */ + public static function projectLocationSessionName(string $project, string $location, string $session): string + { + return self::getPathTemplate('projectLocationSession')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_context resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $context + * + * @return string The formatted project_location_session_context resource. + */ + public static function projectLocationSessionContextName(string $project, string $location, string $session, string $context): string + { + return self::getPathTemplate('projectLocationSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted project_session resource. + */ + public static function projectSessionName(string $project, string $session): string + { + return self::getPathTemplate('projectSession')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_context resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted project_session_context resource. + */ + public static function projectSessionContextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('projectSessionContext')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a session + * resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted session resource. + */ + public static function sessionName(string $project, string $session): string + { + return self::getPathTemplate('session')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - answerRecord: projects/{project}/answerRecords/{answer_record} + * - context: projects/{project}/agent/sessions/{session}/contexts/{context} + * - intent: projects/{project}/agent/intents/{intent} + * - location: projects/{project}/locations/{location} + * - project: projects/{project} + * - projectAgent: projects/{project}/agent + * - projectAnswerRecord: projects/{project}/answerRecords/{answer_record} + * - projectEnvironmentUserSession: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectEnvironmentUserSessionContext: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectIntent: projects/{project}/agent/intents/{intent} + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationAnswerRecord: projects/{project}/locations/{location}/answerRecords/{answer_record} + * - projectLocationEnvironmentUserSession: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectLocationEnvironmentUserSessionContext: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectLocationIntent: projects/{project}/locations/{location}/agent/intents/{intent} + * - projectLocationSession: projects/{project}/locations/{location}/agent/sessions/{session} + * - projectLocationSessionContext: projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context} + * - projectSession: projects/{project}/agent/sessions/{session} + * - projectSessionContext: projects/{project}/agent/sessions/{session}/contexts/{context} + * - session: projects/{project}/agent/sessions/{session} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\AnswerRecordsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new AnswerRecordsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Returns the list of all answer records in the specified project in reverse + * chronological order. + * + * The async variant is {@see AnswerRecordsClient::listAnswerRecordsAsync()} . + * + * @example samples/V2/AnswerRecordsClient/list_answer_records.php + * + * @param ListAnswerRecordsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listAnswerRecords(ListAnswerRecordsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListAnswerRecords', $request, $callOptions); + } + + /** + * Updates the specified answer record. + * + * The async variant is {@see AnswerRecordsClient::updateAnswerRecordAsync()} . + * + * @example samples/V2/AnswerRecordsClient/update_answer_record.php + * + * @param UpdateAnswerRecordRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return AnswerRecord + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateAnswerRecord(UpdateAnswerRecordRequest $request, array $callOptions = []): AnswerRecord + { + return $this->startApiCall('UpdateAnswerRecord', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see AnswerRecordsClient::getLocationAsync()} . + * + * @example samples/V2/AnswerRecordsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see AnswerRecordsClient::listLocationsAsync()} . + * + * @example samples/V2/AnswerRecordsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/ContextsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/ContextsClient.php new file mode 100644 index 0000000..eed6fbd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/ContextsClient.php @@ -0,0 +1,646 @@ + createContextAsync(CreateContextRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteAllContextsAsync(DeleteAllContextsRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteContextAsync(DeleteContextRequest $request, array $optionalArgs = []) + * @method PromiseInterface getContextAsync(GetContextRequest $request, array $optionalArgs = []) + * @method PromiseInterface listContextsAsync(ListContextsRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateContextAsync(UpdateContextRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class ContextsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Contexts'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/contexts_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/contexts_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/contexts_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/contexts_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a context + * resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted context resource. + */ + public static function contextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('context')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_environment_user_session resource. + */ + public static function projectEnvironmentUserSessionName(string $project, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectEnvironmentUserSession')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_context resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_environment_user_session_context resource. + */ + public static function projectEnvironmentUserSessionContextName(string $project, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_location_environment_user_session resource. + */ + public static function projectLocationEnvironmentUserSessionName(string $project, string $location, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSession')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_context resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_location_environment_user_session_context resource. + */ + public static function projectLocationEnvironmentUserSessionContextName(string $project, string $location, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session resource. + * + * @param string $project + * @param string $location + * @param string $session + * + * @return string The formatted project_location_session resource. + */ + public static function projectLocationSessionName(string $project, string $location, string $session): string + { + return self::getPathTemplate('projectLocationSession')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_context resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $context + * + * @return string The formatted project_location_session_context resource. + */ + public static function projectLocationSessionContextName(string $project, string $location, string $session, string $context): string + { + return self::getPathTemplate('projectLocationSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted project_session resource. + */ + public static function projectSessionName(string $project, string $session): string + { + return self::getPathTemplate('projectSession')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_context resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted project_session_context resource. + */ + public static function projectSessionContextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('projectSessionContext')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a session + * resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted session resource. + */ + public static function sessionName(string $project, string $session): string + { + return self::getPathTemplate('session')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - context: projects/{project}/agent/sessions/{session}/contexts/{context} + * - projectEnvironmentUserSession: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectEnvironmentUserSessionContext: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectLocationEnvironmentUserSession: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectLocationEnvironmentUserSessionContext: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectLocationSession: projects/{project}/locations/{location}/agent/sessions/{session} + * - projectLocationSessionContext: projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context} + * - projectSession: projects/{project}/agent/sessions/{session} + * - projectSessionContext: projects/{project}/agent/sessions/{session}/contexts/{context} + * - session: projects/{project}/agent/sessions/{session} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\ContextsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new ContextsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a context. + * + * If the specified context already exists, overrides the context. + * + * The async variant is {@see ContextsClient::createContextAsync()} . + * + * @example samples/V2/ContextsClient/create_context.php + * + * @param CreateContextRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Context + * + * @throws ApiException Thrown if the API call fails. + */ + public function createContext(CreateContextRequest $request, array $callOptions = []): Context + { + return $this->startApiCall('CreateContext', $request, $callOptions)->wait(); + } + + /** + * Deletes all active contexts in the specified session. + * + * The async variant is {@see ContextsClient::deleteAllContextsAsync()} . + * + * @example samples/V2/ContextsClient/delete_all_contexts.php + * + * @param DeleteAllContextsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteAllContexts(DeleteAllContextsRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteAllContexts', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified context. + * + * The async variant is {@see ContextsClient::deleteContextAsync()} . + * + * @example samples/V2/ContextsClient/delete_context.php + * + * @param DeleteContextRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteContext(DeleteContextRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteContext', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified context. + * + * The async variant is {@see ContextsClient::getContextAsync()} . + * + * @example samples/V2/ContextsClient/get_context.php + * + * @param GetContextRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Context + * + * @throws ApiException Thrown if the API call fails. + */ + public function getContext(GetContextRequest $request, array $callOptions = []): Context + { + return $this->startApiCall('GetContext', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all contexts in the specified session. + * + * The async variant is {@see ContextsClient::listContextsAsync()} . + * + * @example samples/V2/ContextsClient/list_contexts.php + * + * @param ListContextsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listContexts(ListContextsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListContexts', $request, $callOptions); + } + + /** + * Updates the specified context. + * + * The async variant is {@see ContextsClient::updateContextAsync()} . + * + * @example samples/V2/ContextsClient/update_context.php + * + * @param UpdateContextRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Context + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateContext(UpdateContextRequest $request, array $callOptions = []): Context + { + return $this->startApiCall('UpdateContext', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see ContextsClient::getLocationAsync()} . + * + * @example samples/V2/ContextsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see ContextsClient::listLocationsAsync()} . + * + * @example samples/V2/ContextsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/ConversationDatasetsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationDatasetsClient.php new file mode 100644 index 0000000..3e98f2d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationDatasetsClient.php @@ -0,0 +1,540 @@ + createConversationDatasetAsync(CreateConversationDatasetRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteConversationDatasetAsync(DeleteConversationDatasetRequest $request, array $optionalArgs = []) + * @method PromiseInterface getConversationDatasetAsync(GetConversationDatasetRequest $request, array $optionalArgs = []) + * @method PromiseInterface importConversationDataAsync(ImportConversationDataRequest $request, array $optionalArgs = []) + * @method PromiseInterface listConversationDatasetsAsync(ListConversationDatasetsRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class ConversationDatasetsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.ConversationDatasets'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/conversation_datasets_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/conversation_datasets_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/conversation_datasets_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/conversation_datasets_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_dataset resource. + * + * @param string $project + * @param string $location + * @param string $conversationDataset + * + * @return string The formatted conversation_dataset resource. + */ + public static function conversationDatasetName(string $project, string $location, string $conversationDataset): string + { + return self::getPathTemplate('conversationDataset')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_dataset' => $conversationDataset, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - conversationDataset: projects/{project}/locations/{location}/conversationDatasets/{conversation_dataset} + * - location: projects/{project}/locations/{location} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\ConversationDatasetsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new ConversationDatasetsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a new conversation dataset. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [CreateConversationDatasetOperationMetadata][google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata] + * - `response`: + * [ConversationDataset][google.cloud.dialogflow.v2.ConversationDataset] + * + * The async variant is + * {@see ConversationDatasetsClient::createConversationDatasetAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/create_conversation_dataset.php + * + * @param CreateConversationDatasetRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function createConversationDataset(CreateConversationDatasetRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('CreateConversationDataset', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified conversation dataset. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [DeleteConversationDatasetOperationMetadata][google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata] + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The async variant is + * {@see ConversationDatasetsClient::deleteConversationDatasetAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/delete_conversation_dataset.php + * + * @param DeleteConversationDatasetRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteConversationDataset(DeleteConversationDatasetRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('DeleteConversationDataset', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified conversation dataset. + * + * The async variant is + * {@see ConversationDatasetsClient::getConversationDatasetAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/get_conversation_dataset.php + * + * @param GetConversationDatasetRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ConversationDataset + * + * @throws ApiException Thrown if the API call fails. + */ + public function getConversationDataset(GetConversationDatasetRequest $request, array $callOptions = []): ConversationDataset + { + return $this->startApiCall('GetConversationDataset', $request, $callOptions)->wait(); + } + + /** + * Import data into the specified conversation dataset. Note that it + * is not allowed to import data to a conversation dataset that + * already has data in it. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [ImportConversationDataOperationMetadata][google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata] + * - `response`: + * [ImportConversationDataOperationResponse][google.cloud.dialogflow.v2.ImportConversationDataOperationResponse] + * + * The async variant is + * {@see ConversationDatasetsClient::importConversationDataAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/import_conversation_data.php + * + * @param ImportConversationDataRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function importConversationData(ImportConversationDataRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ImportConversationData', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all conversation datasets in the specified + * project and location. + * + * The async variant is + * {@see ConversationDatasetsClient::listConversationDatasetsAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/list_conversation_datasets.php + * + * @param ListConversationDatasetsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listConversationDatasets(ListConversationDatasetsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListConversationDatasets', $request, $callOptions); + } + + /** + * Gets information about a location. + * + * The async variant is {@see ConversationDatasetsClient::getLocationAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see ConversationDatasetsClient::listLocationsAsync()} . + * + * @example samples/V2/ConversationDatasetsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/ConversationModelsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationModelsClient.php new file mode 100644 index 0000000..7addb5b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationModelsClient.php @@ -0,0 +1,830 @@ + createConversationModelAsync(CreateConversationModelRequest $request, array $optionalArgs = []) + * @method PromiseInterface createConversationModelEvaluationAsync(CreateConversationModelEvaluationRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteConversationModelAsync(DeleteConversationModelRequest $request, array $optionalArgs = []) + * @method PromiseInterface deployConversationModelAsync(DeployConversationModelRequest $request, array $optionalArgs = []) + * @method PromiseInterface getConversationModelAsync(GetConversationModelRequest $request, array $optionalArgs = []) + * @method PromiseInterface getConversationModelEvaluationAsync(GetConversationModelEvaluationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listConversationModelEvaluationsAsync(ListConversationModelEvaluationsRequest $request, array $optionalArgs = []) + * @method PromiseInterface listConversationModelsAsync(ListConversationModelsRequest $request, array $optionalArgs = []) + * @method PromiseInterface undeployConversationModelAsync(UndeployConversationModelRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class ConversationModelsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.ConversationModels'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/conversation_models_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/conversation_models_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/conversation_models_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/conversation_models_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_dataset resource. + * + * @param string $project + * @param string $location + * @param string $conversationDataset + * + * @return string The formatted conversation_dataset resource. + */ + public static function conversationDatasetName(string $project, string $location, string $conversationDataset): string + { + return self::getPathTemplate('conversationDataset')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_dataset' => $conversationDataset, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_model resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * + * @return string The formatted conversation_model resource. + */ + public static function conversationModelName(string $project, string $location, string $conversationModel): string + { + return self::getPathTemplate('conversationModel')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_model_evaluation resource. + * + * @param string $project + * @param string $conversationModel + * @param string $evaluation + * + * @return string The formatted conversation_model_evaluation resource. + */ + public static function conversationModelEvaluationName(string $project, string $conversationModel, string $evaluation): string + { + return self::getPathTemplate('conversationModelEvaluation')->render([ + 'project' => $project, + 'conversation_model' => $conversationModel, + 'evaluation' => $evaluation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a document + * resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted document resource. + */ + public static function documentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('document')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_model resource. + * + * @param string $project + * @param string $conversationModel + * + * @return string The formatted project_conversation_model resource. + */ + public static function projectConversationModelName(string $project, string $conversationModel): string + { + return self::getPathTemplate('projectConversationModel')->render([ + 'project' => $project, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_model_evaluation resource. + * + * @param string $project + * @param string $conversationModel + * @param string $evaluation + * + * @return string The formatted project_conversation_model_evaluation resource. + */ + public static function projectConversationModelEvaluationName(string $project, string $conversationModel, string $evaluation): string + { + return self::getPathTemplate('projectConversationModelEvaluation')->render([ + 'project' => $project, + 'conversation_model' => $conversationModel, + 'evaluation' => $evaluation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base_document resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_knowledge_base_document resource. + */ + public static function projectKnowledgeBaseDocumentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectKnowledgeBaseDocument')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_model resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * + * @return string The formatted project_location_conversation_model resource. + */ + public static function projectLocationConversationModelName(string $project, string $location, string $conversationModel): string + { + return self::getPathTemplate('projectLocationConversationModel')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_model_evaluation resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * @param string $evaluation + * + * @return string The formatted project_location_conversation_model_evaluation resource. + */ + public static function projectLocationConversationModelEvaluationName(string $project, string $location, string $conversationModel, string $evaluation): string + { + return self::getPathTemplate('projectLocationConversationModelEvaluation')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + 'evaluation' => $evaluation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base_document resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_location_knowledge_base_document resource. + */ + public static function projectLocationKnowledgeBaseDocumentName(string $project, string $location, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectLocationKnowledgeBaseDocument')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - conversationDataset: projects/{project}/locations/{location}/conversationDatasets/{conversation_dataset} + * - conversationModel: projects/{project}/locations/{location}/conversationModels/{conversation_model} + * - conversationModelEvaluation: projects/{project}/conversationModels/{conversation_model}/evaluations/{evaluation} + * - document: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - projectConversationModel: projects/{project}/conversationModels/{conversation_model} + * - projectConversationModelEvaluation: projects/{project}/conversationModels/{conversation_model}/evaluations/{evaluation} + * - projectKnowledgeBaseDocument: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - projectLocationConversationModel: projects/{project}/locations/{location}/conversationModels/{conversation_model} + * - projectLocationConversationModelEvaluation: projects/{project}/locations/{location}/conversationModels/{conversation_model}/evaluations/{evaluation} + * - projectLocationKnowledgeBaseDocument: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\ConversationModelsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new ConversationModelsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a model. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [CreateConversationModelOperationMetadata][google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata] + * - `response`: + * [ConversationModel][google.cloud.dialogflow.v2.ConversationModel] + * + * The async variant is + * {@see ConversationModelsClient::createConversationModelAsync()} . + * + * @example samples/V2/ConversationModelsClient/create_conversation_model.php + * + * @param CreateConversationModelRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function createConversationModel(CreateConversationModelRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('CreateConversationModel', $request, $callOptions)->wait(); + } + + /** + * Creates evaluation of a conversation model. + * + * The async variant is + * {@see ConversationModelsClient::createConversationModelEvaluationAsync()} . + * + * @example samples/V2/ConversationModelsClient/create_conversation_model_evaluation.php + * + * @param CreateConversationModelEvaluationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function createConversationModelEvaluation(CreateConversationModelEvaluationRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('CreateConversationModelEvaluation', $request, $callOptions)->wait(); + } + + /** + * Deletes a model. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [DeleteConversationModelOperationMetadata][google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata] + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The async variant is + * {@see ConversationModelsClient::deleteConversationModelAsync()} . + * + * @example samples/V2/ConversationModelsClient/delete_conversation_model.php + * + * @param DeleteConversationModelRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteConversationModel(DeleteConversationModelRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('DeleteConversationModel', $request, $callOptions)->wait(); + } + + /** + * Deploys a model. If a model is already deployed, deploying it + * has no effect. A model can only serve prediction requests after it gets + * deployed. For article suggestion, custom model will not be used unless + * it is deployed. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [DeployConversationModelOperationMetadata][google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata] + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The async variant is + * {@see ConversationModelsClient::deployConversationModelAsync()} . + * + * @example samples/V2/ConversationModelsClient/deploy_conversation_model.php + * + * @param DeployConversationModelRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function deployConversationModel(DeployConversationModelRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('DeployConversationModel', $request, $callOptions)->wait(); + } + + /** + * Gets conversation model. + * + * The async variant is + * {@see ConversationModelsClient::getConversationModelAsync()} . + * + * @example samples/V2/ConversationModelsClient/get_conversation_model.php + * + * @param GetConversationModelRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ConversationModel + * + * @throws ApiException Thrown if the API call fails. + */ + public function getConversationModel(GetConversationModelRequest $request, array $callOptions = []): ConversationModel + { + return $this->startApiCall('GetConversationModel', $request, $callOptions)->wait(); + } + + /** + * Gets an evaluation of conversation model. + * + * The async variant is + * {@see ConversationModelsClient::getConversationModelEvaluationAsync()} . + * + * @example samples/V2/ConversationModelsClient/get_conversation_model_evaluation.php + * + * @param GetConversationModelEvaluationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ConversationModelEvaluation + * + * @throws ApiException Thrown if the API call fails. + */ + public function getConversationModelEvaluation(GetConversationModelEvaluationRequest $request, array $callOptions = []): ConversationModelEvaluation + { + return $this->startApiCall('GetConversationModelEvaluation', $request, $callOptions)->wait(); + } + + /** + * Lists evaluations of a conversation model. + * + * The async variant is + * {@see ConversationModelsClient::listConversationModelEvaluationsAsync()} . + * + * @example samples/V2/ConversationModelsClient/list_conversation_model_evaluations.php + * + * @param ListConversationModelEvaluationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listConversationModelEvaluations(ListConversationModelEvaluationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListConversationModelEvaluations', $request, $callOptions); + } + + /** + * Lists conversation models. + * + * The async variant is + * {@see ConversationModelsClient::listConversationModelsAsync()} . + * + * @example samples/V2/ConversationModelsClient/list_conversation_models.php + * + * @param ListConversationModelsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listConversationModels(ListConversationModelsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListConversationModels', $request, $callOptions); + } + + /** + * Undeploys a model. If the model is not deployed this method has no effect. + * If the model is currently being used: + * - For article suggestion, article suggestion will fallback to the default + * model if model is undeployed. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [UndeployConversationModelOperationMetadata][google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata] + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The async variant is + * {@see ConversationModelsClient::undeployConversationModelAsync()} . + * + * @example samples/V2/ConversationModelsClient/undeploy_conversation_model.php + * + * @param UndeployConversationModelRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function undeployConversationModel(UndeployConversationModelRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('UndeployConversationModel', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see ConversationModelsClient::getLocationAsync()} . + * + * @example samples/V2/ConversationModelsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see ConversationModelsClient::listLocationsAsync()} . + * + * @example samples/V2/ConversationModelsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/ConversationProfilesClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationProfilesClient.php new file mode 100644 index 0000000..0df3846 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationProfilesClient.php @@ -0,0 +1,941 @@ + clearSuggestionFeatureConfigAsync(ClearSuggestionFeatureConfigRequest $request, array $optionalArgs = []) + * @method PromiseInterface createConversationProfileAsync(CreateConversationProfileRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteConversationProfileAsync(DeleteConversationProfileRequest $request, array $optionalArgs = []) + * @method PromiseInterface getConversationProfileAsync(GetConversationProfileRequest $request, array $optionalArgs = []) + * @method PromiseInterface listConversationProfilesAsync(ListConversationProfilesRequest $request, array $optionalArgs = []) + * @method PromiseInterface setSuggestionFeatureConfigAsync(SetSuggestionFeatureConfigRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateConversationProfileAsync(UpdateConversationProfileRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class ConversationProfilesClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.ConversationProfiles'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/conversation_profiles_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/conversation_profiles_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/conversation_profiles_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/conversation_profiles_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * cx_security_settings resource. + * + * @param string $project + * @param string $location + * @param string $securitySettings + * + * @return string The formatted cx_security_settings resource. + */ + public static function cXSecuritySettingsName(string $project, string $location, string $securitySettings): string + { + return self::getPathTemplate('cXSecuritySettings')->render([ + 'project' => $project, + 'location' => $location, + 'security_settings' => $securitySettings, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_model resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * + * @return string The formatted conversation_model resource. + */ + public static function conversationModelName(string $project, string $location, string $conversationModel): string + { + return self::getPathTemplate('conversationModel')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_profile resource. + * + * @param string $project + * @param string $conversationProfile + * + * @return string The formatted conversation_profile resource. + */ + public static function conversationProfileName(string $project, string $conversationProfile): string + { + return self::getPathTemplate('conversationProfile')->render([ + 'project' => $project, + 'conversation_profile' => $conversationProfile, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a document + * resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted document resource. + */ + public static function documentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('document')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a generator + * resource. + * + * @param string $project + * @param string $location + * @param string $generator + * + * @return string The formatted generator resource. + */ + public static function generatorName(string $project, string $location, string $generator): string + { + return self::getPathTemplate('generator')->render([ + 'project' => $project, + 'location' => $location, + 'generator' => $generator, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted knowledge_base resource. + */ + public static function knowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('knowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a phrase_set + * resource. + * + * @param string $project + * @param string $location + * @param string $phraseSet + * + * @return string The formatted phrase_set resource. + */ + public static function phraseSetName(string $project, string $location, string $phraseSet): string + { + return self::getPathTemplate('phraseSet')->render([ + 'project' => $project, + 'location' => $location, + 'phrase_set' => $phraseSet, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a project + * resource. + * + * @param string $project + * + * @return string The formatted project resource. + */ + public static function projectName(string $project): string + { + return self::getPathTemplate('project')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_model resource. + * + * @param string $project + * @param string $conversationModel + * + * @return string The formatted project_conversation_model resource. + */ + public static function projectConversationModelName(string $project, string $conversationModel): string + { + return self::getPathTemplate('projectConversationModel')->render([ + 'project' => $project, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_profile resource. + * + * @param string $project + * @param string $conversationProfile + * + * @return string The formatted project_conversation_profile resource. + */ + public static function projectConversationProfileName(string $project, string $conversationProfile): string + { + return self::getPathTemplate('projectConversationProfile')->render([ + 'project' => $project, + 'conversation_profile' => $conversationProfile, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted project_knowledge_base resource. + */ + public static function projectKnowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('projectKnowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base_document resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_knowledge_base_document resource. + */ + public static function projectKnowledgeBaseDocumentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectKnowledgeBaseDocument')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_model resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * + * @return string The formatted project_location_conversation_model resource. + */ + public static function projectLocationConversationModelName(string $project, string $location, string $conversationModel): string + { + return self::getPathTemplate('projectLocationConversationModel')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_profile resource. + * + * @param string $project + * @param string $location + * @param string $conversationProfile + * + * @return string The formatted project_location_conversation_profile resource. + */ + public static function projectLocationConversationProfileName(string $project, string $location, string $conversationProfile): string + { + return self::getPathTemplate('projectLocationConversationProfile')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_profile' => $conversationProfile, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * + * @return string The formatted project_location_knowledge_base resource. + */ + public static function projectLocationKnowledgeBaseName(string $project, string $location, string $knowledgeBase): string + { + return self::getPathTemplate('projectLocationKnowledgeBase')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base_document resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_location_knowledge_base_document resource. + */ + public static function projectLocationKnowledgeBaseDocumentName(string $project, string $location, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectLocationKnowledgeBaseDocument')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - cXSecuritySettings: projects/{project}/locations/{location}/securitySettings/{security_settings} + * - conversationModel: projects/{project}/locations/{location}/conversationModels/{conversation_model} + * - conversationProfile: projects/{project}/conversationProfiles/{conversation_profile} + * - document: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - generator: projects/{project}/locations/{location}/generators/{generator} + * - knowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - location: projects/{project}/locations/{location} + * - phraseSet: projects/{project}/locations/{location}/phraseSets/{phrase_set} + * - project: projects/{project} + * - projectAgent: projects/{project}/agent + * - projectConversationModel: projects/{project}/conversationModels/{conversation_model} + * - projectConversationProfile: projects/{project}/conversationProfiles/{conversation_profile} + * - projectKnowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - projectKnowledgeBaseDocument: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationConversationModel: projects/{project}/locations/{location}/conversationModels/{conversation_model} + * - projectLocationConversationProfile: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile} + * - projectLocationKnowledgeBase: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base} + * - projectLocationKnowledgeBaseDocument: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\ConversationProfilesClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new ConversationProfilesClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Clears a suggestion feature from a conversation profile for the given + * participant role. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [ClearSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2.ClearSuggestionFeatureConfigOperationMetadata] + * - `response`: + * [ConversationProfile][google.cloud.dialogflow.v2.ConversationProfile] + * + * The async variant is + * {@see ConversationProfilesClient::clearSuggestionFeatureConfigAsync()} . + * + * @example samples/V2/ConversationProfilesClient/clear_suggestion_feature_config.php + * + * @param ClearSuggestionFeatureConfigRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function clearSuggestionFeatureConfig(ClearSuggestionFeatureConfigRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ClearSuggestionFeatureConfig', $request, $callOptions)->wait(); + } + + /** + * Creates a conversation profile in the specified project. + * + * [ConversationProfile.create_time][google.cloud.dialogflow.v2.ConversationProfile.create_time] + * and + * [ConversationProfile.update_time][google.cloud.dialogflow.v2.ConversationProfile.update_time] + * aren't populated in the response. You can retrieve them via + * [GetConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile] + * API. + * + * The async variant is + * {@see ConversationProfilesClient::createConversationProfileAsync()} . + * + * @example samples/V2/ConversationProfilesClient/create_conversation_profile.php + * + * @param CreateConversationProfileRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ConversationProfile + * + * @throws ApiException Thrown if the API call fails. + */ + public function createConversationProfile(CreateConversationProfileRequest $request, array $callOptions = []): ConversationProfile + { + return $this->startApiCall('CreateConversationProfile', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified conversation profile. + * + * The async variant is + * {@see ConversationProfilesClient::deleteConversationProfileAsync()} . + * + * @example samples/V2/ConversationProfilesClient/delete_conversation_profile.php + * + * @param DeleteConversationProfileRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteConversationProfile(DeleteConversationProfileRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteConversationProfile', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified conversation profile. + * + * The async variant is + * {@see ConversationProfilesClient::getConversationProfileAsync()} . + * + * @example samples/V2/ConversationProfilesClient/get_conversation_profile.php + * + * @param GetConversationProfileRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ConversationProfile + * + * @throws ApiException Thrown if the API call fails. + */ + public function getConversationProfile(GetConversationProfileRequest $request, array $callOptions = []): ConversationProfile + { + return $this->startApiCall('GetConversationProfile', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all conversation profiles in the specified project. + * + * The async variant is + * {@see ConversationProfilesClient::listConversationProfilesAsync()} . + * + * @example samples/V2/ConversationProfilesClient/list_conversation_profiles.php + * + * @param ListConversationProfilesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listConversationProfiles(ListConversationProfilesRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListConversationProfiles', $request, $callOptions); + } + + /** + * Adds or updates a suggestion feature in a conversation profile. + * If the conversation profile contains the type of suggestion feature for + * the participant role, it will update it. Otherwise it will insert the + * suggestion feature. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [SetSuggestionFeatureConfigOperationMetadata][google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata] + * - `response`: + * [ConversationProfile][google.cloud.dialogflow.v2.ConversationProfile] + * + * If a long running operation to add or update suggestion feature + * config for the same conversation profile, participant role and suggestion + * feature type exists, please cancel the existing long running operation + * before sending such request, otherwise the request will be rejected. + * + * The async variant is + * {@see ConversationProfilesClient::setSuggestionFeatureConfigAsync()} . + * + * @example samples/V2/ConversationProfilesClient/set_suggestion_feature_config.php + * + * @param SetSuggestionFeatureConfigRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function setSuggestionFeatureConfig(SetSuggestionFeatureConfigRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('SetSuggestionFeatureConfig', $request, $callOptions)->wait(); + } + + /** + * Updates the specified conversation profile. + * + * [ConversationProfile.create_time][google.cloud.dialogflow.v2.ConversationProfile.create_time] + * and + * [ConversationProfile.update_time][google.cloud.dialogflow.v2.ConversationProfile.update_time] + * aren't populated in the response. You can retrieve them via + * [GetConversationProfile][google.cloud.dialogflow.v2.ConversationProfiles.GetConversationProfile] + * API. + * + * The async variant is + * {@see ConversationProfilesClient::updateConversationProfileAsync()} . + * + * @example samples/V2/ConversationProfilesClient/update_conversation_profile.php + * + * @param UpdateConversationProfileRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return ConversationProfile + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateConversationProfile(UpdateConversationProfileRequest $request, array $callOptions = []): ConversationProfile + { + return $this->startApiCall('UpdateConversationProfile', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see ConversationProfilesClient::getLocationAsync()} . + * + * @example samples/V2/ConversationProfilesClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see ConversationProfilesClient::listLocationsAsync()} . + * + * @example samples/V2/ConversationProfilesClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/ConversationsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationsClient.php new file mode 100644 index 0000000..f3a966a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/ConversationsClient.php @@ -0,0 +1,1175 @@ + completeConversationAsync(CompleteConversationRequest $request, array $optionalArgs = []) + * @method PromiseInterface createConversationAsync(CreateConversationRequest $request, array $optionalArgs = []) + * @method PromiseInterface generateStatelessSuggestionAsync(GenerateStatelessSuggestionRequest $request, array $optionalArgs = []) + * @method PromiseInterface generateStatelessSummaryAsync(GenerateStatelessSummaryRequest $request, array $optionalArgs = []) + * @method PromiseInterface generateSuggestionsAsync(GenerateSuggestionsRequest $request, array $optionalArgs = []) + * @method PromiseInterface getConversationAsync(GetConversationRequest $request, array $optionalArgs = []) + * @method PromiseInterface ingestContextReferencesAsync(IngestContextReferencesRequest $request, array $optionalArgs = []) + * @method PromiseInterface listConversationsAsync(ListConversationsRequest $request, array $optionalArgs = []) + * @method PromiseInterface listMessagesAsync(ListMessagesRequest $request, array $optionalArgs = []) + * @method PromiseInterface searchKnowledgeAsync(SearchKnowledgeRequest $request, array $optionalArgs = []) + * @method PromiseInterface suggestConversationSummaryAsync(SuggestConversationSummaryRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class ConversationsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Conversations'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/conversations_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/conversations_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/conversations_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/conversations_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * cx_security_settings resource. + * + * @param string $project + * @param string $location + * @param string $securitySettings + * + * @return string The formatted cx_security_settings resource. + */ + public static function cXSecuritySettingsName(string $project, string $location, string $securitySettings): string + { + return self::getPathTemplate('cXSecuritySettings')->render([ + 'project' => $project, + 'location' => $location, + 'security_settings' => $securitySettings, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a conversation + * resource. + * + * @param string $project + * @param string $conversation + * + * @return string The formatted conversation resource. + */ + public static function conversationName(string $project, string $conversation): string + { + return self::getPathTemplate('conversation')->render([ + 'project' => $project, + 'conversation' => $conversation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_model resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * + * @return string The formatted conversation_model resource. + */ + public static function conversationModelName(string $project, string $location, string $conversationModel): string + { + return self::getPathTemplate('conversationModel')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * conversation_profile resource. + * + * @param string $project + * @param string $conversationProfile + * + * @return string The formatted conversation_profile resource. + */ + public static function conversationProfileName(string $project, string $conversationProfile): string + { + return self::getPathTemplate('conversationProfile')->render([ + 'project' => $project, + 'conversation_profile' => $conversationProfile, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a data_store + * resource. + * + * @param string $project + * @param string $location + * @param string $collection + * @param string $dataStore + * + * @return string The formatted data_store resource. + */ + public static function dataStoreName(string $project, string $location, string $collection, string $dataStore): string + { + return self::getPathTemplate('dataStore')->render([ + 'project' => $project, + 'location' => $location, + 'collection' => $collection, + 'data_store' => $dataStore, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a document + * resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted document resource. + */ + public static function documentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('document')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a generator + * resource. + * + * @param string $project + * @param string $location + * @param string $generator + * + * @return string The formatted generator resource. + */ + public static function generatorName(string $project, string $location, string $generator): string + { + return self::getPathTemplate('generator')->render([ + 'project' => $project, + 'location' => $location, + 'generator' => $generator, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted knowledge_base resource. + */ + public static function knowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('knowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a message + * resource. + * + * @param string $project + * @param string $conversation + * @param string $message + * + * @return string The formatted message resource. + */ + public static function messageName(string $project, string $conversation, string $message): string + { + return self::getPathTemplate('message')->render([ + 'project' => $project, + 'conversation' => $conversation, + 'message' => $message, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a phrase_set + * resource. + * + * @param string $project + * @param string $location + * @param string $phraseSet + * + * @return string The formatted phrase_set resource. + */ + public static function phraseSetName(string $project, string $location, string $phraseSet): string + { + return self::getPathTemplate('phraseSet')->render([ + 'project' => $project, + 'location' => $location, + 'phrase_set' => $phraseSet, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a project + * resource. + * + * @param string $project + * + * @return string The formatted project resource. + */ + public static function projectName(string $project): string + { + return self::getPathTemplate('project')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation resource. + * + * @param string $project + * @param string $conversation + * + * @return string The formatted project_conversation resource. + */ + public static function projectConversationName(string $project, string $conversation): string + { + return self::getPathTemplate('projectConversation')->render([ + 'project' => $project, + 'conversation' => $conversation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_message resource. + * + * @param string $project + * @param string $conversation + * @param string $message + * + * @return string The formatted project_conversation_message resource. + */ + public static function projectConversationMessageName(string $project, string $conversation, string $message): string + { + return self::getPathTemplate('projectConversationMessage')->render([ + 'project' => $project, + 'conversation' => $conversation, + 'message' => $message, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_model resource. + * + * @param string $project + * @param string $conversationModel + * + * @return string The formatted project_conversation_model resource. + */ + public static function projectConversationModelName(string $project, string $conversationModel): string + { + return self::getPathTemplate('projectConversationModel')->render([ + 'project' => $project, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_profile resource. + * + * @param string $project + * @param string $conversationProfile + * + * @return string The formatted project_conversation_profile resource. + */ + public static function projectConversationProfileName(string $project, string $conversationProfile): string + { + return self::getPathTemplate('projectConversationProfile')->render([ + 'project' => $project, + 'conversation_profile' => $conversationProfile, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted project_knowledge_base resource. + */ + public static function projectKnowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('projectKnowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base_document resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_knowledge_base_document resource. + */ + public static function projectKnowledgeBaseDocumentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectKnowledgeBaseDocument')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_collection_data_store resource. + * + * @param string $project + * @param string $location + * @param string $collection + * @param string $dataStore + * + * @return string The formatted project_location_collection_data_store resource. + */ + public static function projectLocationCollectionDataStoreName(string $project, string $location, string $collection, string $dataStore): string + { + return self::getPathTemplate('projectLocationCollectionDataStore')->render([ + 'project' => $project, + 'location' => $location, + 'collection' => $collection, + 'data_store' => $dataStore, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation resource. + * + * @param string $project + * @param string $location + * @param string $conversation + * + * @return string The formatted project_location_conversation resource. + */ + public static function projectLocationConversationName(string $project, string $location, string $conversation): string + { + return self::getPathTemplate('projectLocationConversation')->render([ + 'project' => $project, + 'location' => $location, + 'conversation' => $conversation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_message resource. + * + * @param string $project + * @param string $location + * @param string $conversation + * @param string $message + * + * @return string The formatted project_location_conversation_message resource. + */ + public static function projectLocationConversationMessageName(string $project, string $location, string $conversation, string $message): string + { + return self::getPathTemplate('projectLocationConversationMessage')->render([ + 'project' => $project, + 'location' => $location, + 'conversation' => $conversation, + 'message' => $message, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_model resource. + * + * @param string $project + * @param string $location + * @param string $conversationModel + * + * @return string The formatted project_location_conversation_model resource. + */ + public static function projectLocationConversationModelName(string $project, string $location, string $conversationModel): string + { + return self::getPathTemplate('projectLocationConversationModel')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_model' => $conversationModel, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_profile resource. + * + * @param string $project + * @param string $location + * @param string $conversationProfile + * + * @return string The formatted project_location_conversation_profile resource. + */ + public static function projectLocationConversationProfileName(string $project, string $location, string $conversationProfile): string + { + return self::getPathTemplate('projectLocationConversationProfile')->render([ + 'project' => $project, + 'location' => $location, + 'conversation_profile' => $conversationProfile, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_data_store resource. + * + * @param string $project + * @param string $location + * @param string $dataStore + * + * @return string The formatted project_location_data_store resource. + */ + public static function projectLocationDataStoreName(string $project, string $location, string $dataStore): string + { + return self::getPathTemplate('projectLocationDataStore')->render([ + 'project' => $project, + 'location' => $location, + 'data_store' => $dataStore, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * + * @return string The formatted project_location_knowledge_base resource. + */ + public static function projectLocationKnowledgeBaseName(string $project, string $location, string $knowledgeBase): string + { + return self::getPathTemplate('projectLocationKnowledgeBase')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base_document resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_location_knowledge_base_document resource. + */ + public static function projectLocationKnowledgeBaseDocumentName(string $project, string $location, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectLocationKnowledgeBaseDocument')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - cXSecuritySettings: projects/{project}/locations/{location}/securitySettings/{security_settings} + * - conversation: projects/{project}/conversations/{conversation} + * - conversationModel: projects/{project}/locations/{location}/conversationModels/{conversation_model} + * - conversationProfile: projects/{project}/conversationProfiles/{conversation_profile} + * - dataStore: projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store} + * - document: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - generator: projects/{project}/locations/{location}/generators/{generator} + * - knowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - location: projects/{project}/locations/{location} + * - message: projects/{project}/conversations/{conversation}/messages/{message} + * - phraseSet: projects/{project}/locations/{location}/phraseSets/{phrase_set} + * - project: projects/{project} + * - projectAgent: projects/{project}/agent + * - projectConversation: projects/{project}/conversations/{conversation} + * - projectConversationMessage: projects/{project}/conversations/{conversation}/messages/{message} + * - projectConversationModel: projects/{project}/conversationModels/{conversation_model} + * - projectConversationProfile: projects/{project}/conversationProfiles/{conversation_profile} + * - projectKnowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - projectKnowledgeBaseDocument: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationCollectionDataStore: projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store} + * - projectLocationConversation: projects/{project}/locations/{location}/conversations/{conversation} + * - projectLocationConversationMessage: projects/{project}/locations/{location}/conversations/{conversation}/messages/{message} + * - projectLocationConversationModel: projects/{project}/locations/{location}/conversationModels/{conversation_model} + * - projectLocationConversationProfile: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile} + * - projectLocationDataStore: projects/{project}/locations/{location}/dataStores/{data_store} + * - projectLocationKnowledgeBase: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base} + * - projectLocationKnowledgeBaseDocument: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\ConversationsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new ConversationsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Completes the specified conversation. Finished conversations are purged + * from the database after 30 days. + * + * The async variant is {@see ConversationsClient::completeConversationAsync()} . + * + * @example samples/V2/ConversationsClient/complete_conversation.php + * + * @param CompleteConversationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Conversation + * + * @throws ApiException Thrown if the API call fails. + */ + public function completeConversation(CompleteConversationRequest $request, array $callOptions = []): Conversation + { + return $this->startApiCall('CompleteConversation', $request, $callOptions)->wait(); + } + + /** + * Creates a new conversation. Conversations are auto-completed after 24 + * hours. + * + * Conversation Lifecycle: + * There are two stages during a conversation: Automated Agent Stage and + * Assist Stage. + * + * For Automated Agent Stage, there will be a dialogflow agent responding to + * user queries. + * + * For Assist Stage, there's no dialogflow agent responding to user queries. + * But we will provide suggestions which are generated from conversation. + * + * If + * [Conversation.conversation_profile][google.cloud.dialogflow.v2.Conversation.conversation_profile] + * is configured for a dialogflow agent, conversation will start from + * `Automated Agent Stage`, otherwise, it will start from `Assist Stage`. And + * during `Automated Agent Stage`, once an + * [Intent][google.cloud.dialogflow.v2.Intent] with + * [Intent.live_agent_handoff][google.cloud.dialogflow.v2.Intent.live_agent_handoff] + * is triggered, conversation will transfer to Assist Stage. + * + * The async variant is {@see ConversationsClient::createConversationAsync()} . + * + * @example samples/V2/ConversationsClient/create_conversation.php + * + * @param CreateConversationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Conversation + * + * @throws ApiException Thrown if the API call fails. + */ + public function createConversation(CreateConversationRequest $request, array $callOptions = []): Conversation + { + return $this->startApiCall('CreateConversation', $request, $callOptions)->wait(); + } + + /** + * Generates and returns a suggestion for a conversation that does not have a + * resource created for it. + * + * The async variant is + * {@see ConversationsClient::generateStatelessSuggestionAsync()} . + * + * @example samples/V2/ConversationsClient/generate_stateless_suggestion.php + * + * @param GenerateStatelessSuggestionRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return GenerateStatelessSuggestionResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function generateStatelessSuggestion(GenerateStatelessSuggestionRequest $request, array $callOptions = []): GenerateStatelessSuggestionResponse + { + return $this->startApiCall('GenerateStatelessSuggestion', $request, $callOptions)->wait(); + } + + /** + * Generates and returns a summary for a conversation that does not have a + * resource created for it. + * + * The async variant is {@see ConversationsClient::generateStatelessSummaryAsync()} + * . + * + * @example samples/V2/ConversationsClient/generate_stateless_summary.php + * + * @param GenerateStatelessSummaryRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return GenerateStatelessSummaryResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function generateStatelessSummary(GenerateStatelessSummaryRequest $request, array $callOptions = []): GenerateStatelessSummaryResponse + { + return $this->startApiCall('GenerateStatelessSummary', $request, $callOptions)->wait(); + } + + /** + * Generates all the suggestions using generators configured in the + * conversation profile. A generator is used only if its trigger event is + * matched. + * + * The async variant is {@see ConversationsClient::generateSuggestionsAsync()} . + * + * @example samples/V2/ConversationsClient/generate_suggestions.php + * + * @param GenerateSuggestionsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return GenerateSuggestionsResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function generateSuggestions(GenerateSuggestionsRequest $request, array $callOptions = []): GenerateSuggestionsResponse + { + return $this->startApiCall('GenerateSuggestions', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specific conversation. + * + * The async variant is {@see ConversationsClient::getConversationAsync()} . + * + * @example samples/V2/ConversationsClient/get_conversation.php + * + * @param GetConversationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Conversation + * + * @throws ApiException Thrown if the API call fails. + */ + public function getConversation(GetConversationRequest $request, array $callOptions = []): Conversation + { + return $this->startApiCall('GetConversation', $request, $callOptions)->wait(); + } + + /** + * Data ingestion API. + * Ingests context references for an existing conversation. + * + * The async variant is {@see ConversationsClient::ingestContextReferencesAsync()} + * . + * + * @example samples/V2/ConversationsClient/ingest_context_references.php + * + * @param IngestContextReferencesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return IngestContextReferencesResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function ingestContextReferences(IngestContextReferencesRequest $request, array $callOptions = []): IngestContextReferencesResponse + { + return $this->startApiCall('IngestContextReferences', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all conversations in the specified project. + * + * The async variant is {@see ConversationsClient::listConversationsAsync()} . + * + * @example samples/V2/ConversationsClient/list_conversations.php + * + * @param ListConversationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listConversations(ListConversationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListConversations', $request, $callOptions); + } + + /** + * Lists messages that belong to a given conversation. + * `messages` are ordered by `create_time` in descending order. To fetch + * updates without duplication, send request with filter + * `create_time_epoch_microseconds > + * [first item's create_time of previous request]` and empty page_token. + * + * The async variant is {@see ConversationsClient::listMessagesAsync()} . + * + * @example samples/V2/ConversationsClient/list_messages.php + * + * @param ListMessagesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listMessages(ListMessagesRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListMessages', $request, $callOptions); + } + + /** + * Get answers for the given query based on knowledge documents. + * + * The async variant is {@see ConversationsClient::searchKnowledgeAsync()} . + * + * @example samples/V2/ConversationsClient/search_knowledge.php + * + * @param SearchKnowledgeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SearchKnowledgeResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function searchKnowledge(SearchKnowledgeRequest $request, array $callOptions = []): SearchKnowledgeResponse + { + return $this->startApiCall('SearchKnowledge', $request, $callOptions)->wait(); + } + + /** + * Suggests summary for a conversation based on specific historical messages. + * The range of the messages to be used for summary can be specified in the + * request. + * + * The async variant is + * {@see ConversationsClient::suggestConversationSummaryAsync()} . + * + * @example samples/V2/ConversationsClient/suggest_conversation_summary.php + * + * @param SuggestConversationSummaryRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SuggestConversationSummaryResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function suggestConversationSummary(SuggestConversationSummaryRequest $request, array $callOptions = []): SuggestConversationSummaryResponse + { + return $this->startApiCall('SuggestConversationSummary', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see ConversationsClient::getLocationAsync()} . + * + * @example samples/V2/ConversationsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see ConversationsClient::listLocationsAsync()} . + * + * @example samples/V2/ConversationsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/DocumentsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/DocumentsClient.php new file mode 100644 index 0000000..8650f8e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/DocumentsClient.php @@ -0,0 +1,724 @@ + createDocumentAsync(CreateDocumentRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteDocumentAsync(DeleteDocumentRequest $request, array $optionalArgs = []) + * @method PromiseInterface exportDocumentAsync(ExportDocumentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getDocumentAsync(GetDocumentRequest $request, array $optionalArgs = []) + * @method PromiseInterface importDocumentsAsync(ImportDocumentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface listDocumentsAsync(ListDocumentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface reloadDocumentAsync(ReloadDocumentRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateDocumentAsync(UpdateDocumentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class DocumentsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Documents'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/documents_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/documents_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/documents_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/documents_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a document + * resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted document resource. + */ + public static function documentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('document')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted knowledge_base resource. + */ + public static function knowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('knowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted project_knowledge_base resource. + */ + public static function projectKnowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('projectKnowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base_document resource. + * + * @param string $project + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_knowledge_base_document resource. + */ + public static function projectKnowledgeBaseDocumentName(string $project, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectKnowledgeBaseDocument')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * + * @return string The formatted project_location_knowledge_base resource. + */ + public static function projectLocationKnowledgeBaseName(string $project, string $location, string $knowledgeBase): string + { + return self::getPathTemplate('projectLocationKnowledgeBase')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base_document resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * @param string $document + * + * @return string The formatted project_location_knowledge_base_document resource. + */ + public static function projectLocationKnowledgeBaseDocumentName(string $project, string $location, string $knowledgeBase, string $document): string + { + return self::getPathTemplate('projectLocationKnowledgeBaseDocument')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + 'document' => $document, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - document: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - knowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - projectKnowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - projectKnowledgeBaseDocument: projects/{project}/knowledgeBases/{knowledge_base}/documents/{document} + * - projectLocationKnowledgeBase: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base} + * - projectLocationKnowledgeBaseDocument: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\DocumentsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new DocumentsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a new document. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [KnowledgeOperationMetadata][google.cloud.dialogflow.v2.KnowledgeOperationMetadata] + * - `response`: [Document][google.cloud.dialogflow.v2.Document] + * + * The async variant is {@see DocumentsClient::createDocumentAsync()} . + * + * @example samples/V2/DocumentsClient/create_document.php + * + * @param CreateDocumentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function createDocument(CreateDocumentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('CreateDocument', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified document. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [KnowledgeOperationMetadata][google.cloud.dialogflow.v2.KnowledgeOperationMetadata] + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * The async variant is {@see DocumentsClient::deleteDocumentAsync()} . + * + * @example samples/V2/DocumentsClient/delete_document.php + * + * @param DeleteDocumentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteDocument(DeleteDocumentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('DeleteDocument', $request, $callOptions)->wait(); + } + + /** + * Exports a smart messaging candidate document into the specified + * destination. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [KnowledgeOperationMetadata][google.cloud.dialogflow.v2.KnowledgeOperationMetadata] + * - `response`: [Document][google.cloud.dialogflow.v2.Document] + * + * The async variant is {@see DocumentsClient::exportDocumentAsync()} . + * + * @example samples/V2/DocumentsClient/export_document.php + * + * @param ExportDocumentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function exportDocument(ExportDocumentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ExportDocument', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified document. + * + * The async variant is {@see DocumentsClient::getDocumentAsync()} . + * + * @example samples/V2/DocumentsClient/get_document.php + * + * @param GetDocumentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Document + * + * @throws ApiException Thrown if the API call fails. + */ + public function getDocument(GetDocumentRequest $request, array $callOptions = []): Document + { + return $this->startApiCall('GetDocument', $request, $callOptions)->wait(); + } + + /** + * Creates documents by importing data from external sources. + * Dialogflow supports up to 350 documents in each request. If you try to + * import more, Dialogflow will return an error. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [KnowledgeOperationMetadata][google.cloud.dialogflow.v2.KnowledgeOperationMetadata] + * - `response`: + * [ImportDocumentsResponse][google.cloud.dialogflow.v2.ImportDocumentsResponse] + * + * The async variant is {@see DocumentsClient::importDocumentsAsync()} . + * + * @example samples/V2/DocumentsClient/import_documents.php + * + * @param ImportDocumentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function importDocuments(ImportDocumentsRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ImportDocuments', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all documents of the knowledge base. + * + * The async variant is {@see DocumentsClient::listDocumentsAsync()} . + * + * @example samples/V2/DocumentsClient/list_documents.php + * + * @param ListDocumentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listDocuments(ListDocumentsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListDocuments', $request, $callOptions); + } + + /** + * Reloads the specified document from its specified source, content_uri or + * content. The previously loaded content of the document will be deleted. + * Note: Even when the content of the document has not changed, there still + * may be side effects because of internal implementation changes. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [KnowledgeOperationMetadata][google.cloud.dialogflow.v2.KnowledgeOperationMetadata] + * - `response`: [Document][google.cloud.dialogflow.v2.Document] + * + * Note: The `projects.agent.knowledgeBases.documents` resource is deprecated; + * only use `projects.knowledgeBases.documents`. + * + * The async variant is {@see DocumentsClient::reloadDocumentAsync()} . + * + * @example samples/V2/DocumentsClient/reload_document.php + * + * @param ReloadDocumentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function reloadDocument(ReloadDocumentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('ReloadDocument', $request, $callOptions)->wait(); + } + + /** + * Updates the specified document. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: + * [KnowledgeOperationMetadata][google.cloud.dialogflow.v2.KnowledgeOperationMetadata] + * - `response`: [Document][google.cloud.dialogflow.v2.Document] + * + * The async variant is {@see DocumentsClient::updateDocumentAsync()} . + * + * @example samples/V2/DocumentsClient/update_document.php + * + * @param UpdateDocumentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateDocument(UpdateDocumentRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('UpdateDocument', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see DocumentsClient::getLocationAsync()} . + * + * @example samples/V2/DocumentsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see DocumentsClient::listLocationsAsync()} . + * + * @example samples/V2/DocumentsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/EncryptionSpecServiceClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/EncryptionSpecServiceClient.php new file mode 100644 index 0000000..03095cc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/EncryptionSpecServiceClient.php @@ -0,0 +1,401 @@ + getEncryptionSpecAsync(GetEncryptionSpecRequest $request, array $optionalArgs = []) + * @method PromiseInterface initializeEncryptionSpecAsync(InitializeEncryptionSpecRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class EncryptionSpecServiceClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.EncryptionSpecService'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/encryption_spec_service_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/encryption_spec_service_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/encryption_spec_service_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/encryption_spec_service_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * encryption_spec resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted encryption_spec resource. + */ + public static function encryptionSpecName(string $project, string $location): string + { + return self::getPathTemplate('encryptionSpec')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - encryptionSpec: projects/{project}/locations/{location}/encryptionSpec + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\EncryptionSpecServiceClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new EncryptionSpecServiceClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Gets location-level encryption key specification. + * + * The async variant is + * {@see EncryptionSpecServiceClient::getEncryptionSpecAsync()} . + * + * @example samples/V2/EncryptionSpecServiceClient/get_encryption_spec.php + * + * @param GetEncryptionSpecRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return EncryptionSpec + * + * @throws ApiException Thrown if the API call fails. + */ + public function getEncryptionSpec(GetEncryptionSpecRequest $request, array $callOptions = []): EncryptionSpec + { + return $this->startApiCall('GetEncryptionSpec', $request, $callOptions)->wait(); + } + + /** + * Initializes a location-level encryption key specification. An error will + * be thrown if the location has resources already created before the + * initialization. Once the encryption specification is initialized at a + * location, it is immutable and all newly created resources under the + * location will be encrypted with the existing specification. + * + * The async variant is + * {@see EncryptionSpecServiceClient::initializeEncryptionSpecAsync()} . + * + * @example samples/V2/EncryptionSpecServiceClient/initialize_encryption_spec.php + * + * @param InitializeEncryptionSpecRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function initializeEncryptionSpec(InitializeEncryptionSpecRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('InitializeEncryptionSpec', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see EncryptionSpecServiceClient::getLocationAsync()} . + * + * @example samples/V2/EncryptionSpecServiceClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see EncryptionSpecServiceClient::listLocationsAsync()} . + * + * @example samples/V2/EncryptionSpecServiceClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/EntityTypesClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/EntityTypesClient.php new file mode 100644 index 0000000..1496933 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/EntityTypesClient.php @@ -0,0 +1,787 @@ + batchCreateEntitiesAsync(BatchCreateEntitiesRequest $request, array $optionalArgs = []) + * @method PromiseInterface batchDeleteEntitiesAsync(BatchDeleteEntitiesRequest $request, array $optionalArgs = []) + * @method PromiseInterface batchDeleteEntityTypesAsync(BatchDeleteEntityTypesRequest $request, array $optionalArgs = []) + * @method PromiseInterface batchUpdateEntitiesAsync(BatchUpdateEntitiesRequest $request, array $optionalArgs = []) + * @method PromiseInterface batchUpdateEntityTypesAsync(BatchUpdateEntityTypesRequest $request, array $optionalArgs = []) + * @method PromiseInterface createEntityTypeAsync(CreateEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteEntityTypeAsync(DeleteEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface getEntityTypeAsync(GetEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface listEntityTypesAsync(ListEntityTypesRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateEntityTypeAsync(UpdateEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class EntityTypesClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.EntityTypes'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/entity_types_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/entity_types_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/entity_types_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/entity_types_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a entity_type + * resource. + * + * @param string $project + * @param string $entityType + * + * @return string The formatted entity_type resource. + */ + public static function entityTypeName(string $project, string $entityType): string + { + return self::getPathTemplate('entityType')->render([ + 'project' => $project, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_entity_type resource. + * + * @param string $project + * @param string $entityType + * + * @return string The formatted project_entity_type resource. + */ + public static function projectEntityTypeName(string $project, string $entityType): string + { + return self::getPathTemplate('projectEntityType')->render([ + 'project' => $project, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $entityType + * + * @return string The formatted project_location_entity_type resource. + */ + public static function projectLocationEntityTypeName(string $project, string $location, string $entityType): string + { + return self::getPathTemplate('projectLocationEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'entity_type' => $entityType, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - entityType: projects/{project}/agent/entityTypes/{entity_type} + * - projectAgent: projects/{project}/agent + * - projectEntityType: projects/{project}/agent/entityTypes/{entity_type} + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationEntityType: projects/{project}/locations/{location}/agent/entityTypes/{entity_type} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\EntityTypesClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new EntityTypesClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates multiple new entities in the specified entity type. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::batchCreateEntitiesAsync()} . + * + * @example samples/V2/EntityTypesClient/batch_create_entities.php + * + * @param BatchCreateEntitiesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchCreateEntities(BatchCreateEntitiesRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchCreateEntities', $request, $callOptions)->wait(); + } + + /** + * Deletes entities in the specified entity type. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::batchDeleteEntitiesAsync()} . + * + * @example samples/V2/EntityTypesClient/batch_delete_entities.php + * + * @param BatchDeleteEntitiesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchDeleteEntities(BatchDeleteEntitiesRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchDeleteEntities', $request, $callOptions)->wait(); + } + + /** + * Deletes entity types in the specified agent. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::batchDeleteEntityTypesAsync()} . + * + * @example samples/V2/EntityTypesClient/batch_delete_entity_types.php + * + * @param BatchDeleteEntityTypesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchDeleteEntityTypes(BatchDeleteEntityTypesRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchDeleteEntityTypes', $request, $callOptions)->wait(); + } + + /** + * Updates or creates multiple entities in the specified entity type. This + * method does not affect entities in the entity type that aren't explicitly + * specified in the request. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * + * The async variant is {@see EntityTypesClient::batchUpdateEntitiesAsync()} . + * + * @example samples/V2/EntityTypesClient/batch_update_entities.php + * + * @param BatchUpdateEntitiesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchUpdateEntities(BatchUpdateEntitiesRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchUpdateEntities', $request, $callOptions)->wait(); + } + + /** + * Updates/Creates multiple entity types in the specified agent. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: + * [BatchUpdateEntityTypesResponse][google.cloud.dialogflow.v2.BatchUpdateEntityTypesResponse] + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::batchUpdateEntityTypesAsync()} . + * + * @example samples/V2/EntityTypesClient/batch_update_entity_types.php + * + * @param BatchUpdateEntityTypesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchUpdateEntityTypes(BatchUpdateEntityTypesRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchUpdateEntityTypes', $request, $callOptions)->wait(); + } + + /** + * Creates an entity type in the specified agent. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::createEntityTypeAsync()} . + * + * @example samples/V2/EntityTypesClient/create_entity_type.php + * + * @param CreateEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return EntityType + * + * @throws ApiException Thrown if the API call fails. + */ + public function createEntityType(CreateEntityTypeRequest $request, array $callOptions = []): EntityType + { + return $this->startApiCall('CreateEntityType', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified entity type. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::deleteEntityTypeAsync()} . + * + * @example samples/V2/EntityTypesClient/delete_entity_type.php + * + * @param DeleteEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteEntityType(DeleteEntityTypeRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteEntityType', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified entity type. + * + * The async variant is {@see EntityTypesClient::getEntityTypeAsync()} . + * + * @example samples/V2/EntityTypesClient/get_entity_type.php + * + * @param GetEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return EntityType + * + * @throws ApiException Thrown if the API call fails. + */ + public function getEntityType(GetEntityTypeRequest $request, array $callOptions = []): EntityType + { + return $this->startApiCall('GetEntityType', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all entity types in the specified agent. + * + * The async variant is {@see EntityTypesClient::listEntityTypesAsync()} . + * + * @example samples/V2/EntityTypesClient/list_entity_types.php + * + * @param ListEntityTypesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listEntityTypes(ListEntityTypesRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListEntityTypes', $request, $callOptions); + } + + /** + * Updates the specified entity type. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see EntityTypesClient::updateEntityTypeAsync()} . + * + * @example samples/V2/EntityTypesClient/update_entity_type.php + * + * @param UpdateEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return EntityType + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateEntityType(UpdateEntityTypeRequest $request, array $callOptions = []): EntityType + { + return $this->startApiCall('UpdateEntityType', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see EntityTypesClient::getLocationAsync()} . + * + * @example samples/V2/EntityTypesClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see EntityTypesClient::listLocationsAsync()} . + * + * @example samples/V2/EntityTypesClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/EnvironmentsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/EnvironmentsClient.php new file mode 100644 index 0000000..4a5ad30 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/EnvironmentsClient.php @@ -0,0 +1,655 @@ + createEnvironmentAsync(CreateEnvironmentRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteEnvironmentAsync(DeleteEnvironmentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getEnvironmentAsync(GetEnvironmentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getEnvironmentHistoryAsync(GetEnvironmentHistoryRequest $request, array $optionalArgs = []) + * @method PromiseInterface listEnvironmentsAsync(ListEnvironmentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateEnvironmentAsync(UpdateEnvironmentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class EnvironmentsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Environments'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/environments_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/environments_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/environments_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/environments_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a environment + * resource. + * + * @param string $project + * @param string $environment + * + * @return string The formatted environment resource. + */ + public static function environmentName(string $project, string $environment): string + { + return self::getPathTemplate('environment')->render([ + 'project' => $project, + 'environment' => $environment, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a fulfillment + * resource. + * + * @param string $project + * + * @return string The formatted fulfillment resource. + */ + public static function fulfillmentName(string $project): string + { + return self::getPathTemplate('fulfillment')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment resource. + * + * @param string $project + * @param string $environment + * + * @return string The formatted project_environment resource. + */ + public static function projectEnvironmentName(string $project, string $environment): string + { + return self::getPathTemplate('projectEnvironment')->render([ + 'project' => $project, + 'environment' => $environment, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_fulfillment resource. + * + * @param string $project + * + * @return string The formatted project_fulfillment resource. + */ + public static function projectFulfillmentName(string $project): string + { + return self::getPathTemplate('projectFulfillment')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment resource. + * + * @param string $project + * @param string $location + * @param string $environment + * + * @return string The formatted project_location_environment resource. + */ + public static function projectLocationEnvironmentName(string $project, string $location, string $environment): string + { + return self::getPathTemplate('projectLocationEnvironment')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_fulfillment resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_fulfillment resource. + */ + public static function projectLocationFulfillmentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationFulfillment')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_version resource. + * + * @param string $project + * @param string $location + * @param string $version + * + * @return string The formatted project_location_version resource. + */ + public static function projectLocationVersionName(string $project, string $location, string $version): string + { + return self::getPathTemplate('projectLocationVersion')->render([ + 'project' => $project, + 'location' => $location, + 'version' => $version, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_version resource. + * + * @param string $project + * @param string $version + * + * @return string The formatted project_version resource. + */ + public static function projectVersionName(string $project, string $version): string + { + return self::getPathTemplate('projectVersion')->render([ + 'project' => $project, + 'version' => $version, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a version + * resource. + * + * @param string $project + * @param string $version + * + * @return string The formatted version resource. + */ + public static function versionName(string $project, string $version): string + { + return self::getPathTemplate('version')->render([ + 'project' => $project, + 'version' => $version, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - environment: projects/{project}/agent/environments/{environment} + * - fulfillment: projects/{project}/agent/fulfillment + * - projectAgent: projects/{project}/agent + * - projectEnvironment: projects/{project}/agent/environments/{environment} + * - projectFulfillment: projects/{project}/agent/fulfillment + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationEnvironment: projects/{project}/locations/{location}/agent/environments/{environment} + * - projectLocationFulfillment: projects/{project}/locations/{location}/agent/fulfillment + * - projectLocationVersion: projects/{project}/locations/{location}/agent/versions/{version} + * - projectVersion: projects/{project}/agent/versions/{version} + * - version: projects/{project}/agent/versions/{version} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\EnvironmentsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new EnvironmentsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates an agent environment. + * + * The async variant is {@see EnvironmentsClient::createEnvironmentAsync()} . + * + * @example samples/V2/EnvironmentsClient/create_environment.php + * + * @param CreateEnvironmentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Environment + * + * @throws ApiException Thrown if the API call fails. + */ + public function createEnvironment(CreateEnvironmentRequest $request, array $callOptions = []): Environment + { + return $this->startApiCall('CreateEnvironment', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified agent environment. + * + * The async variant is {@see EnvironmentsClient::deleteEnvironmentAsync()} . + * + * @example samples/V2/EnvironmentsClient/delete_environment.php + * + * @param DeleteEnvironmentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteEnvironment(DeleteEnvironmentRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteEnvironment', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified agent environment. + * + * The async variant is {@see EnvironmentsClient::getEnvironmentAsync()} . + * + * @example samples/V2/EnvironmentsClient/get_environment.php + * + * @param GetEnvironmentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Environment + * + * @throws ApiException Thrown if the API call fails. + */ + public function getEnvironment(GetEnvironmentRequest $request, array $callOptions = []): Environment + { + return $this->startApiCall('GetEnvironment', $request, $callOptions)->wait(); + } + + /** + * Gets the history of the specified environment. + * + * The async variant is {@see EnvironmentsClient::getEnvironmentHistoryAsync()} . + * + * @example samples/V2/EnvironmentsClient/get_environment_history.php + * + * @param GetEnvironmentHistoryRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function getEnvironmentHistory(GetEnvironmentHistoryRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('GetEnvironmentHistory', $request, $callOptions); + } + + /** + * Returns the list of all non-default environments of the specified agent. + * + * The async variant is {@see EnvironmentsClient::listEnvironmentsAsync()} . + * + * @example samples/V2/EnvironmentsClient/list_environments.php + * + * @param ListEnvironmentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listEnvironments(ListEnvironmentsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListEnvironments', $request, $callOptions); + } + + /** + * Updates the specified agent environment. + * + * This method allows you to deploy new agent versions into the environment. + * When an environment is pointed to a new agent version by setting + * `environment.agent_version`, the environment is temporarily set to the + * `LOADING` state. During that time, the environment continues serving the + * previous version of the agent. After the new agent version is done loading, + * the environment is set back to the `RUNNING` state. + * You can use "-" as Environment ID in environment name to update an agent + * version in the default environment. WARNING: this will negate all recent + * changes to the draft agent and can't be undone. You may want to save the + * draft agent to a version before calling this method. + * + * The async variant is {@see EnvironmentsClient::updateEnvironmentAsync()} . + * + * @example samples/V2/EnvironmentsClient/update_environment.php + * + * @param UpdateEnvironmentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Environment + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateEnvironment(UpdateEnvironmentRequest $request, array $callOptions = []): Environment + { + return $this->startApiCall('UpdateEnvironment', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see EnvironmentsClient::getLocationAsync()} . + * + * @example samples/V2/EnvironmentsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see EnvironmentsClient::listLocationsAsync()} . + * + * @example samples/V2/EnvironmentsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/FulfillmentsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/FulfillmentsClient.php new file mode 100644 index 0000000..a7ed384 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/FulfillmentsClient.php @@ -0,0 +1,372 @@ + getFulfillmentAsync(GetFulfillmentRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateFulfillmentAsync(UpdateFulfillmentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class FulfillmentsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Fulfillments'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/fulfillments_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/fulfillments_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/fulfillments_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/fulfillments_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a fulfillment + * resource. + * + * @param string $project + * + * @return string The formatted fulfillment resource. + */ + public static function fulfillmentName(string $project): string + { + return self::getPathTemplate('fulfillment')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_fulfillment resource. + * + * @param string $project + * + * @return string The formatted project_fulfillment resource. + */ + public static function projectFulfillmentName(string $project): string + { + return self::getPathTemplate('projectFulfillment')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_fulfillment resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_fulfillment resource. + */ + public static function projectLocationFulfillmentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationFulfillment')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - fulfillment: projects/{project}/agent/fulfillment + * - projectFulfillment: projects/{project}/agent/fulfillment + * - projectLocationFulfillment: projects/{project}/locations/{location}/agent/fulfillment + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\FulfillmentsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new FulfillmentsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Retrieves the fulfillment. + * + * The async variant is {@see FulfillmentsClient::getFulfillmentAsync()} . + * + * @example samples/V2/FulfillmentsClient/get_fulfillment.php + * + * @param GetFulfillmentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Fulfillment + * + * @throws ApiException Thrown if the API call fails. + */ + public function getFulfillment(GetFulfillmentRequest $request, array $callOptions = []): Fulfillment + { + return $this->startApiCall('GetFulfillment', $request, $callOptions)->wait(); + } + + /** + * Updates the fulfillment. + * + * The async variant is {@see FulfillmentsClient::updateFulfillmentAsync()} . + * + * @example samples/V2/FulfillmentsClient/update_fulfillment.php + * + * @param UpdateFulfillmentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Fulfillment + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateFulfillment(UpdateFulfillmentRequest $request, array $callOptions = []): Fulfillment + { + return $this->startApiCall('UpdateFulfillment', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see FulfillmentsClient::getLocationAsync()} . + * + * @example samples/V2/FulfillmentsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see FulfillmentsClient::listLocationsAsync()} . + * + * @example samples/V2/FulfillmentsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/GeneratorsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/GeneratorsClient.php new file mode 100644 index 0000000..b891a18 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/GeneratorsClient.php @@ -0,0 +1,444 @@ + createGeneratorAsync(CreateGeneratorRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteGeneratorAsync(DeleteGeneratorRequest $request, array $optionalArgs = []) + * @method PromiseInterface getGeneratorAsync(GetGeneratorRequest $request, array $optionalArgs = []) + * @method PromiseInterface listGeneratorsAsync(ListGeneratorsRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateGeneratorAsync(UpdateGeneratorRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class GeneratorsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Generators'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/generators_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/generators_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/generators_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/generators_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a generator + * resource. + * + * @param string $project + * @param string $location + * @param string $generator + * + * @return string The formatted generator resource. + */ + public static function generatorName(string $project, string $location, string $generator): string + { + return self::getPathTemplate('generator')->render([ + 'project' => $project, + 'location' => $location, + 'generator' => $generator, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a project + * resource. + * + * @param string $project + * + * @return string The formatted project resource. + */ + public static function projectName(string $project): string + { + return self::getPathTemplate('project')->render([ + 'project' => $project, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - generator: projects/{project}/locations/{location}/generators/{generator} + * - project: projects/{project} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\GeneratorsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new GeneratorsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a generator. + * + * The async variant is {@see GeneratorsClient::createGeneratorAsync()} . + * + * @example samples/V2/GeneratorsClient/create_generator.php + * + * @param CreateGeneratorRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Generator + * + * @throws ApiException Thrown if the API call fails. + */ + public function createGenerator(CreateGeneratorRequest $request, array $callOptions = []): Generator + { + return $this->startApiCall('CreateGenerator', $request, $callOptions)->wait(); + } + + /** + * Deletes a generator. + * + * The async variant is {@see GeneratorsClient::deleteGeneratorAsync()} . + * + * @example samples/V2/GeneratorsClient/delete_generator.php + * + * @param DeleteGeneratorRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteGenerator(DeleteGeneratorRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteGenerator', $request, $callOptions)->wait(); + } + + /** + * Retrieves a generator. + * + * The async variant is {@see GeneratorsClient::getGeneratorAsync()} . + * + * @example samples/V2/GeneratorsClient/get_generator.php + * + * @param GetGeneratorRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Generator + * + * @throws ApiException Thrown if the API call fails. + */ + public function getGenerator(GetGeneratorRequest $request, array $callOptions = []): Generator + { + return $this->startApiCall('GetGenerator', $request, $callOptions)->wait(); + } + + /** + * Lists generators. + * + * The async variant is {@see GeneratorsClient::listGeneratorsAsync()} . + * + * @example samples/V2/GeneratorsClient/list_generators.php + * + * @param ListGeneratorsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listGenerators(ListGeneratorsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListGenerators', $request, $callOptions); + } + + /** + * Updates a generator. + * + * The async variant is {@see GeneratorsClient::updateGeneratorAsync()} . + * + * @example samples/V2/GeneratorsClient/update_generator.php + * + * @param UpdateGeneratorRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Generator + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateGenerator(UpdateGeneratorRequest $request, array $callOptions = []): Generator + { + return $this->startApiCall('UpdateGenerator', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see GeneratorsClient::getLocationAsync()} . + * + * @example samples/V2/GeneratorsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see GeneratorsClient::listLocationsAsync()} . + * + * @example samples/V2/GeneratorsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/IntentsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/IntentsClient.php new file mode 100644 index 0000000..37ea2d0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/IntentsClient.php @@ -0,0 +1,874 @@ + batchDeleteIntentsAsync(BatchDeleteIntentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface batchUpdateIntentsAsync(BatchUpdateIntentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface createIntentAsync(CreateIntentRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteIntentAsync(DeleteIntentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getIntentAsync(GetIntentRequest $request, array $optionalArgs = []) + * @method PromiseInterface listIntentsAsync(ListIntentsRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateIntentAsync(UpdateIntentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class IntentsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Intents'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private $operationsClient; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/intents_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/intents_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/intents_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/intents_rest_client_config.php', + ], + ], + ]; + } + + /** + * Return an OperationsClient object with the same endpoint as $this. + * + * @return OperationsClient + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Resume an existing long running operation that was previously started by a long + * running API method. If $methodName is not provided, or does not match a long + * running API method, then the operation can still be resumed, but the + * OperationResponse object will not deserialize the final response. + * + * @param string $operationName The name of the long running operation + * @param string $methodName The name of the method used to start the operation + * + * @return OperationResponse + */ + public function resumeOperation($operationName, $methodName = null) + { + $options = $this->descriptors[$methodName]['longRunning'] ?? []; + $operation = new OperationResponse($operationName, $this->getOperationsClient(), $options); + $operation->reload(); + return $operation; + } + + /** + * Create the default operation client for the service. + * + * @param array $options ClientOptions for the client. + * + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + // Unset client-specific configuration options + unset($options['serviceName'], $options['clientConfig'], $options['descriptorsConfigPath']); + + if (isset($options['operationsClient'])) { + return $options['operationsClient']; + } + + return new OperationsClient($options); + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a context + * resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted context resource. + */ + public static function contextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('context')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a intent + * resource. + * + * @param string $project + * @param string $intent + * + * @return string The formatted intent resource. + */ + public static function intentName(string $project, string $intent): string + { + return self::getPathTemplate('intent')->render([ + 'project' => $project, + 'intent' => $intent, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_environment_user_session resource. + */ + public static function projectEnvironmentUserSessionName(string $project, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectEnvironmentUserSession')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_context resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_environment_user_session_context resource. + */ + public static function projectEnvironmentUserSessionContextName(string $project, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_intent resource. + * + * @param string $project + * @param string $intent + * + * @return string The formatted project_intent resource. + */ + public static function projectIntentName(string $project, string $intent): string + { + return self::getPathTemplate('projectIntent')->render([ + 'project' => $project, + 'intent' => $intent, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_location_environment_user_session resource. + */ + public static function projectLocationEnvironmentUserSessionName(string $project, string $location, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSession')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_context resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_location_environment_user_session_context resource. + */ + public static function projectLocationEnvironmentUserSessionContextName(string $project, string $location, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_intent resource. + * + * @param string $project + * @param string $location + * @param string $intent + * + * @return string The formatted project_location_intent resource. + */ + public static function projectLocationIntentName(string $project, string $location, string $intent): string + { + return self::getPathTemplate('projectLocationIntent')->render([ + 'project' => $project, + 'location' => $location, + 'intent' => $intent, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session resource. + * + * @param string $project + * @param string $location + * @param string $session + * + * @return string The formatted project_location_session resource. + */ + public static function projectLocationSessionName(string $project, string $location, string $session): string + { + return self::getPathTemplate('projectLocationSession')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_context resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $context + * + * @return string The formatted project_location_session_context resource. + */ + public static function projectLocationSessionContextName(string $project, string $location, string $session, string $context): string + { + return self::getPathTemplate('projectLocationSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted project_session resource. + */ + public static function projectSessionName(string $project, string $session): string + { + return self::getPathTemplate('projectSession')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_context resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted project_session_context resource. + */ + public static function projectSessionContextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('projectSessionContext')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a session + * resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted session resource. + */ + public static function sessionName(string $project, string $session): string + { + return self::getPathTemplate('session')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - context: projects/{project}/agent/sessions/{session}/contexts/{context} + * - intent: projects/{project}/agent/intents/{intent} + * - projectAgent: projects/{project}/agent + * - projectEnvironmentUserSession: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectEnvironmentUserSessionContext: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectIntent: projects/{project}/agent/intents/{intent} + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationEnvironmentUserSession: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectLocationEnvironmentUserSessionContext: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectLocationIntent: projects/{project}/locations/{location}/agent/intents/{intent} + * - projectLocationSession: projects/{project}/locations/{location}/agent/sessions/{session} + * - projectLocationSessionContext: projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context} + * - projectSession: projects/{project}/agent/sessions/{session} + * - projectSessionContext: projects/{project}/agent/sessions/{session}/contexts/{context} + * - session: projects/{project}/agent/sessions/{session} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\IntentsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new IntentsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + $this->operationsClient = $this->createOperationsClient($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Deletes intents in the specified agent. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: An [Empty + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see IntentsClient::batchDeleteIntentsAsync()} . + * + * @example samples/V2/IntentsClient/batch_delete_intents.php + * + * @param BatchDeleteIntentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchDeleteIntents(BatchDeleteIntentsRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchDeleteIntents', $request, $callOptions)->wait(); + } + + /** + * Updates/Creates multiple intents in the specified agent. + * + * This method is a [long-running + * operation](https://cloud.google.com/dialogflow/es/docs/how/long-running-operations). + * The returned `Operation` type has the following method-specific fields: + * + * - `metadata`: An empty [Struct + * message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) + * - `response`: + * [BatchUpdateIntentsResponse][google.cloud.dialogflow.v2.BatchUpdateIntentsResponse] + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see IntentsClient::batchUpdateIntentsAsync()} . + * + * @example samples/V2/IntentsClient/batch_update_intents.php + * + * @param BatchUpdateIntentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return OperationResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function batchUpdateIntents(BatchUpdateIntentsRequest $request, array $callOptions = []): OperationResponse + { + return $this->startApiCall('BatchUpdateIntents', $request, $callOptions)->wait(); + } + + /** + * Creates an intent in the specified agent. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see IntentsClient::createIntentAsync()} . + * + * @example samples/V2/IntentsClient/create_intent.php + * + * @param CreateIntentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Intent + * + * @throws ApiException Thrown if the API call fails. + */ + public function createIntent(CreateIntentRequest $request, array $callOptions = []): Intent + { + return $this->startApiCall('CreateIntent', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified intent and its direct or indirect followup intents. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see IntentsClient::deleteIntentAsync()} . + * + * @example samples/V2/IntentsClient/delete_intent.php + * + * @param DeleteIntentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteIntent(DeleteIntentRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteIntent', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified intent. + * + * The async variant is {@see IntentsClient::getIntentAsync()} . + * + * @example samples/V2/IntentsClient/get_intent.php + * + * @param GetIntentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Intent + * + * @throws ApiException Thrown if the API call fails. + */ + public function getIntent(GetIntentRequest $request, array $callOptions = []): Intent + { + return $this->startApiCall('GetIntent', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all intents in the specified agent. + * + * The async variant is {@see IntentsClient::listIntentsAsync()} . + * + * @example samples/V2/IntentsClient/list_intents.php + * + * @param ListIntentsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listIntents(ListIntentsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListIntents', $request, $callOptions); + } + + /** + * Updates the specified intent. + * + * Note: You should always train an agent prior to sending it queries. See the + * [training + * documentation](https://cloud.google.com/dialogflow/es/docs/training). + * + * The async variant is {@see IntentsClient::updateIntentAsync()} . + * + * @example samples/V2/IntentsClient/update_intent.php + * + * @param UpdateIntentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Intent + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateIntent(UpdateIntentRequest $request, array $callOptions = []): Intent + { + return $this->startApiCall('UpdateIntent', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see IntentsClient::getLocationAsync()} . + * + * @example samples/V2/IntentsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see IntentsClient::listLocationsAsync()} . + * + * @example samples/V2/IntentsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/KnowledgeBasesClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/KnowledgeBasesClient.php new file mode 100644 index 0000000..a2e0e6c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/KnowledgeBasesClient.php @@ -0,0 +1,495 @@ + createKnowledgeBaseAsync(CreateKnowledgeBaseRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteKnowledgeBaseAsync(DeleteKnowledgeBaseRequest $request, array $optionalArgs = []) + * @method PromiseInterface getKnowledgeBaseAsync(GetKnowledgeBaseRequest $request, array $optionalArgs = []) + * @method PromiseInterface listKnowledgeBasesAsync(ListKnowledgeBasesRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateKnowledgeBaseAsync(UpdateKnowledgeBaseRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class KnowledgeBasesClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.KnowledgeBases'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/knowledge_bases_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/knowledge_bases_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/knowledge_bases_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/knowledge_bases_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a + * knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted knowledge_base resource. + */ + public static function knowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('knowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a location + * resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted location resource. + */ + public static function locationName(string $project, string $location): string + { + return self::getPathTemplate('location')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a project + * resource. + * + * @param string $project + * + * @return string The formatted project resource. + */ + public static function projectName(string $project): string + { + return self::getPathTemplate('project')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_knowledge_base resource. + * + * @param string $project + * @param string $knowledgeBase + * + * @return string The formatted project_knowledge_base resource. + */ + public static function projectKnowledgeBaseName(string $project, string $knowledgeBase): string + { + return self::getPathTemplate('projectKnowledgeBase')->render([ + 'project' => $project, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_knowledge_base resource. + * + * @param string $project + * @param string $location + * @param string $knowledgeBase + * + * @return string The formatted project_location_knowledge_base resource. + */ + public static function projectLocationKnowledgeBaseName(string $project, string $location, string $knowledgeBase): string + { + return self::getPathTemplate('projectLocationKnowledgeBase')->render([ + 'project' => $project, + 'location' => $location, + 'knowledge_base' => $knowledgeBase, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - knowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - location: projects/{project}/locations/{location} + * - project: projects/{project} + * - projectKnowledgeBase: projects/{project}/knowledgeBases/{knowledge_base} + * - projectLocationKnowledgeBase: projects/{project}/locations/{location}/knowledgeBases/{knowledge_base} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\KnowledgeBasesClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new KnowledgeBasesClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a knowledge base. + * + * The async variant is {@see KnowledgeBasesClient::createKnowledgeBaseAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/create_knowledge_base.php + * + * @param CreateKnowledgeBaseRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return KnowledgeBase + * + * @throws ApiException Thrown if the API call fails. + */ + public function createKnowledgeBase(CreateKnowledgeBaseRequest $request, array $callOptions = []): KnowledgeBase + { + return $this->startApiCall('CreateKnowledgeBase', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified knowledge base. + * + * The async variant is {@see KnowledgeBasesClient::deleteKnowledgeBaseAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/delete_knowledge_base.php + * + * @param DeleteKnowledgeBaseRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteKnowledgeBase(DeleteKnowledgeBaseRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteKnowledgeBase', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified knowledge base. + * + * The async variant is {@see KnowledgeBasesClient::getKnowledgeBaseAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/get_knowledge_base.php + * + * @param GetKnowledgeBaseRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return KnowledgeBase + * + * @throws ApiException Thrown if the API call fails. + */ + public function getKnowledgeBase(GetKnowledgeBaseRequest $request, array $callOptions = []): KnowledgeBase + { + return $this->startApiCall('GetKnowledgeBase', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all knowledge bases of the specified agent. + * + * The async variant is {@see KnowledgeBasesClient::listKnowledgeBasesAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/list_knowledge_bases.php + * + * @param ListKnowledgeBasesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listKnowledgeBases(ListKnowledgeBasesRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListKnowledgeBases', $request, $callOptions); + } + + /** + * Updates the specified knowledge base. + * + * The async variant is {@see KnowledgeBasesClient::updateKnowledgeBaseAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/update_knowledge_base.php + * + * @param UpdateKnowledgeBaseRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return KnowledgeBase + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateKnowledgeBase(UpdateKnowledgeBaseRequest $request, array $callOptions = []): KnowledgeBase + { + return $this->startApiCall('UpdateKnowledgeBase', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see KnowledgeBasesClient::getLocationAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see KnowledgeBasesClient::listLocationsAsync()} . + * + * @example samples/V2/KnowledgeBasesClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/ParticipantsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/ParticipantsClient.php new file mode 100644 index 0000000..6a003b5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/ParticipantsClient.php @@ -0,0 +1,1093 @@ + analyzeContentAsync(AnalyzeContentRequest $request, array $optionalArgs = []) + * @method PromiseInterface createParticipantAsync(CreateParticipantRequest $request, array $optionalArgs = []) + * @method PromiseInterface getParticipantAsync(GetParticipantRequest $request, array $optionalArgs = []) + * @method PromiseInterface listParticipantsAsync(ListParticipantsRequest $request, array $optionalArgs = []) + * @method PromiseInterface suggestArticlesAsync(SuggestArticlesRequest $request, array $optionalArgs = []) + * @method PromiseInterface suggestFaqAnswersAsync(SuggestFaqAnswersRequest $request, array $optionalArgs = []) + * @method PromiseInterface suggestKnowledgeAssistAsync(SuggestKnowledgeAssistRequest $request, array $optionalArgs = []) + * @method PromiseInterface suggestSmartRepliesAsync(SuggestSmartRepliesRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateParticipantAsync(UpdateParticipantRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class ParticipantsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Participants'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/participants_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/participants_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/participants_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/participants_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a context + * resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted context resource. + */ + public static function contextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('context')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a conversation + * resource. + * + * @param string $project + * @param string $conversation + * + * @return string The formatted conversation resource. + */ + public static function conversationName(string $project, string $conversation): string + { + return self::getPathTemplate('conversation')->render([ + 'project' => $project, + 'conversation' => $conversation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a message + * resource. + * + * @param string $project + * @param string $conversation + * @param string $message + * + * @return string The formatted message resource. + */ + public static function messageName(string $project, string $conversation, string $message): string + { + return self::getPathTemplate('message')->render([ + 'project' => $project, + 'conversation' => $conversation, + 'message' => $message, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a participant + * resource. + * + * @param string $project + * @param string $conversation + * @param string $participant + * + * @return string The formatted participant resource. + */ + public static function participantName(string $project, string $conversation, string $participant): string + { + return self::getPathTemplate('participant')->render([ + 'project' => $project, + 'conversation' => $conversation, + 'participant' => $participant, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a phrase_set + * resource. + * + * @param string $project + * @param string $location + * @param string $phraseSet + * + * @return string The formatted phrase_set resource. + */ + public static function phraseSetName(string $project, string $location, string $phraseSet): string + { + return self::getPathTemplate('phraseSet')->render([ + 'project' => $project, + 'location' => $location, + 'phrase_set' => $phraseSet, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation resource. + * + * @param string $project + * @param string $conversation + * + * @return string The formatted project_conversation resource. + */ + public static function projectConversationName(string $project, string $conversation): string + { + return self::getPathTemplate('projectConversation')->render([ + 'project' => $project, + 'conversation' => $conversation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_message resource. + * + * @param string $project + * @param string $conversation + * @param string $message + * + * @return string The formatted project_conversation_message resource. + */ + public static function projectConversationMessageName(string $project, string $conversation, string $message): string + { + return self::getPathTemplate('projectConversationMessage')->render([ + 'project' => $project, + 'conversation' => $conversation, + 'message' => $message, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_conversation_participant resource. + * + * @param string $project + * @param string $conversation + * @param string $participant + * + * @return string The formatted project_conversation_participant resource. + */ + public static function projectConversationParticipantName(string $project, string $conversation, string $participant): string + { + return self::getPathTemplate('projectConversationParticipant')->render([ + 'project' => $project, + 'conversation' => $conversation, + 'participant' => $participant, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_environment_user_session resource. + */ + public static function projectEnvironmentUserSessionName(string $project, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectEnvironmentUserSession')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_context resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_environment_user_session_context resource. + */ + public static function projectEnvironmentUserSessionContextName(string $project, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_entity_type resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $entityType + * + * @return string The formatted project_environment_user_session_entity_type resource. + */ + public static function projectEnvironmentUserSessionEntityTypeName(string $project, string $environment, string $user, string $session, string $entityType): string + { + return self::getPathTemplate('projectEnvironmentUserSessionEntityType')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation resource. + * + * @param string $project + * @param string $location + * @param string $conversation + * + * @return string The formatted project_location_conversation resource. + */ + public static function projectLocationConversationName(string $project, string $location, string $conversation): string + { + return self::getPathTemplate('projectLocationConversation')->render([ + 'project' => $project, + 'location' => $location, + 'conversation' => $conversation, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_message resource. + * + * @param string $project + * @param string $location + * @param string $conversation + * @param string $message + * + * @return string The formatted project_location_conversation_message resource. + */ + public static function projectLocationConversationMessageName(string $project, string $location, string $conversation, string $message): string + { + return self::getPathTemplate('projectLocationConversationMessage')->render([ + 'project' => $project, + 'location' => $location, + 'conversation' => $conversation, + 'message' => $message, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_conversation_participant resource. + * + * @param string $project + * @param string $location + * @param string $conversation + * @param string $participant + * + * @return string The formatted project_location_conversation_participant resource. + */ + public static function projectLocationConversationParticipantName(string $project, string $location, string $conversation, string $participant): string + { + return self::getPathTemplate('projectLocationConversationParticipant')->render([ + 'project' => $project, + 'location' => $location, + 'conversation' => $conversation, + 'participant' => $participant, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_location_environment_user_session resource. + */ + public static function projectLocationEnvironmentUserSessionName(string $project, string $location, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSession')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_context resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_location_environment_user_session_context resource. + */ + public static function projectLocationEnvironmentUserSessionContextName(string $project, string $location, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $entityType + * + * @return string The formatted project_location_environment_user_session_entity_type resource. + */ + public static function projectLocationEnvironmentUserSessionEntityTypeName(string $project, string $location, string $environment, string $user, string $session, string $entityType): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session resource. + * + * @param string $project + * @param string $location + * @param string $session + * + * @return string The formatted project_location_session resource. + */ + public static function projectLocationSessionName(string $project, string $location, string $session): string + { + return self::getPathTemplate('projectLocationSession')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_context resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $context + * + * @return string The formatted project_location_session_context resource. + */ + public static function projectLocationSessionContextName(string $project, string $location, string $session, string $context): string + { + return self::getPathTemplate('projectLocationSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $entityType + * + * @return string The formatted project_location_session_entity_type resource. + */ + public static function projectLocationSessionEntityTypeName(string $project, string $location, string $session, string $entityType): string + { + return self::getPathTemplate('projectLocationSessionEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted project_session resource. + */ + public static function projectSessionName(string $project, string $session): string + { + return self::getPathTemplate('projectSession')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_context resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted project_session_context resource. + */ + public static function projectSessionContextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('projectSessionContext')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_entity_type resource. + * + * @param string $project + * @param string $session + * @param string $entityType + * + * @return string The formatted project_session_entity_type resource. + */ + public static function projectSessionEntityTypeName(string $project, string $session, string $entityType): string + { + return self::getPathTemplate('projectSessionEntityType')->render([ + 'project' => $project, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a session + * resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted session resource. + */ + public static function sessionName(string $project, string $session): string + { + return self::getPathTemplate('session')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * session_entity_type resource. + * + * @param string $project + * @param string $session + * @param string $entityType + * + * @return string The formatted session_entity_type resource. + */ + public static function sessionEntityTypeName(string $project, string $session, string $entityType): string + { + return self::getPathTemplate('sessionEntityType')->render([ + 'project' => $project, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - context: projects/{project}/agent/sessions/{session}/contexts/{context} + * - conversation: projects/{project}/conversations/{conversation} + * - message: projects/{project}/conversations/{conversation}/messages/{message} + * - participant: projects/{project}/conversations/{conversation}/participants/{participant} + * - phraseSet: projects/{project}/locations/{location}/phraseSets/{phrase_set} + * - projectConversation: projects/{project}/conversations/{conversation} + * - projectConversationMessage: projects/{project}/conversations/{conversation}/messages/{message} + * - projectConversationParticipant: projects/{project}/conversations/{conversation}/participants/{participant} + * - projectEnvironmentUserSession: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectEnvironmentUserSessionContext: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectEnvironmentUserSessionEntityType: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type} + * - projectLocationConversation: projects/{project}/locations/{location}/conversations/{conversation} + * - projectLocationConversationMessage: projects/{project}/locations/{location}/conversations/{conversation}/messages/{message} + * - projectLocationConversationParticipant: projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant} + * - projectLocationEnvironmentUserSession: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectLocationEnvironmentUserSessionContext: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectLocationEnvironmentUserSessionEntityType: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type} + * - projectLocationSession: projects/{project}/locations/{location}/agent/sessions/{session} + * - projectLocationSessionContext: projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context} + * - projectLocationSessionEntityType: projects/{project}/locations/{location}/agent/sessions/{session}/entityTypes/{entity_type} + * - projectSession: projects/{project}/agent/sessions/{session} + * - projectSessionContext: projects/{project}/agent/sessions/{session}/contexts/{context} + * - projectSessionEntityType: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type} + * - session: projects/{project}/agent/sessions/{session} + * - sessionEntityType: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\ParticipantsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new ParticipantsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Adds a text (chat, for example), or audio (phone recording, for example) + * message from a participant into the conversation. + * + * Note: Always use agent versions for production traffic + * sent to virtual agents. See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * The async variant is {@see ParticipantsClient::analyzeContentAsync()} . + * + * @example samples/V2/ParticipantsClient/analyze_content.php + * + * @param AnalyzeContentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return AnalyzeContentResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function analyzeContent(AnalyzeContentRequest $request, array $callOptions = []): AnalyzeContentResponse + { + return $this->startApiCall('AnalyzeContent', $request, $callOptions)->wait(); + } + + /** + * Creates a new participant in a conversation. + * + * The async variant is {@see ParticipantsClient::createParticipantAsync()} . + * + * @example samples/V2/ParticipantsClient/create_participant.php + * + * @param CreateParticipantRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Participant + * + * @throws ApiException Thrown if the API call fails. + */ + public function createParticipant(CreateParticipantRequest $request, array $callOptions = []): Participant + { + return $this->startApiCall('CreateParticipant', $request, $callOptions)->wait(); + } + + /** + * Retrieves a conversation participant. + * + * The async variant is {@see ParticipantsClient::getParticipantAsync()} . + * + * @example samples/V2/ParticipantsClient/get_participant.php + * + * @param GetParticipantRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Participant + * + * @throws ApiException Thrown if the API call fails. + */ + public function getParticipant(GetParticipantRequest $request, array $callOptions = []): Participant + { + return $this->startApiCall('GetParticipant', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all participants in the specified conversation. + * + * The async variant is {@see ParticipantsClient::listParticipantsAsync()} . + * + * @example samples/V2/ParticipantsClient/list_participants.php + * + * @param ListParticipantsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listParticipants(ListParticipantsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListParticipants', $request, $callOptions); + } + + /** + * Adds a text (chat, for example), or audio (phone recording, for example) + * message from a participant into the conversation. + * Note: This method is only available through the gRPC API (not REST). + * + * The top-level message sent to the client by the server is + * `StreamingAnalyzeContentResponse`. Multiple response messages can be + * returned in order. The first one or more messages contain the + * `recognition_result` field. Each result represents a more complete + * transcript of what the user said. The next message contains the + * `reply_text` field and potentially the `reply_audio` field. The message can + * also contain the `automated_agent_reply` field. + * + * Note: Always use agent versions for production traffic + * sent to virtual agents. See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * @example samples/V2/ParticipantsClient/streaming_analyze_content.php + * + * @param array $callOptions { + * Optional. + * + * @type int $timeoutMillis + * Timeout to use for this call. + * } + * + * @return BidiStream + * + * @throws ApiException Thrown if the API call fails. + */ + public function streamingAnalyzeContent(array $callOptions = []): BidiStream + { + return $this->startApiCall('StreamingAnalyzeContent', null, $callOptions); + } + + /** + * Gets suggested articles for a participant based on specific historical + * messages. + * + * The async variant is {@see ParticipantsClient::suggestArticlesAsync()} . + * + * @example samples/V2/ParticipantsClient/suggest_articles.php + * + * @param SuggestArticlesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SuggestArticlesResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function suggestArticles(SuggestArticlesRequest $request, array $callOptions = []): SuggestArticlesResponse + { + return $this->startApiCall('SuggestArticles', $request, $callOptions)->wait(); + } + + /** + * Gets suggested faq answers for a participant based on specific historical + * messages. + * + * The async variant is {@see ParticipantsClient::suggestFaqAnswersAsync()} . + * + * @example samples/V2/ParticipantsClient/suggest_faq_answers.php + * + * @param SuggestFaqAnswersRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SuggestFaqAnswersResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function suggestFaqAnswers(SuggestFaqAnswersRequest $request, array $callOptions = []): SuggestFaqAnswersResponse + { + return $this->startApiCall('SuggestFaqAnswers', $request, $callOptions)->wait(); + } + + /** + * Gets knowledge assist suggestions based on historical messages. + * + * The async variant is {@see ParticipantsClient::suggestKnowledgeAssistAsync()} . + * + * @example samples/V2/ParticipantsClient/suggest_knowledge_assist.php + * + * @param SuggestKnowledgeAssistRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SuggestKnowledgeAssistResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function suggestKnowledgeAssist(SuggestKnowledgeAssistRequest $request, array $callOptions = []): SuggestKnowledgeAssistResponse + { + return $this->startApiCall('SuggestKnowledgeAssist', $request, $callOptions)->wait(); + } + + /** + * Gets smart replies for a participant based on specific historical + * messages. + * + * The async variant is {@see ParticipantsClient::suggestSmartRepliesAsync()} . + * + * @example samples/V2/ParticipantsClient/suggest_smart_replies.php + * + * @param SuggestSmartRepliesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SuggestSmartRepliesResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function suggestSmartReplies(SuggestSmartRepliesRequest $request, array $callOptions = []): SuggestSmartRepliesResponse + { + return $this->startApiCall('SuggestSmartReplies', $request, $callOptions)->wait(); + } + + /** + * Updates the specified participant. + * + * The async variant is {@see ParticipantsClient::updateParticipantAsync()} . + * + * @example samples/V2/ParticipantsClient/update_participant.php + * + * @param UpdateParticipantRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Participant + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateParticipant(UpdateParticipantRequest $request, array $callOptions = []): Participant + { + return $this->startApiCall('UpdateParticipant', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see ParticipantsClient::getLocationAsync()} . + * + * @example samples/V2/ParticipantsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see ParticipantsClient::listLocationsAsync()} . + * + * @example samples/V2/ParticipantsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/SessionEntityTypesClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/SessionEntityTypesClient.php new file mode 100644 index 0000000..8356eaf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/SessionEntityTypesClient.php @@ -0,0 +1,647 @@ + createSessionEntityTypeAsync(CreateSessionEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteSessionEntityTypeAsync(DeleteSessionEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface getSessionEntityTypeAsync(GetSessionEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface listSessionEntityTypesAsync(ListSessionEntityTypesRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateSessionEntityTypeAsync(UpdateSessionEntityTypeRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class SessionEntityTypesClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.SessionEntityTypes'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/session_entity_types_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/session_entity_types_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/session_entity_types_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/session_entity_types_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_environment_user_session resource. + */ + public static function projectEnvironmentUserSessionName(string $project, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectEnvironmentUserSession')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_entity_type resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $entityType + * + * @return string The formatted project_environment_user_session_entity_type resource. + */ + public static function projectEnvironmentUserSessionEntityTypeName(string $project, string $environment, string $user, string $session, string $entityType): string + { + return self::getPathTemplate('projectEnvironmentUserSessionEntityType')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_location_environment_user_session resource. + */ + public static function projectLocationEnvironmentUserSessionName(string $project, string $location, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSession')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $entityType + * + * @return string The formatted project_location_environment_user_session_entity_type resource. + */ + public static function projectLocationEnvironmentUserSessionEntityTypeName(string $project, string $location, string $environment, string $user, string $session, string $entityType): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session resource. + * + * @param string $project + * @param string $location + * @param string $session + * + * @return string The formatted project_location_session resource. + */ + public static function projectLocationSessionName(string $project, string $location, string $session): string + { + return self::getPathTemplate('projectLocationSession')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $entityType + * + * @return string The formatted project_location_session_entity_type resource. + */ + public static function projectLocationSessionEntityTypeName(string $project, string $location, string $session, string $entityType): string + { + return self::getPathTemplate('projectLocationSessionEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted project_session resource. + */ + public static function projectSessionName(string $project, string $session): string + { + return self::getPathTemplate('projectSession')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_entity_type resource. + * + * @param string $project + * @param string $session + * @param string $entityType + * + * @return string The formatted project_session_entity_type resource. + */ + public static function projectSessionEntityTypeName(string $project, string $session, string $entityType): string + { + return self::getPathTemplate('projectSessionEntityType')->render([ + 'project' => $project, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a session + * resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted session resource. + */ + public static function sessionName(string $project, string $session): string + { + return self::getPathTemplate('session')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * session_entity_type resource. + * + * @param string $project + * @param string $session + * @param string $entityType + * + * @return string The formatted session_entity_type resource. + */ + public static function sessionEntityTypeName(string $project, string $session, string $entityType): string + { + return self::getPathTemplate('sessionEntityType')->render([ + 'project' => $project, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - projectEnvironmentUserSession: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectEnvironmentUserSessionEntityType: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type} + * - projectLocationEnvironmentUserSession: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectLocationEnvironmentUserSessionEntityType: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type} + * - projectLocationSession: projects/{project}/locations/{location}/agent/sessions/{session} + * - projectLocationSessionEntityType: projects/{project}/locations/{location}/agent/sessions/{session}/entityTypes/{entity_type} + * - projectSession: projects/{project}/agent/sessions/{session} + * - projectSessionEntityType: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type} + * - session: projects/{project}/agent/sessions/{session} + * - sessionEntityType: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\SessionEntityTypesClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new SessionEntityTypesClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates a session entity type. + * + * If the specified session entity type already exists, overrides the session + * entity type. + * + * This method doesn't work with Google Assistant integration. + * Contact Dialogflow support if you need to use session entities + * with Google Assistant integration. + * + * The async variant is + * {@see SessionEntityTypesClient::createSessionEntityTypeAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/create_session_entity_type.php + * + * @param CreateSessionEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SessionEntityType + * + * @throws ApiException Thrown if the API call fails. + */ + public function createSessionEntityType(CreateSessionEntityTypeRequest $request, array $callOptions = []): SessionEntityType + { + return $this->startApiCall('CreateSessionEntityType', $request, $callOptions)->wait(); + } + + /** + * Deletes the specified session entity type. + * + * This method doesn't work with Google Assistant integration. + * Contact Dialogflow support if you need to use session entities + * with Google Assistant integration. + * + * The async variant is + * {@see SessionEntityTypesClient::deleteSessionEntityTypeAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/delete_session_entity_type.php + * + * @param DeleteSessionEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteSessionEntityType(DeleteSessionEntityTypeRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteSessionEntityType', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified session entity type. + * + * This method doesn't work with Google Assistant integration. + * Contact Dialogflow support if you need to use session entities + * with Google Assistant integration. + * + * The async variant is + * {@see SessionEntityTypesClient::getSessionEntityTypeAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/get_session_entity_type.php + * + * @param GetSessionEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SessionEntityType + * + * @throws ApiException Thrown if the API call fails. + */ + public function getSessionEntityType(GetSessionEntityTypeRequest $request, array $callOptions = []): SessionEntityType + { + return $this->startApiCall('GetSessionEntityType', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all session entity types in the specified session. + * + * This method doesn't work with Google Assistant integration. + * Contact Dialogflow support if you need to use session entities + * with Google Assistant integration. + * + * The async variant is + * {@see SessionEntityTypesClient::listSessionEntityTypesAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/list_session_entity_types.php + * + * @param ListSessionEntityTypesRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listSessionEntityTypes(ListSessionEntityTypesRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListSessionEntityTypes', $request, $callOptions); + } + + /** + * Updates the specified session entity type. + * + * This method doesn't work with Google Assistant integration. + * Contact Dialogflow support if you need to use session entities + * with Google Assistant integration. + * + * The async variant is + * {@see SessionEntityTypesClient::updateSessionEntityTypeAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/update_session_entity_type.php + * + * @param UpdateSessionEntityTypeRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return SessionEntityType + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateSessionEntityType(UpdateSessionEntityTypeRequest $request, array $callOptions = []): SessionEntityType + { + return $this->startApiCall('UpdateSessionEntityType', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see SessionEntityTypesClient::getLocationAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see SessionEntityTypesClient::listLocationsAsync()} . + * + * @example samples/V2/SessionEntityTypesClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/SessionsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/SessionsClient.php new file mode 100644 index 0000000..e4a5048 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/SessionsClient.php @@ -0,0 +1,692 @@ + detectIntentAsync(DetectIntentRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class SessionsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Sessions'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/sessions_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/sessions_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/sessions_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/sessions_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a context + * resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted context resource. + */ + public static function contextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('context')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a phrase_set + * resource. + * + * @param string $project + * @param string $location + * @param string $phraseSet + * + * @return string The formatted phrase_set resource. + */ + public static function phraseSetName(string $project, string $location, string $phraseSet): string + { + return self::getPathTemplate('phraseSet')->render([ + 'project' => $project, + 'location' => $location, + 'phrase_set' => $phraseSet, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_environment_user_session resource. + */ + public static function projectEnvironmentUserSessionName(string $project, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectEnvironmentUserSession')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_context resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_environment_user_session_context resource. + */ + public static function projectEnvironmentUserSessionContextName(string $project, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_environment_user_session_entity_type resource. + * + * @param string $project + * @param string $environment + * @param string $user + * @param string $session + * @param string $entityType + * + * @return string The formatted project_environment_user_session_entity_type resource. + */ + public static function projectEnvironmentUserSessionEntityTypeName(string $project, string $environment, string $user, string $session, string $entityType): string + { + return self::getPathTemplate('projectEnvironmentUserSessionEntityType')->render([ + 'project' => $project, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * + * @return string The formatted project_location_environment_user_session resource. + */ + public static function projectLocationEnvironmentUserSessionName(string $project, string $location, string $environment, string $user, string $session): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSession')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_context resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $context + * + * @return string The formatted project_location_environment_user_session_context resource. + */ + public static function projectLocationEnvironmentUserSessionContextName(string $project, string $location, string $environment, string $user, string $session, string $context): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_environment_user_session_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $environment + * @param string $user + * @param string $session + * @param string $entityType + * + * @return string The formatted project_location_environment_user_session_entity_type resource. + */ + public static function projectLocationEnvironmentUserSessionEntityTypeName(string $project, string $location, string $environment, string $user, string $session, string $entityType): string + { + return self::getPathTemplate('projectLocationEnvironmentUserSessionEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'environment' => $environment, + 'user' => $user, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session resource. + * + * @param string $project + * @param string $location + * @param string $session + * + * @return string The formatted project_location_session resource. + */ + public static function projectLocationSessionName(string $project, string $location, string $session): string + { + return self::getPathTemplate('projectLocationSession')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_context resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $context + * + * @return string The formatted project_location_session_context resource. + */ + public static function projectLocationSessionContextName(string $project, string $location, string $session, string $context): string + { + return self::getPathTemplate('projectLocationSessionContext')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_session_entity_type resource. + * + * @param string $project + * @param string $location + * @param string $session + * @param string $entityType + * + * @return string The formatted project_location_session_entity_type resource. + */ + public static function projectLocationSessionEntityTypeName(string $project, string $location, string $session, string $entityType): string + { + return self::getPathTemplate('projectLocationSessionEntityType')->render([ + 'project' => $project, + 'location' => $location, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted project_session resource. + */ + public static function projectSessionName(string $project, string $session): string + { + return self::getPathTemplate('projectSession')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_context resource. + * + * @param string $project + * @param string $session + * @param string $context + * + * @return string The formatted project_session_context resource. + */ + public static function projectSessionContextName(string $project, string $session, string $context): string + { + return self::getPathTemplate('projectSessionContext')->render([ + 'project' => $project, + 'session' => $session, + 'context' => $context, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_session_entity_type resource. + * + * @param string $project + * @param string $session + * @param string $entityType + * + * @return string The formatted project_session_entity_type resource. + */ + public static function projectSessionEntityTypeName(string $project, string $session, string $entityType): string + { + return self::getPathTemplate('projectSessionEntityType')->render([ + 'project' => $project, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a session + * resource. + * + * @param string $project + * @param string $session + * + * @return string The formatted session resource. + */ + public static function sessionName(string $project, string $session): string + { + return self::getPathTemplate('session')->render([ + 'project' => $project, + 'session' => $session, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * session_entity_type resource. + * + * @param string $project + * @param string $session + * @param string $entityType + * + * @return string The formatted session_entity_type resource. + */ + public static function sessionEntityTypeName(string $project, string $session, string $entityType): string + { + return self::getPathTemplate('sessionEntityType')->render([ + 'project' => $project, + 'session' => $session, + 'entity_type' => $entityType, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - context: projects/{project}/agent/sessions/{session}/contexts/{context} + * - phraseSet: projects/{project}/locations/{location}/phraseSets/{phrase_set} + * - projectEnvironmentUserSession: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectEnvironmentUserSessionContext: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectEnvironmentUserSessionEntityType: projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type} + * - projectLocationEnvironmentUserSession: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session} + * - projectLocationEnvironmentUserSessionContext: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context} + * - projectLocationEnvironmentUserSessionEntityType: projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type} + * - projectLocationSession: projects/{project}/locations/{location}/agent/sessions/{session} + * - projectLocationSessionContext: projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context} + * - projectLocationSessionEntityType: projects/{project}/locations/{location}/agent/sessions/{session}/entityTypes/{entity_type} + * - projectSession: projects/{project}/agent/sessions/{session} + * - projectSessionContext: projects/{project}/agent/sessions/{session}/contexts/{context} + * - projectSessionEntityType: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type} + * - session: projects/{project}/agent/sessions/{session} + * - sessionEntityType: projects/{project}/agent/sessions/{session}/entityTypes/{entity_type} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\SessionsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new SessionsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Processes a natural language query and returns structured, actionable data + * as a result. This method is not idempotent, because it may cause contexts + * and session entity types to be updated, which in turn might affect + * results of future queries. + * + * If you might use + * [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) + * or other CCAI products now or in the future, consider using + * [AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * instead of `DetectIntent`. `AnalyzeContent` has additional + * functionality for Agent Assist and other CCAI products. + * + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * The async variant is {@see SessionsClient::detectIntentAsync()} . + * + * @example samples/V2/SessionsClient/detect_intent.php + * + * @param DetectIntentRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return DetectIntentResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function detectIntent(DetectIntentRequest $request, array $callOptions = []): DetectIntentResponse + { + return $this->startApiCall('DetectIntent', $request, $callOptions)->wait(); + } + + /** + * Processes a natural language query in audio format in a streaming fashion + * and returns structured, actionable data as a result. This method is only + * available via the gRPC API (not REST). + * + * If you might use + * [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) + * or other CCAI products now or in the future, consider using + * [StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] + * instead of `StreamingDetectIntent`. `StreamingAnalyzeContent` has + * additional functionality for Agent Assist and other CCAI products. + * + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * @example samples/V2/SessionsClient/streaming_detect_intent.php + * + * @param array $callOptions { + * Optional. + * + * @type int $timeoutMillis + * Timeout to use for this call. + * } + * + * @return BidiStream + * + * @throws ApiException Thrown if the API call fails. + */ + public function streamingDetectIntent(array $callOptions = []): BidiStream + { + return $this->startApiCall('StreamingDetectIntent', null, $callOptions); + } + + /** + * Gets information about a location. + * + * The async variant is {@see SessionsClient::getLocationAsync()} . + * + * @example samples/V2/SessionsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see SessionsClient::listLocationsAsync()} . + * + * @example samples/V2/SessionsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/Client/VersionsClient.php b/vendor/google/cloud-dialogflow/src/V2/Client/VersionsClient.php new file mode 100644 index 0000000..5cbc2ef --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Client/VersionsClient.php @@ -0,0 +1,516 @@ + createVersionAsync(CreateVersionRequest $request, array $optionalArgs = []) + * @method PromiseInterface deleteVersionAsync(DeleteVersionRequest $request, array $optionalArgs = []) + * @method PromiseInterface getVersionAsync(GetVersionRequest $request, array $optionalArgs = []) + * @method PromiseInterface listVersionsAsync(ListVersionsRequest $request, array $optionalArgs = []) + * @method PromiseInterface updateVersionAsync(UpdateVersionRequest $request, array $optionalArgs = []) + * @method PromiseInterface getLocationAsync(GetLocationRequest $request, array $optionalArgs = []) + * @method PromiseInterface listLocationsAsync(ListLocationsRequest $request, array $optionalArgs = []) + */ +final class VersionsClient +{ + use GapicClientTrait; + use ResourceHelperTrait; + + /** The name of the service. */ + private const SERVICE_NAME = 'google.cloud.dialogflow.v2.Versions'; + + /** + * The default address of the service. + * + * @deprecated SERVICE_ADDRESS_TEMPLATE should be used instead. + */ + private const SERVICE_ADDRESS = 'dialogflow.googleapis.com'; + + /** The address template of the service. */ + private const SERVICE_ADDRESS_TEMPLATE = 'dialogflow.UNIVERSE_DOMAIN'; + + /** The default port of the service. */ + private const DEFAULT_SERVICE_PORT = 443; + + /** The name of the code generator, to be included in the agent header. */ + private const CODEGEN_NAME = 'gapic'; + + /** The default scopes required by the service. */ + public static $serviceScopes = [ + 'https://www.googleapis.com/auth/cloud-platform', + 'https://www.googleapis.com/auth/dialogflow', + ]; + + private static function getClientDefaults() + { + return [ + 'serviceName' => self::SERVICE_NAME, + 'apiEndpoint' => self::SERVICE_ADDRESS . ':' . self::DEFAULT_SERVICE_PORT, + 'clientConfig' => __DIR__ . '/../resources/versions_client_config.json', + 'descriptorsConfigPath' => __DIR__ . '/../resources/versions_descriptor_config.php', + 'gcpApiConfigPath' => __DIR__ . '/../resources/versions_grpc_config.json', + 'credentialsConfig' => [ + 'defaultScopes' => self::$serviceScopes, + ], + 'transportConfig' => [ + 'rest' => [ + 'restClientConfigPath' => __DIR__ . '/../resources/versions_rest_client_config.php', + ], + ], + ]; + } + + /** + * Formats a string containing the fully-qualified path to represent a agent + * resource. + * + * @param string $project + * + * @return string The formatted agent resource. + */ + public static function agentName(string $project): string + { + return self::getPathTemplate('agent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_agent resource. + * + * @param string $project + * + * @return string The formatted project_agent resource. + */ + public static function projectAgentName(string $project): string + { + return self::getPathTemplate('projectAgent')->render([ + 'project' => $project, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_agent resource. + * + * @param string $project + * @param string $location + * + * @return string The formatted project_location_agent resource. + */ + public static function projectLocationAgentName(string $project, string $location): string + { + return self::getPathTemplate('projectLocationAgent')->render([ + 'project' => $project, + 'location' => $location, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_location_version resource. + * + * @param string $project + * @param string $location + * @param string $version + * + * @return string The formatted project_location_version resource. + */ + public static function projectLocationVersionName(string $project, string $location, string $version): string + { + return self::getPathTemplate('projectLocationVersion')->render([ + 'project' => $project, + 'location' => $location, + 'version' => $version, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a + * project_version resource. + * + * @param string $project + * @param string $version + * + * @return string The formatted project_version resource. + */ + public static function projectVersionName(string $project, string $version): string + { + return self::getPathTemplate('projectVersion')->render([ + 'project' => $project, + 'version' => $version, + ]); + } + + /** + * Formats a string containing the fully-qualified path to represent a version + * resource. + * + * @param string $project + * @param string $version + * + * @return string The formatted version resource. + */ + public static function versionName(string $project, string $version): string + { + return self::getPathTemplate('version')->render([ + 'project' => $project, + 'version' => $version, + ]); + } + + /** + * Parses a formatted name string and returns an associative array of the components in the name. + * The following name formats are supported: + * Template: Pattern + * - agent: projects/{project}/agent + * - projectAgent: projects/{project}/agent + * - projectLocationAgent: projects/{project}/locations/{location}/agent + * - projectLocationVersion: projects/{project}/locations/{location}/agent/versions/{version} + * - projectVersion: projects/{project}/agent/versions/{version} + * - version: projects/{project}/agent/versions/{version} + * + * The optional $template argument can be supplied to specify a particular pattern, + * and must match one of the templates listed above. If no $template argument is + * provided, or if the $template argument does not match one of the templates + * listed, then parseName will check each of the supported templates, and return + * the first match. + * + * @param string $formattedName The formatted name string + * @param ?string $template Optional name of template to match + * + * @return array An associative array from name component IDs to component values. + * + * @throws ValidationException If $formattedName could not be matched. + */ + public static function parseName(string $formattedName, ?string $template = null): array + { + return self::parseFormattedName($formattedName, $template); + } + + /** + * Constructor. + * + * @param array|ClientOptions $options { + * Optional. Options for configuring the service API wrapper. + * + * @type string $apiEndpoint + * The address of the API remote host. May optionally include the port, formatted + * as ":". Default 'dialogflow.googleapis.com:443'. + * @type FetchAuthTokenInterface|CredentialsWrapper $credentials + * This option should only be used with a pre-constructed + * {@see FetchAuthTokenInterface} or {@see CredentialsWrapper} object. Note that + * when one of these objects are provided, any settings in $credentialsConfig will + * be ignored. + * **Important**: If you are providing a path to a credentials file, or a decoded + * credentials file as a PHP array, this usage is now DEPRECATED. Providing an + * unvalidated credential configuration to Google APIs can compromise the security + * of your systems and data. It is recommended to create the credentials explicitly + * ``` + * use Google\Auth\Credentials\ServiceAccountCredentials; + * use Google\Cloud\Dialogflow\V2\VersionsClient; + * $creds = new ServiceAccountCredentials($scopes, $json); + * $options = new VersionsClient(['credentials' => $creds]); + * ``` + * {@see + * https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the + * client. For a full list of supporting configuration options, see + * {@see \Google\ApiCore\CredentialsWrapper::build()} . + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either + * a path to a JSON file, or a PHP array containing the decoded JSON data. By + * default this settings points to the default client config file, which is + * provided in the resources folder. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string + * `rest` or `grpc`. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already + * instantiated {@see \Google\ApiCore\Transport\TransportInterface} object. Note + * that when this object is provided, any settings in $transportConfig, and any + * $apiEndpoint setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * ]; + * See the {@see \Google\ApiCore\Transport\GrpcTransport::build()} and + * {@see \Google\ApiCore\Transport\RestTransport::build()} methods for the + * supported options. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. This can be used to + * provide a certificate and private key to the transport layer for mTLS. + * @type false|LoggerInterface $logger + * A PSR-3 compliant logger. If set to false, logging is disabled, ignoring the + * 'GOOGLE_SDK_PHP_LOGGING' environment flag + * @type string $universeDomain + * The service domain for the client. Defaults to 'googleapis.com'. + * } + * + * @throws ValidationException + */ + public function __construct(array|ClientOptions $options = []) + { + $clientOptions = $this->buildClientOptions($options); + $this->setClientOptions($clientOptions); + } + + /** Handles execution of the async variants for each documented method. */ + public function __call($method, $args) + { + if (substr($method, -5) !== 'Async') { + trigger_error('Call to undefined method ' . __CLASS__ . "::$method()", E_USER_ERROR); + } + + array_unshift($args, substr($method, 0, -5)); + return call_user_func_array([$this, 'startAsyncCall'], $args); + } + + /** + * Creates an agent version. + * + * The new version points to the agent instance in the "default" environment. + * + * The async variant is {@see VersionsClient::createVersionAsync()} . + * + * @example samples/V2/VersionsClient/create_version.php + * + * @param CreateVersionRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Version + * + * @throws ApiException Thrown if the API call fails. + */ + public function createVersion(CreateVersionRequest $request, array $callOptions = []): Version + { + return $this->startApiCall('CreateVersion', $request, $callOptions)->wait(); + } + + /** + * Delete the specified agent version. + * + * The async variant is {@see VersionsClient::deleteVersionAsync()} . + * + * @example samples/V2/VersionsClient/delete_version.php + * + * @param DeleteVersionRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @throws ApiException Thrown if the API call fails. + */ + public function deleteVersion(DeleteVersionRequest $request, array $callOptions = []): void + { + $this->startApiCall('DeleteVersion', $request, $callOptions)->wait(); + } + + /** + * Retrieves the specified agent version. + * + * The async variant is {@see VersionsClient::getVersionAsync()} . + * + * @example samples/V2/VersionsClient/get_version.php + * + * @param GetVersionRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Version + * + * @throws ApiException Thrown if the API call fails. + */ + public function getVersion(GetVersionRequest $request, array $callOptions = []): Version + { + return $this->startApiCall('GetVersion', $request, $callOptions)->wait(); + } + + /** + * Returns the list of all versions of the specified agent. + * + * The async variant is {@see VersionsClient::listVersionsAsync()} . + * + * @example samples/V2/VersionsClient/list_versions.php + * + * @param ListVersionsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listVersions(ListVersionsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListVersions', $request, $callOptions); + } + + /** + * Updates the specified agent version. + * + * Note that this method does not allow you to update the state of the agent + * the given version points to. It allows you to update only mutable + * properties of the version resource. + * + * The async variant is {@see VersionsClient::updateVersionAsync()} . + * + * @example samples/V2/VersionsClient/update_version.php + * + * @param UpdateVersionRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Version + * + * @throws ApiException Thrown if the API call fails. + */ + public function updateVersion(UpdateVersionRequest $request, array $callOptions = []): Version + { + return $this->startApiCall('UpdateVersion', $request, $callOptions)->wait(); + } + + /** + * Gets information about a location. + * + * The async variant is {@see VersionsClient::getLocationAsync()} . + * + * @example samples/V2/VersionsClient/get_location.php + * + * @param GetLocationRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return Location + * + * @throws ApiException Thrown if the API call fails. + */ + public function getLocation(GetLocationRequest $request, array $callOptions = []): Location + { + return $this->startApiCall('GetLocation', $request, $callOptions)->wait(); + } + + /** + * Lists information about the supported locations for this service. + * + * The async variant is {@see VersionsClient::listLocationsAsync()} . + * + * @example samples/V2/VersionsClient/list_locations.php + * + * @param ListLocationsRequest $request A request to house fields associated with the call. + * @param array $callOptions { + * Optional. + * + * @type RetrySettings|array $retrySettings + * Retry settings to use for this call. Can be a {@see RetrySettings} object, or an + * associative array of retry settings parameters. See the documentation on + * {@see RetrySettings} for example usage. + * } + * + * @return PagedListResponse + * + * @throws ApiException Thrown if the API call fails. + */ + public function listLocations(ListLocationsRequest $request, array $callOptions = []): PagedListResponse + { + return $this->startApiCall('ListLocations', $request, $callOptions); + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/CloudConversationDebuggingInfo.php b/vendor/google/cloud-dialogflow/src/V2/CloudConversationDebuggingInfo.php new file mode 100644 index 0000000..739ec5a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CloudConversationDebuggingInfo.php @@ -0,0 +1,750 @@ +google.cloud.dialogflow.v2.CloudConversationDebuggingInfo + */ +class CloudConversationDebuggingInfo extends \Google\Protobuf\Internal\Message +{ + /** + * Number of input audio data chunks in streaming requests. + * + * Generated from protobuf field int32 audio_data_chunks = 1; + */ + protected $audio_data_chunks = 0; + /** + * Time offset of the end of speech utterance relative to the + * beginning of the first audio chunk. + * + * Generated from protobuf field .google.protobuf.Duration result_end_time_offset = 2; + */ + protected $result_end_time_offset = null; + /** + * Duration of first audio chunk. + * + * Generated from protobuf field .google.protobuf.Duration first_audio_duration = 3; + */ + protected $first_audio_duration = null; + /** + * Whether client used single utterance mode. + * + * Generated from protobuf field bool single_utterance = 5; + */ + protected $single_utterance = false; + /** + * Time offsets of the speech partial results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration speech_partial_results_end_times = 6; + */ + private $speech_partial_results_end_times; + /** + * Time offsets of the speech final results (is_final=true) relative to the + * beginning of the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration speech_final_results_end_times = 7; + */ + private $speech_final_results_end_times; + /** + * Total number of partial responses. + * + * Generated from protobuf field int32 partial_responses = 8; + */ + protected $partial_responses = 0; + /** + * Time offset of Speaker ID stream close time relative to the Speech stream + * close time in milliseconds. Only meaningful for conversations involving + * passive verification. + * + * Generated from protobuf field int32 speaker_id_passive_latency_ms_offset = 9; + */ + protected $speaker_id_passive_latency_ms_offset = 0; + /** + * Whether a barge-in event is triggered in this request. + * + * Generated from protobuf field bool bargein_event_triggered = 10; + */ + protected $bargein_event_triggered = false; + /** + * Whether speech uses single utterance mode. + * + * Generated from protobuf field bool speech_single_utterance = 11; + */ + protected $speech_single_utterance = false; + /** + * Time offsets of the DTMF partial results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration dtmf_partial_results_times = 12; + */ + private $dtmf_partial_results_times; + /** + * Time offsets of the DTMF final results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration dtmf_final_results_times = 13; + */ + private $dtmf_final_results_times; + /** + * Time offset of the end-of-single-utterance signal relative to the + * beginning of the stream. + * + * Generated from protobuf field .google.protobuf.Duration single_utterance_end_time_offset = 14; + */ + protected $single_utterance_end_time_offset = null; + /** + * No speech timeout settings for the stream. + * + * Generated from protobuf field .google.protobuf.Duration no_speech_timeout = 15; + */ + protected $no_speech_timeout = null; + /** + * Speech endpointing timeout settings for the stream. + * + * Generated from protobuf field .google.protobuf.Duration endpointing_timeout = 19; + */ + protected $endpointing_timeout = null; + /** + * Whether the streaming terminates with an injected text query. + * + * Generated from protobuf field bool is_input_text = 16; + */ + protected $is_input_text = false; + /** + * Client half close time in terms of input audio duration. + * + * Generated from protobuf field .google.protobuf.Duration client_half_close_time_offset = 17; + */ + protected $client_half_close_time_offset = null; + /** + * Client half close time in terms of API streaming duration. + * + * Generated from protobuf field .google.protobuf.Duration client_half_close_streaming_time_offset = 18; + */ + protected $client_half_close_streaming_time_offset = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $audio_data_chunks + * Number of input audio data chunks in streaming requests. + * @type \Google\Protobuf\Duration $result_end_time_offset + * Time offset of the end of speech utterance relative to the + * beginning of the first audio chunk. + * @type \Google\Protobuf\Duration $first_audio_duration + * Duration of first audio chunk. + * @type bool $single_utterance + * Whether client used single utterance mode. + * @type array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $speech_partial_results_end_times + * Time offsets of the speech partial results relative to the beginning of + * the stream. + * @type array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $speech_final_results_end_times + * Time offsets of the speech final results (is_final=true) relative to the + * beginning of the stream. + * @type int $partial_responses + * Total number of partial responses. + * @type int $speaker_id_passive_latency_ms_offset + * Time offset of Speaker ID stream close time relative to the Speech stream + * close time in milliseconds. Only meaningful for conversations involving + * passive verification. + * @type bool $bargein_event_triggered + * Whether a barge-in event is triggered in this request. + * @type bool $speech_single_utterance + * Whether speech uses single utterance mode. + * @type array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $dtmf_partial_results_times + * Time offsets of the DTMF partial results relative to the beginning of + * the stream. + * @type array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $dtmf_final_results_times + * Time offsets of the DTMF final results relative to the beginning of + * the stream. + * @type \Google\Protobuf\Duration $single_utterance_end_time_offset + * Time offset of the end-of-single-utterance signal relative to the + * beginning of the stream. + * @type \Google\Protobuf\Duration $no_speech_timeout + * No speech timeout settings for the stream. + * @type \Google\Protobuf\Duration $endpointing_timeout + * Speech endpointing timeout settings for the stream. + * @type bool $is_input_text + * Whether the streaming terminates with an injected text query. + * @type \Google\Protobuf\Duration $client_half_close_time_offset + * Client half close time in terms of input audio duration. + * @type \Google\Protobuf\Duration $client_half_close_streaming_time_offset + * Client half close time in terms of API streaming duration. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Number of input audio data chunks in streaming requests. + * + * Generated from protobuf field int32 audio_data_chunks = 1; + * @return int + */ + public function getAudioDataChunks() + { + return $this->audio_data_chunks; + } + + /** + * Number of input audio data chunks in streaming requests. + * + * Generated from protobuf field int32 audio_data_chunks = 1; + * @param int $var + * @return $this + */ + public function setAudioDataChunks($var) + { + GPBUtil::checkInt32($var); + $this->audio_data_chunks = $var; + + return $this; + } + + /** + * Time offset of the end of speech utterance relative to the + * beginning of the first audio chunk. + * + * Generated from protobuf field .google.protobuf.Duration result_end_time_offset = 2; + * @return \Google\Protobuf\Duration|null + */ + public function getResultEndTimeOffset() + { + return $this->result_end_time_offset; + } + + public function hasResultEndTimeOffset() + { + return isset($this->result_end_time_offset); + } + + public function clearResultEndTimeOffset() + { + unset($this->result_end_time_offset); + } + + /** + * Time offset of the end of speech utterance relative to the + * beginning of the first audio chunk. + * + * Generated from protobuf field .google.protobuf.Duration result_end_time_offset = 2; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setResultEndTimeOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->result_end_time_offset = $var; + + return $this; + } + + /** + * Duration of first audio chunk. + * + * Generated from protobuf field .google.protobuf.Duration first_audio_duration = 3; + * @return \Google\Protobuf\Duration|null + */ + public function getFirstAudioDuration() + { + return $this->first_audio_duration; + } + + public function hasFirstAudioDuration() + { + return isset($this->first_audio_duration); + } + + public function clearFirstAudioDuration() + { + unset($this->first_audio_duration); + } + + /** + * Duration of first audio chunk. + * + * Generated from protobuf field .google.protobuf.Duration first_audio_duration = 3; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setFirstAudioDuration($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->first_audio_duration = $var; + + return $this; + } + + /** + * Whether client used single utterance mode. + * + * Generated from protobuf field bool single_utterance = 5; + * @return bool + */ + public function getSingleUtterance() + { + return $this->single_utterance; + } + + /** + * Whether client used single utterance mode. + * + * Generated from protobuf field bool single_utterance = 5; + * @param bool $var + * @return $this + */ + public function setSingleUtterance($var) + { + GPBUtil::checkBool($var); + $this->single_utterance = $var; + + return $this; + } + + /** + * Time offsets of the speech partial results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration speech_partial_results_end_times = 6; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSpeechPartialResultsEndTimes() + { + return $this->speech_partial_results_end_times; + } + + /** + * Time offsets of the speech partial results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration speech_partial_results_end_times = 6; + * @param array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSpeechPartialResultsEndTimes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Duration::class); + $this->speech_partial_results_end_times = $arr; + + return $this; + } + + /** + * Time offsets of the speech final results (is_final=true) relative to the + * beginning of the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration speech_final_results_end_times = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSpeechFinalResultsEndTimes() + { + return $this->speech_final_results_end_times; + } + + /** + * Time offsets of the speech final results (is_final=true) relative to the + * beginning of the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration speech_final_results_end_times = 7; + * @param array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSpeechFinalResultsEndTimes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Duration::class); + $this->speech_final_results_end_times = $arr; + + return $this; + } + + /** + * Total number of partial responses. + * + * Generated from protobuf field int32 partial_responses = 8; + * @return int + */ + public function getPartialResponses() + { + return $this->partial_responses; + } + + /** + * Total number of partial responses. + * + * Generated from protobuf field int32 partial_responses = 8; + * @param int $var + * @return $this + */ + public function setPartialResponses($var) + { + GPBUtil::checkInt32($var); + $this->partial_responses = $var; + + return $this; + } + + /** + * Time offset of Speaker ID stream close time relative to the Speech stream + * close time in milliseconds. Only meaningful for conversations involving + * passive verification. + * + * Generated from protobuf field int32 speaker_id_passive_latency_ms_offset = 9; + * @return int + */ + public function getSpeakerIdPassiveLatencyMsOffset() + { + return $this->speaker_id_passive_latency_ms_offset; + } + + /** + * Time offset of Speaker ID stream close time relative to the Speech stream + * close time in milliseconds. Only meaningful for conversations involving + * passive verification. + * + * Generated from protobuf field int32 speaker_id_passive_latency_ms_offset = 9; + * @param int $var + * @return $this + */ + public function setSpeakerIdPassiveLatencyMsOffset($var) + { + GPBUtil::checkInt32($var); + $this->speaker_id_passive_latency_ms_offset = $var; + + return $this; + } + + /** + * Whether a barge-in event is triggered in this request. + * + * Generated from protobuf field bool bargein_event_triggered = 10; + * @return bool + */ + public function getBargeinEventTriggered() + { + return $this->bargein_event_triggered; + } + + /** + * Whether a barge-in event is triggered in this request. + * + * Generated from protobuf field bool bargein_event_triggered = 10; + * @param bool $var + * @return $this + */ + public function setBargeinEventTriggered($var) + { + GPBUtil::checkBool($var); + $this->bargein_event_triggered = $var; + + return $this; + } + + /** + * Whether speech uses single utterance mode. + * + * Generated from protobuf field bool speech_single_utterance = 11; + * @return bool + */ + public function getSpeechSingleUtterance() + { + return $this->speech_single_utterance; + } + + /** + * Whether speech uses single utterance mode. + * + * Generated from protobuf field bool speech_single_utterance = 11; + * @param bool $var + * @return $this + */ + public function setSpeechSingleUtterance($var) + { + GPBUtil::checkBool($var); + $this->speech_single_utterance = $var; + + return $this; + } + + /** + * Time offsets of the DTMF partial results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration dtmf_partial_results_times = 12; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDtmfPartialResultsTimes() + { + return $this->dtmf_partial_results_times; + } + + /** + * Time offsets of the DTMF partial results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration dtmf_partial_results_times = 12; + * @param array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDtmfPartialResultsTimes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Duration::class); + $this->dtmf_partial_results_times = $arr; + + return $this; + } + + /** + * Time offsets of the DTMF final results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration dtmf_final_results_times = 13; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDtmfFinalResultsTimes() + { + return $this->dtmf_final_results_times; + } + + /** + * Time offsets of the DTMF final results relative to the beginning of + * the stream. + * + * Generated from protobuf field repeated .google.protobuf.Duration dtmf_final_results_times = 13; + * @param array<\Google\Protobuf\Duration>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDtmfFinalResultsTimes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Duration::class); + $this->dtmf_final_results_times = $arr; + + return $this; + } + + /** + * Time offset of the end-of-single-utterance signal relative to the + * beginning of the stream. + * + * Generated from protobuf field .google.protobuf.Duration single_utterance_end_time_offset = 14; + * @return \Google\Protobuf\Duration|null + */ + public function getSingleUtteranceEndTimeOffset() + { + return $this->single_utterance_end_time_offset; + } + + public function hasSingleUtteranceEndTimeOffset() + { + return isset($this->single_utterance_end_time_offset); + } + + public function clearSingleUtteranceEndTimeOffset() + { + unset($this->single_utterance_end_time_offset); + } + + /** + * Time offset of the end-of-single-utterance signal relative to the + * beginning of the stream. + * + * Generated from protobuf field .google.protobuf.Duration single_utterance_end_time_offset = 14; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setSingleUtteranceEndTimeOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->single_utterance_end_time_offset = $var; + + return $this; + } + + /** + * No speech timeout settings for the stream. + * + * Generated from protobuf field .google.protobuf.Duration no_speech_timeout = 15; + * @return \Google\Protobuf\Duration|null + */ + public function getNoSpeechTimeout() + { + return $this->no_speech_timeout; + } + + public function hasNoSpeechTimeout() + { + return isset($this->no_speech_timeout); + } + + public function clearNoSpeechTimeout() + { + unset($this->no_speech_timeout); + } + + /** + * No speech timeout settings for the stream. + * + * Generated from protobuf field .google.protobuf.Duration no_speech_timeout = 15; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setNoSpeechTimeout($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->no_speech_timeout = $var; + + return $this; + } + + /** + * Speech endpointing timeout settings for the stream. + * + * Generated from protobuf field .google.protobuf.Duration endpointing_timeout = 19; + * @return \Google\Protobuf\Duration|null + */ + public function getEndpointingTimeout() + { + return $this->endpointing_timeout; + } + + public function hasEndpointingTimeout() + { + return isset($this->endpointing_timeout); + } + + public function clearEndpointingTimeout() + { + unset($this->endpointing_timeout); + } + + /** + * Speech endpointing timeout settings for the stream. + * + * Generated from protobuf field .google.protobuf.Duration endpointing_timeout = 19; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setEndpointingTimeout($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->endpointing_timeout = $var; + + return $this; + } + + /** + * Whether the streaming terminates with an injected text query. + * + * Generated from protobuf field bool is_input_text = 16; + * @return bool + */ + public function getIsInputText() + { + return $this->is_input_text; + } + + /** + * Whether the streaming terminates with an injected text query. + * + * Generated from protobuf field bool is_input_text = 16; + * @param bool $var + * @return $this + */ + public function setIsInputText($var) + { + GPBUtil::checkBool($var); + $this->is_input_text = $var; + + return $this; + } + + /** + * Client half close time in terms of input audio duration. + * + * Generated from protobuf field .google.protobuf.Duration client_half_close_time_offset = 17; + * @return \Google\Protobuf\Duration|null + */ + public function getClientHalfCloseTimeOffset() + { + return $this->client_half_close_time_offset; + } + + public function hasClientHalfCloseTimeOffset() + { + return isset($this->client_half_close_time_offset); + } + + public function clearClientHalfCloseTimeOffset() + { + unset($this->client_half_close_time_offset); + } + + /** + * Client half close time in terms of input audio duration. + * + * Generated from protobuf field .google.protobuf.Duration client_half_close_time_offset = 17; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setClientHalfCloseTimeOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->client_half_close_time_offset = $var; + + return $this; + } + + /** + * Client half close time in terms of API streaming duration. + * + * Generated from protobuf field .google.protobuf.Duration client_half_close_streaming_time_offset = 18; + * @return \Google\Protobuf\Duration|null + */ + public function getClientHalfCloseStreamingTimeOffset() + { + return $this->client_half_close_streaming_time_offset; + } + + public function hasClientHalfCloseStreamingTimeOffset() + { + return isset($this->client_half_close_streaming_time_offset); + } + + public function clearClientHalfCloseStreamingTimeOffset() + { + unset($this->client_half_close_streaming_time_offset); + } + + /** + * Client half close time in terms of API streaming duration. + * + * Generated from protobuf field .google.protobuf.Duration client_half_close_streaming_time_offset = 18; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setClientHalfCloseStreamingTimeOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->client_half_close_streaming_time_offset = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CompleteConversationRequest.php b/vendor/google/cloud-dialogflow/src/V2/CompleteConversationRequest.php new file mode 100644 index 0000000..32ef27e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CompleteConversationRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.CompleteConversationRequest + */ +class CompleteConversationRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Resource identifier of the conversation to close. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. Resource identifier of the conversation to close. + * Format: `projects//locations//conversations/`. Please see + * {@see ConversationsClient::conversationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\CompleteConversationRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. Resource identifier of the conversation to close. + * Format: `projects//locations//conversations/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. Resource identifier of the conversation to close. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. Resource identifier of the conversation to close. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Context.php b/vendor/google/cloud-dialogflow/src/V2/Context.php new file mode 100644 index 0000000..917ef8d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Context.php @@ -0,0 +1,261 @@ +google.cloud.dialogflow.v2.Context + */ +class Context extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The unique identifier of the context. Format: + * `projects//agent/sessions//contexts/`, + * or `projects//agent/environments//users//sessions//contexts/`. + * The `Context ID` is always converted to lowercase, may only contain + * characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * The following context names are reserved for internal use by Dialogflow. + * You should not use these contexts or create contexts with these names: + * * `__system_counters__` + * * `*_id_dialog_context` + * * `*_dialog_params_size` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + /** + * Optional. The number of conversational query requests after which the + * context expires. The default is `0`. If set to `0`, the context expires + * immediately. Contexts expire automatically after 20 minutes if there + * are no matching queries. + * + * Generated from protobuf field int32 lifespan_count = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $lifespan_count = 0; + /** + * Optional. The collection of parameters associated with this context. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $parameters = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The unique identifier of the context. Format: + * `projects//agent/sessions//contexts/`, + * or `projects//agent/environments//users//sessions//contexts/`. + * The `Context ID` is always converted to lowercase, may only contain + * characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * The following context names are reserved for internal use by Dialogflow. + * You should not use these contexts or create contexts with these names: + * * `__system_counters__` + * * `*_id_dialog_context` + * * `*_dialog_params_size` + * @type int $lifespan_count + * Optional. The number of conversational query requests after which the + * context expires. The default is `0`. If set to `0`, the context expires + * immediately. Contexts expire automatically after 20 minutes if there + * are no matching queries. + * @type \Google\Protobuf\Struct $parameters + * Optional. The collection of parameters associated with this context. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The unique identifier of the context. Format: + * `projects//agent/sessions//contexts/`, + * or `projects//agent/environments//users//sessions//contexts/`. + * The `Context ID` is always converted to lowercase, may only contain + * characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * The following context names are reserved for internal use by Dialogflow. + * You should not use these contexts or create contexts with these names: + * * `__system_counters__` + * * `*_id_dialog_context` + * * `*_dialog_params_size` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The unique identifier of the context. Format: + * `projects//agent/sessions//contexts/`, + * or `projects//agent/environments//users//sessions//contexts/`. + * The `Context ID` is always converted to lowercase, may only contain + * characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * The following context names are reserved for internal use by Dialogflow. + * You should not use these contexts or create contexts with these names: + * * `__system_counters__` + * * `*_id_dialog_context` + * * `*_dialog_params_size` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The number of conversational query requests after which the + * context expires. The default is `0`. If set to `0`, the context expires + * immediately. Contexts expire automatically after 20 minutes if there + * are no matching queries. + * + * Generated from protobuf field int32 lifespan_count = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getLifespanCount() + { + return $this->lifespan_count; + } + + /** + * Optional. The number of conversational query requests after which the + * context expires. The default is `0`. If set to `0`, the context expires + * immediately. Contexts expire automatically after 20 minutes if there + * are no matching queries. + * + * Generated from protobuf field int32 lifespan_count = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setLifespanCount($var) + { + GPBUtil::checkInt32($var); + $this->lifespan_count = $var; + + return $this; + } + + /** + * Optional. The collection of parameters associated with this context. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Struct|null + */ + public function getParameters() + { + return $this->parameters; + } + + public function hasParameters() + { + return isset($this->parameters); + } + + public function clearParameters() + { + unset($this->parameters); + } + + /** + * Optional. The collection of parameters associated with this context. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setParameters($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->parameters = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation.php b/vendor/google/cloud-dialogflow/src/V2/Conversation.php new file mode 100644 index 0000000..20037a3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation.php @@ -0,0 +1,458 @@ +google.cloud.dialogflow.v2.Conversation + */ +class Conversation extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Identifier. The unique identifier of this conversation. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IDENTIFIER]; + */ + protected $name = ''; + /** + * Output only. The current state of the Conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.LifecycleState lifecycle_state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $lifecycle_state = 0; + /** + * Required. The Conversation Profile to be used to configure this + * Conversation. This field cannot be updated. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $conversation_profile = ''; + /** + * Output only. It will not be empty if the conversation is to be connected + * over telephony. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationPhoneNumber phone_number = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $phone_number = null; + /** + * Output only. The time the conversation was started. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $start_time = null; + /** + * Output only. The time the conversation was finished. + * + * Generated from protobuf field .google.protobuf.Timestamp end_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $end_time = null; + /** + * Optional. The stage of a conversation. It indicates whether the virtual + * agent or a human agent is handling the conversation. + * If the conversation is created with the conversation profile that has + * Dialogflow config set, defaults to + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE]; + * Otherwise, defaults to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * If the conversation is created with the conversation profile that has + * Dialogflow config set but explicitly sets conversation_stage to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE], + * it skips + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] + * stage and directly goes to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ConversationStage conversation_stage = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $conversation_stage = 0; + /** + * Output only. The telephony connection information. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo telephony_connection_info = 10 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $telephony_connection_info = null; + /** + * Output only. The context reference updates provided by external systems. + * + * Generated from protobuf field map ingested_context_references = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $ingested_context_references; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. Identifier. The unique identifier of this conversation. + * Format: `projects//locations//conversations/`. + * @type int $lifecycle_state + * Output only. The current state of the Conversation. + * @type string $conversation_profile + * Required. The Conversation Profile to be used to configure this + * Conversation. This field cannot be updated. + * Format: `projects//locations//conversationProfiles/`. + * @type \Google\Cloud\Dialogflow\V2\ConversationPhoneNumber $phone_number + * Output only. It will not be empty if the conversation is to be connected + * over telephony. + * @type \Google\Protobuf\Timestamp $start_time + * Output only. The time the conversation was started. + * @type \Google\Protobuf\Timestamp $end_time + * Output only. The time the conversation was finished. + * @type int $conversation_stage + * Optional. The stage of a conversation. It indicates whether the virtual + * agent or a human agent is handling the conversation. + * If the conversation is created with the conversation profile that has + * Dialogflow config set, defaults to + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE]; + * Otherwise, defaults to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * If the conversation is created with the conversation profile that has + * Dialogflow config set but explicitly sets conversation_stage to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE], + * it skips + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] + * stage and directly goes to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * @type \Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo $telephony_connection_info + * Output only. The telephony connection information. + * @type array|\Google\Protobuf\Internal\MapField $ingested_context_references + * Output only. The context reference updates provided by external systems. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Identifier. The unique identifier of this conversation. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IDENTIFIER]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. Identifier. The unique identifier of this conversation. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IDENTIFIER]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Output only. The current state of the Conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.LifecycleState lifecycle_state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getLifecycleState() + { + return $this->lifecycle_state; + } + + /** + * Output only. The current state of the Conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.LifecycleState lifecycle_state = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setLifecycleState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Conversation\LifecycleState::class); + $this->lifecycle_state = $var; + + return $this; + } + + /** + * Required. The Conversation Profile to be used to configure this + * Conversation. This field cannot be updated. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + /** + * Required. The Conversation Profile to be used to configure this + * Conversation. This field cannot be updated. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 3 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkString($var, True); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Output only. It will not be empty if the conversation is to be connected + * over telephony. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationPhoneNumber phone_number = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\ConversationPhoneNumber|null + */ + public function getPhoneNumber() + { + return $this->phone_number; + } + + public function hasPhoneNumber() + { + return isset($this->phone_number); + } + + public function clearPhoneNumber() + { + unset($this->phone_number); + } + + /** + * Output only. It will not be empty if the conversation is to be connected + * over telephony. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationPhoneNumber phone_number = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\ConversationPhoneNumber $var + * @return $this + */ + public function setPhoneNumber($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationPhoneNumber::class); + $this->phone_number = $var; + + return $this; + } + + /** + * Output only. The time the conversation was started. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getStartTime() + { + return $this->start_time; + } + + public function hasStartTime() + { + return isset($this->start_time); + } + + public function clearStartTime() + { + unset($this->start_time); + } + + /** + * Output only. The time the conversation was started. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setStartTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->start_time = $var; + + return $this; + } + + /** + * Output only. The time the conversation was finished. + * + * Generated from protobuf field .google.protobuf.Timestamp end_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getEndTime() + { + return $this->end_time; + } + + public function hasEndTime() + { + return isset($this->end_time); + } + + public function clearEndTime() + { + unset($this->end_time); + } + + /** + * Output only. The time the conversation was finished. + * + * Generated from protobuf field .google.protobuf.Timestamp end_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setEndTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->end_time = $var; + + return $this; + } + + /** + * Optional. The stage of a conversation. It indicates whether the virtual + * agent or a human agent is handling the conversation. + * If the conversation is created with the conversation profile that has + * Dialogflow config set, defaults to + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE]; + * Otherwise, defaults to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * If the conversation is created with the conversation profile that has + * Dialogflow config set but explicitly sets conversation_stage to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE], + * it skips + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] + * stage and directly goes to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ConversationStage conversation_stage = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getConversationStage() + { + return $this->conversation_stage; + } + + /** + * Optional. The stage of a conversation. It indicates whether the virtual + * agent or a human agent is handling the conversation. + * If the conversation is created with the conversation profile that has + * Dialogflow config set, defaults to + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE]; + * Otherwise, defaults to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * If the conversation is created with the conversation profile that has + * Dialogflow config set but explicitly sets conversation_stage to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE], + * it skips + * [ConversationStage.VIRTUAL_AGENT_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.VIRTUAL_AGENT_STAGE] + * stage and directly goes to + * [ConversationStage.HUMAN_ASSIST_STAGE][google.cloud.dialogflow.v2.Conversation.ConversationStage.HUMAN_ASSIST_STAGE]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ConversationStage conversation_stage = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setConversationStage($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Conversation\ConversationStage::class); + $this->conversation_stage = $var; + + return $this; + } + + /** + * Output only. The telephony connection information. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo telephony_connection_info = 10 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo|null + */ + public function getTelephonyConnectionInfo() + { + return $this->telephony_connection_info; + } + + public function hasTelephonyConnectionInfo() + { + return isset($this->telephony_connection_info); + } + + public function clearTelephonyConnectionInfo() + { + unset($this->telephony_connection_info); + } + + /** + * Output only. The telephony connection information. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo telephony_connection_info = 10 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo $var + * @return $this + */ + public function setTelephonyConnectionInfo($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo::class); + $this->telephony_connection_info = $var; + + return $this; + } + + /** + * Output only. The context reference updates provided by external systems. + * + * Generated from protobuf field map ingested_context_references = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getIngestedContextReferences() + { + return $this->ingested_context_references; + } + + /** + * Output only. The context reference updates provided by external systems. + * + * Generated from protobuf field map ingested_context_references = 17 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setIngestedContextReferences($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference::class); + $this->ingested_context_references = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference.php new file mode 100644 index 0000000..5645e29 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference.php @@ -0,0 +1,184 @@ +google.cloud.dialogflow.v2.Conversation.ContextReference + */ +class ContextReference extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The list of content updates for a context reference. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent context_contents = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + private $context_contents; + /** + * Required. The mode in which context reference contents are updated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode update_mode = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mode = 0; + /** + * Optional. The language of the information ingested, defaults to "en-US" + * if not set. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Output only. The time the context reference was first created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Conversation\ContextReference\ContextContent>|\Google\Protobuf\Internal\RepeatedField $context_contents + * Required. The list of content updates for a context reference. + * @type int $update_mode + * Required. The mode in which context reference contents are updated. + * @type string $language_code + * Optional. The language of the information ingested, defaults to "en-US" + * if not set. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The time the context reference was first created. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The list of content updates for a context reference. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent context_contents = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getContextContents() + { + return $this->context_contents; + } + + /** + * Required. The list of content updates for a context reference. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent context_contents = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Conversation\ContextReference\ContextContent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setContextContents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference\ContextContent::class); + $this->context_contents = $arr; + + return $this; + } + + /** + * Required. The mode in which context reference contents are updated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode update_mode = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getUpdateMode() + { + return $this->update_mode; + } + + /** + * Required. The mode in which context reference contents are updated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode update_mode = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setUpdateMode($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference\UpdateMode::class); + $this->update_mode = $var; + + return $this; + } + + /** + * Optional. The language of the information ingested, defaults to "en-US" + * if not set. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language of the information ingested, defaults to "en-US" + * if not set. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Output only. The time the context reference was first created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The time the context reference was first created. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent.php new file mode 100644 index 0000000..fbe6459 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent.php @@ -0,0 +1,150 @@ +google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent + */ +class ContextContent extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The information ingested in a single request. + * + * Generated from protobuf field string content = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $content = ''; + /** + * Required. The format of the ingested string. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat content_format = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $content_format = 0; + /** + * Output only. The time when this information was incorporated into the + * relevant context reference. + * + * Generated from protobuf field .google.protobuf.Timestamp ingestion_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $ingestion_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $content + * Required. The information ingested in a single request. + * @type int $content_format + * Required. The format of the ingested string. + * @type \Google\Protobuf\Timestamp $ingestion_time + * Output only. The time when this information was incorporated into the + * relevant context reference. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The information ingested in a single request. + * + * Generated from protobuf field string content = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getContent() + { + return $this->content; + } + + /** + * Required. The information ingested in a single request. + * + * Generated from protobuf field string content = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setContent($var) + { + GPBUtil::checkString($var, True); + $this->content = $var; + + return $this; + } + + /** + * Required. The format of the ingested string. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat content_format = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getContentFormat() + { + return $this->content_format; + } + + /** + * Required. The format of the ingested string. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat content_format = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setContentFormat($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference\ContextContent\ContentFormat::class); + $this->content_format = $var; + + return $this; + } + + /** + * Output only. The time when this information was incorporated into the + * relevant context reference. + * + * Generated from protobuf field .google.protobuf.Timestamp ingestion_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getIngestionTime() + { + return $this->ingestion_time; + } + + public function hasIngestionTime() + { + return isset($this->ingestion_time); + } + + public function clearIngestionTime() + { + unset($this->ingestion_time); + } + + /** + * Output only. The time when this information was incorporated into the + * relevant context reference. + * + * Generated from protobuf field .google.protobuf.Timestamp ingestion_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setIngestionTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->ingestion_time = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent/ContentFormat.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent/ContentFormat.php new file mode 100644 index 0000000..be198a4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/ContextContent/ContentFormat.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.Conversation.ContextReference.ContextContent.ContentFormat + */ +class ContentFormat +{ + /** + * Unspecified content format. + * + * Generated from protobuf enum CONTENT_FORMAT_UNSPECIFIED = 0; + */ + const CONTENT_FORMAT_UNSPECIFIED = 0; + /** + * Content was provided in JSON format. + * + * Generated from protobuf enum JSON = 1; + */ + const JSON = 1; + /** + * Content was provided as plain text. + * + * Generated from protobuf enum PLAIN_TEXT = 2; + */ + const PLAIN_TEXT = 2; + + private static $valueToName = [ + self::CONTENT_FORMAT_UNSPECIFIED => 'CONTENT_FORMAT_UNSPECIFIED', + self::JSON => 'JSON', + self::PLAIN_TEXT => 'PLAIN_TEXT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/UpdateMode.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/UpdateMode.php new file mode 100644 index 0000000..42f5c6a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/ContextReference/UpdateMode.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.Conversation.ContextReference.UpdateMode + */ +class UpdateMode +{ + /** + * Unspecified update mode. + * + * Generated from protobuf enum UPDATE_MODE_UNSPECIFIED = 0; + */ + const UPDATE_MODE_UNSPECIFIED = 0; + /** + * Context content updates are applied in append mode. + * + * Generated from protobuf enum APPEND = 1; + */ + const APPEND = 1; + /** + * Context content updates are applied in overwrite mode. + * + * Generated from protobuf enum OVERWRITE = 2; + */ + const OVERWRITE = 2; + + private static $valueToName = [ + self::UPDATE_MODE_UNSPECIFIED => 'UPDATE_MODE_UNSPECIFIED', + self::APPEND => 'APPEND', + self::OVERWRITE => 'OVERWRITE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/ConversationStage.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/ConversationStage.php new file mode 100644 index 0000000..6c331a6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/ConversationStage.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.Conversation.ConversationStage + */ +class ConversationStage +{ + /** + * Unknown. Should never be used after a conversation is successfully + * created. + * + * Generated from protobuf enum CONVERSATION_STAGE_UNSPECIFIED = 0; + */ + const CONVERSATION_STAGE_UNSPECIFIED = 0; + /** + * The conversation should return virtual agent responses into the + * conversation. + * + * Generated from protobuf enum VIRTUAL_AGENT_STAGE = 1; + */ + const VIRTUAL_AGENT_STAGE = 1; + /** + * The conversation should not provide responses, just listen and provide + * suggestions. + * + * Generated from protobuf enum HUMAN_ASSIST_STAGE = 2; + */ + const HUMAN_ASSIST_STAGE = 2; + + private static $valueToName = [ + self::CONVERSATION_STAGE_UNSPECIFIED => 'CONVERSATION_STAGE_UNSPECIFIED', + self::VIRTUAL_AGENT_STAGE => 'VIRTUAL_AGENT_STAGE', + self::HUMAN_ASSIST_STAGE => 'HUMAN_ASSIST_STAGE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/LifecycleState.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/LifecycleState.php new file mode 100644 index 0000000..88463ec --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/LifecycleState.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.Conversation.LifecycleState + */ +class LifecycleState +{ + /** + * Unknown. + * + * Generated from protobuf enum LIFECYCLE_STATE_UNSPECIFIED = 0; + */ + const LIFECYCLE_STATE_UNSPECIFIED = 0; + /** + * Conversation is currently open for media analysis. + * + * Generated from protobuf enum IN_PROGRESS = 1; + */ + const IN_PROGRESS = 1; + /** + * Conversation has been completed. + * + * Generated from protobuf enum COMPLETED = 2; + */ + const COMPLETED = 2; + + private static $valueToName = [ + self::LIFECYCLE_STATE_UNSPECIFIED => 'LIFECYCLE_STATE_UNSPECIFIED', + self::IN_PROGRESS => 'IN_PROGRESS', + self::COMPLETED => 'COMPLETED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo.php new file mode 100644 index 0000000..e0371ec --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo.php @@ -0,0 +1,175 @@ +google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo + */ +class TelephonyConnectionInfo extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The number dialed to connect this call in E.164 format. + * + * Generated from protobuf field string dialed_number = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $dialed_number = ''; + /** + * Optional. SDP of the call. It's initially the SDP answer to the endpoint, + * but maybe later updated for the purpose of making the link active, etc. + * + * Generated from protobuf field string sdp = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $sdp = ''; + /** + * Output only. The SIP headers from the initial SIP INVITE. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader sip_headers = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $sip_headers; + /** + * Output only. The mime content from the initial SIP INVITE. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent extra_mime_contents = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $extra_mime_contents; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $dialed_number + * Output only. The number dialed to connect this call in E.164 format. + * @type string $sdp + * Optional. SDP of the call. It's initially the SDP answer to the endpoint, + * but maybe later updated for the purpose of making the link active, etc. + * @type array<\Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo\SipHeader>|\Google\Protobuf\Internal\RepeatedField $sip_headers + * Output only. The SIP headers from the initial SIP INVITE. + * @type array<\Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo\MimeContent>|\Google\Protobuf\Internal\RepeatedField $extra_mime_contents + * Output only. The mime content from the initial SIP INVITE. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The number dialed to connect this call in E.164 format. + * + * Generated from protobuf field string dialed_number = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getDialedNumber() + { + return $this->dialed_number; + } + + /** + * Output only. The number dialed to connect this call in E.164 format. + * + * Generated from protobuf field string dialed_number = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setDialedNumber($var) + { + GPBUtil::checkString($var, True); + $this->dialed_number = $var; + + return $this; + } + + /** + * Optional. SDP of the call. It's initially the SDP answer to the endpoint, + * but maybe later updated for the purpose of making the link active, etc. + * + * Generated from protobuf field string sdp = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getSdp() + { + return $this->sdp; + } + + /** + * Optional. SDP of the call. It's initially the SDP answer to the endpoint, + * but maybe later updated for the purpose of making the link active, etc. + * + * Generated from protobuf field string sdp = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setSdp($var) + { + GPBUtil::checkString($var, True); + $this->sdp = $var; + + return $this; + } + + /** + * Output only. The SIP headers from the initial SIP INVITE. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader sip_headers = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSipHeaders() + { + return $this->sip_headers; + } + + /** + * Output only. The SIP headers from the initial SIP INVITE. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader sip_headers = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array<\Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo\SipHeader>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSipHeaders($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo\SipHeader::class); + $this->sip_headers = $arr; + + return $this; + } + + /** + * Output only. The mime content from the initial SIP INVITE. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent extra_mime_contents = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getExtraMimeContents() + { + return $this->extra_mime_contents; + } + + /** + * Output only. The mime content from the initial SIP INVITE. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent extra_mime_contents = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array<\Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo\MimeContent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setExtraMimeContents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\TelephonyConnectionInfo\MimeContent::class); + $this->extra_mime_contents = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/MimeContent.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/MimeContent.php new file mode 100644 index 0000000..cd8ed0b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/MimeContent.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.MimeContent + */ +class MimeContent extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The mime type of the content. + * + * Generated from protobuf field string mime_type = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $mime_type = ''; + /** + * Optional. The content payload. + * + * Generated from protobuf field bytes content = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $content = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $mime_type + * Optional. The mime type of the content. + * @type string $content + * Optional. The content payload. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The mime type of the content. + * + * Generated from protobuf field string mime_type = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getMimeType() + { + return $this->mime_type; + } + + /** + * Optional. The mime type of the content. + * + * Generated from protobuf field string mime_type = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setMimeType($var) + { + GPBUtil::checkString($var, True); + $this->mime_type = $var; + + return $this; + } + + /** + * Optional. The content payload. + * + * Generated from protobuf field bytes content = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getContent() + { + return $this->content; + } + + /** + * Optional. The content payload. + * + * Generated from protobuf field bytes content = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setContent($var) + { + GPBUtil::checkString($var, False); + $this->content = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/SipHeader.php b/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/SipHeader.php new file mode 100644 index 0000000..0f3b7c5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Conversation/TelephonyConnectionInfo/SipHeader.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.Conversation.TelephonyConnectionInfo.SipHeader + */ +class SipHeader extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The name of the header. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $name = ''; + /** + * Optional. The value of the header. + * + * Generated from protobuf field string value = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $value = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The name of the header. + * @type string $value + * Optional. The value of the header. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The name of the header. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The name of the header. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The value of the header. + * + * Generated from protobuf field string value = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * Optional. The value of the header. + * + * Generated from protobuf field string value = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setValue($var) + { + GPBUtil::checkString($var, True); + $this->value = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationContext.php b/vendor/google/cloud-dialogflow/src/V2/ConversationContext.php new file mode 100644 index 0000000..30ebd37 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationContext.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.ConversationContext + */ +class ConversationContext extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. List of message transcripts in the conversation. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.MessageEntry message_entries = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $message_entries; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\MessageEntry>|\Google\Protobuf\Internal\RepeatedField $message_entries + * Optional. List of message transcripts in the conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. List of message transcripts in the conversation. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.MessageEntry message_entries = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMessageEntries() + { + return $this->message_entries; + } + + /** + * Optional. List of message transcripts in the conversation. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.MessageEntry message_entries = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\MessageEntry>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMessageEntries($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\MessageEntry::class); + $this->message_entries = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationDataset.php b/vendor/google/cloud-dialogflow/src/V2/ConversationDataset.php new file mode 100644 index 0000000..f0bcdc3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationDataset.php @@ -0,0 +1,412 @@ +google.cloud.dialogflow.v2.ConversationDataset + */ +class ConversationDataset extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $name = ''; + /** + * Required. The display name of the dataset. Maximum of 64 bytes. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Optional. The description of the dataset. Maximum of 10000 bytes. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Output only. Creation time of this dataset. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. Input configurations set during conversation data import. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputConfig input_config = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $input_config = null; + /** + * Output only. Metadata set during conversation data import. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationInfo conversation_info = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $conversation_info = null; + /** + * Output only. The number of conversations this conversation dataset + * contains. + * + * Generated from protobuf field int64 conversation_count = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $conversation_count = 0; + /** + * Output only. A read only boolean field reflecting Zone Isolation status of + * the dataset. + * + * Generated from protobuf field optional bool satisfies_pzi = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $satisfies_pzi = null; + /** + * Output only. A read only boolean field reflecting Zone Separation status of + * the dataset. + * + * Generated from protobuf field optional bool satisfies_pzs = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $satisfies_pzs = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * @type string $display_name + * Required. The display name of the dataset. Maximum of 64 bytes. + * @type string $description + * Optional. The description of the dataset. Maximum of 10000 bytes. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. Creation time of this dataset. + * @type \Google\Cloud\Dialogflow\V2\InputConfig $input_config + * Output only. Input configurations set during conversation data import. + * @type \Google\Cloud\Dialogflow\V2\ConversationInfo $conversation_info + * Output only. Metadata set during conversation data import. + * @type int|string $conversation_count + * Output only. The number of conversations this conversation dataset + * contains. + * @type bool $satisfies_pzi + * Output only. A read only boolean field reflecting Zone Isolation status of + * the dataset. + * @type bool $satisfies_pzs + * Output only. A read only boolean field reflecting Zone Separation status of + * the dataset. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Output only. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The display name of the dataset. Maximum of 64 bytes. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The display name of the dataset. Maximum of 64 bytes. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Optional. The description of the dataset. Maximum of 10000 bytes. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. The description of the dataset. Maximum of 10000 bytes. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Output only. Creation time of this dataset. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. Creation time of this dataset. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. Input configurations set during conversation data import. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputConfig input_config = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\InputConfig|null + */ + public function getInputConfig() + { + return $this->input_config; + } + + public function hasInputConfig() + { + return isset($this->input_config); + } + + public function clearInputConfig() + { + unset($this->input_config); + } + + /** + * Output only. Input configurations set during conversation data import. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputConfig input_config = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\InputConfig $var + * @return $this + */ + public function setInputConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InputConfig::class); + $this->input_config = $var; + + return $this; + } + + /** + * Output only. Metadata set during conversation data import. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationInfo conversation_info = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\ConversationInfo|null + */ + public function getConversationInfo() + { + return $this->conversation_info; + } + + public function hasConversationInfo() + { + return isset($this->conversation_info); + } + + public function clearConversationInfo() + { + unset($this->conversation_info); + } + + /** + * Output only. Metadata set during conversation data import. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationInfo conversation_info = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\ConversationInfo $var + * @return $this + */ + public function setConversationInfo($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationInfo::class); + $this->conversation_info = $var; + + return $this; + } + + /** + * Output only. The number of conversations this conversation dataset + * contains. + * + * Generated from protobuf field int64 conversation_count = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int|string + */ + public function getConversationCount() + { + return $this->conversation_count; + } + + /** + * Output only. The number of conversations this conversation dataset + * contains. + * + * Generated from protobuf field int64 conversation_count = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int|string $var + * @return $this + */ + public function setConversationCount($var) + { + GPBUtil::checkInt64($var); + $this->conversation_count = $var; + + return $this; + } + + /** + * Output only. A read only boolean field reflecting Zone Isolation status of + * the dataset. + * + * Generated from protobuf field optional bool satisfies_pzi = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return bool + */ + public function getSatisfiesPzi() + { + return isset($this->satisfies_pzi) ? $this->satisfies_pzi : false; + } + + public function hasSatisfiesPzi() + { + return isset($this->satisfies_pzi); + } + + public function clearSatisfiesPzi() + { + unset($this->satisfies_pzi); + } + + /** + * Output only. A read only boolean field reflecting Zone Isolation status of + * the dataset. + * + * Generated from protobuf field optional bool satisfies_pzi = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param bool $var + * @return $this + */ + public function setSatisfiesPzi($var) + { + GPBUtil::checkBool($var); + $this->satisfies_pzi = $var; + + return $this; + } + + /** + * Output only. A read only boolean field reflecting Zone Separation status of + * the dataset. + * + * Generated from protobuf field optional bool satisfies_pzs = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return bool + */ + public function getSatisfiesPzs() + { + return isset($this->satisfies_pzs) ? $this->satisfies_pzs : false; + } + + public function hasSatisfiesPzs() + { + return isset($this->satisfies_pzs); + } + + public function clearSatisfiesPzs() + { + unset($this->satisfies_pzs); + } + + /** + * Output only. A read only boolean field reflecting Zone Separation status of + * the dataset. + * + * Generated from protobuf field optional bool satisfies_pzs = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param bool $var + * @return $this + */ + public function setSatisfiesPzs($var) + { + GPBUtil::checkBool($var); + $this->satisfies_pzs = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationEvent.php b/vendor/google/cloud-dialogflow/src/V2/ConversationEvent.php new file mode 100644 index 0000000..d7c8e8a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationEvent.php @@ -0,0 +1,233 @@ +google.cloud.dialogflow.v2.ConversationEvent + */ +class ConversationEvent extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of the conversation this notification + * refers to. + * Format: `projects//conversations/`. + * + * Generated from protobuf field string conversation = 1; + */ + protected $conversation = ''; + /** + * The type of the event that this notification refers to. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationEvent.Type type = 2; + */ + protected $type = 0; + /** + * More detailed information about an error. Only set for type + * UNRECOVERABLE_ERROR_IN_PHONE_CALL. + * + * Generated from protobuf field .google.rpc.Status error_status = 3; + */ + protected $error_status = null; + protected $payload; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation + * The unique identifier of the conversation this notification + * refers to. + * Format: `projects//conversations/`. + * @type int $type + * The type of the event that this notification refers to. + * @type \Google\Rpc\Status $error_status + * More detailed information about an error. Only set for type + * UNRECOVERABLE_ERROR_IN_PHONE_CALL. + * @type \Google\Cloud\Dialogflow\V2\Message $new_message_payload + * Payload of NEW_MESSAGE event. + * @type \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult $new_recognition_result_payload + * Payload of NEW_RECOGNITION_RESULT event. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationEvent::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of the conversation this notification + * refers to. + * Format: `projects//conversations/`. + * + * Generated from protobuf field string conversation = 1; + * @return string + */ + public function getConversation() + { + return $this->conversation; + } + + /** + * The unique identifier of the conversation this notification + * refers to. + * Format: `projects//conversations/`. + * + * Generated from protobuf field string conversation = 1; + * @param string $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkString($var, True); + $this->conversation = $var; + + return $this; + } + + /** + * The type of the event that this notification refers to. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationEvent.Type type = 2; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * The type of the event that this notification refers to. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationEvent.Type type = 2; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\ConversationEvent\Type::class); + $this->type = $var; + + return $this; + } + + /** + * More detailed information about an error. Only set for type + * UNRECOVERABLE_ERROR_IN_PHONE_CALL. + * + * Generated from protobuf field .google.rpc.Status error_status = 3; + * @return \Google\Rpc\Status|null + */ + public function getErrorStatus() + { + return $this->error_status; + } + + public function hasErrorStatus() + { + return isset($this->error_status); + } + + public function clearErrorStatus() + { + unset($this->error_status); + } + + /** + * More detailed information about an error. Only set for type + * UNRECOVERABLE_ERROR_IN_PHONE_CALL. + * + * Generated from protobuf field .google.rpc.Status error_status = 3; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setErrorStatus($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->error_status = $var; + + return $this; + } + + /** + * Payload of NEW_MESSAGE event. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message new_message_payload = 4; + * @return \Google\Cloud\Dialogflow\V2\Message|null + */ + public function getNewMessagePayload() + { + return $this->readOneof(4); + } + + public function hasNewMessagePayload() + { + return $this->hasOneof(4); + } + + /** + * Payload of NEW_MESSAGE event. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message new_message_payload = 4; + * @param \Google\Cloud\Dialogflow\V2\Message $var + * @return $this + */ + public function setNewMessagePayload($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Message::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Payload of NEW_RECOGNITION_RESULT event. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult new_recognition_result_payload = 5; + * @return \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult|null + */ + public function getNewRecognitionResultPayload() + { + return $this->readOneof(5); + } + + public function hasNewRecognitionResultPayload() + { + return $this->hasOneof(5); + } + + /** + * Payload of NEW_RECOGNITION_RESULT event. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult new_recognition_result_payload = 5; + * @param \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult $var + * @return $this + */ + public function setNewRecognitionResultPayload($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * @return string + */ + public function getPayload() + { + return $this->whichOneof("payload"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationEvent/Type.php b/vendor/google/cloud-dialogflow/src/V2/ConversationEvent/Type.php new file mode 100644 index 0000000..cfb9f48 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationEvent/Type.php @@ -0,0 +1,104 @@ +google.cloud.dialogflow.v2.ConversationEvent.Type + */ +class Type +{ + /** + * Type not set. + * + * Generated from protobuf enum TYPE_UNSPECIFIED = 0; + */ + const TYPE_UNSPECIFIED = 0; + /** + * A new conversation has been opened. This is fired when a telephone call + * is answered, or a conversation is created via the API. + * + * Generated from protobuf enum CONVERSATION_STARTED = 1; + */ + const CONVERSATION_STARTED = 1; + /** + * An existing conversation has closed. This is fired when a telephone call + * is terminated, or a conversation is closed via the API. + * + * Generated from protobuf enum CONVERSATION_FINISHED = 2; + */ + const CONVERSATION_FINISHED = 2; + /** + * An existing conversation has received notification from Dialogflow that + * human intervention is required. + * + * Generated from protobuf enum HUMAN_INTERVENTION_NEEDED = 3; + */ + const HUMAN_INTERVENTION_NEEDED = 3; + /** + * An existing conversation has received a new message, either from API or + * telephony. It is configured in + * [ConversationProfile.new_message_event_notification_config][google.cloud.dialogflow.v2.ConversationProfile.new_message_event_notification_config] + * + * Generated from protobuf enum NEW_MESSAGE = 5; + */ + const NEW_MESSAGE = 5; + /** + * An existing conversation has received a new speech recognition result. + * This is mainly for delivering intermediate transcripts. The notification + * is configured in + * [ConversationProfile.new_recognition_event_notification_config][]. + * + * Generated from protobuf enum NEW_RECOGNITION_RESULT = 7; + */ + const NEW_RECOGNITION_RESULT = 7; + /** + * Unrecoverable error during a telephone call. + * In general non-recoverable errors only occur if something was + * misconfigured in the ConversationProfile corresponding to the call. After + * a non-recoverable error, Dialogflow may stop responding. + * We don't fire this event: + * * in an API call because we can directly return the error, or, + * * when we can recover from an error. + * + * Generated from protobuf enum UNRECOVERABLE_ERROR = 4; + */ + const UNRECOVERABLE_ERROR = 4; + + private static $valueToName = [ + self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED', + self::CONVERSATION_STARTED => 'CONVERSATION_STARTED', + self::CONVERSATION_FINISHED => 'CONVERSATION_FINISHED', + self::HUMAN_INTERVENTION_NEEDED => 'HUMAN_INTERVENTION_NEEDED', + self::NEW_MESSAGE => 'NEW_MESSAGE', + self::NEW_RECOGNITION_RESULT => 'NEW_RECOGNITION_RESULT', + self::UNRECOVERABLE_ERROR => 'UNRECOVERABLE_ERROR', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationInfo.php b/vendor/google/cloud-dialogflow/src/V2/ConversationInfo.php new file mode 100644 index 0000000..b4466ff --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationInfo.php @@ -0,0 +1,75 @@ +google.cloud.dialogflow.v2.ConversationInfo + */ +class ConversationInfo extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The language code of the conversation data within this dataset. + * See https://cloud.google.com/apis/design/standard_fields for more + * information. Supports all UTF-8 languages. + * + * Generated from protobuf field string language_code = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $language_code + * Optional. The language code of the conversation data within this dataset. + * See https://cloud.google.com/apis/design/standard_fields for more + * information. Supports all UTF-8 languages. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The language code of the conversation data within this dataset. + * See https://cloud.google.com/apis/design/standard_fields for more + * information. Supports all UTF-8 languages. + * + * Generated from protobuf field string language_code = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language code of the conversation data within this dataset. + * See https://cloud.google.com/apis/design/standard_fields for more + * information. Supports all UTF-8 languages. + * + * Generated from protobuf field string language_code = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationModel.php b/vendor/google/cloud-dialogflow/src/V2/ConversationModel.php new file mode 100644 index 0000000..fa2896f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationModel.php @@ -0,0 +1,442 @@ +google.cloud.dialogflow.v2.ConversationModel + */ +class ConversationModel extends \Google\Protobuf\Internal\Message +{ + /** + * ConversationModel resource name. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Required. The display name of the model. At most 64 bytes long. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Output only. Creation time of this model. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Required. Datasets used to create model. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.InputDataset datasets = 4 [(.google.api.field_behavior) = REQUIRED]; + */ + private $datasets; + /** + * Output only. State of the model. A model can only serve prediction requests + * after it gets deployed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $state = 0; + /** + * Language code for the conversation model. If not specified, the language + * is en-US. Language at ConversationModel should be set for all non en-us + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 19; + */ + protected $language_code = ''; + /** + * Output only. A read only boolean field reflecting Zone Separation + * status of the model. + * + * Generated from protobuf field optional bool satisfies_pzs = 25 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $satisfies_pzs = null; + /** + * Output only. A read only boolean field reflecting Zone Isolation status + * of the model. + * + * Generated from protobuf field optional bool satisfies_pzi = 26 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $satisfies_pzi = null; + protected $model_metadata; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * ConversationModel resource name. Format: + * `projects//conversationModels/` + * @type string $display_name + * Required. The display name of the model. At most 64 bytes long. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. Creation time of this model. + * @type array<\Google\Cloud\Dialogflow\V2\InputDataset>|\Google\Protobuf\Internal\RepeatedField $datasets + * Required. Datasets used to create model. + * @type int $state + * Output only. State of the model. A model can only serve prediction requests + * after it gets deployed. + * @type string $language_code + * Language code for the conversation model. If not specified, the language + * is en-US. Language at ConversationModel should be set for all non en-us + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * @type \Google\Cloud\Dialogflow\V2\ArticleSuggestionModelMetadata $article_suggestion_model_metadata + * Metadata for article suggestion models. + * @type \Google\Cloud\Dialogflow\V2\SmartReplyModelMetadata $smart_reply_model_metadata + * Metadata for smart reply models. + * @type bool $satisfies_pzs + * Output only. A read only boolean field reflecting Zone Separation + * status of the model. + * @type bool $satisfies_pzi + * Output only. A read only boolean field reflecting Zone Isolation status + * of the model. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * ConversationModel resource name. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * ConversationModel resource name. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The display name of the model. At most 64 bytes long. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The display name of the model. At most 64 bytes long. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Output only. Creation time of this model. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. Creation time of this model. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Required. Datasets used to create model. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.InputDataset datasets = 4 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDatasets() + { + return $this->datasets; + } + + /** + * Required. Datasets used to create model. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.InputDataset datasets = 4 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\InputDataset>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDatasets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\InputDataset::class); + $this->datasets = $arr; + + return $this; + } + + /** + * Output only. State of the model. A model can only serve prediction requests + * after it gets deployed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * Output only. State of the model. A model can only serve prediction requests + * after it gets deployed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\ConversationModel\State::class); + $this->state = $var; + + return $this; + } + + /** + * Language code for the conversation model. If not specified, the language + * is en-US. Language at ConversationModel should be set for all non en-us + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 19; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Language code for the conversation model. If not specified, the language + * is en-US. Language at ConversationModel should be set for all non en-us + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 19; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Metadata for article suggestion models. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata article_suggestion_model_metadata = 8; + * @return \Google\Cloud\Dialogflow\V2\ArticleSuggestionModelMetadata|null + */ + public function getArticleSuggestionModelMetadata() + { + return $this->readOneof(8); + } + + public function hasArticleSuggestionModelMetadata() + { + return $this->hasOneof(8); + } + + /** + * Metadata for article suggestion models. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ArticleSuggestionModelMetadata article_suggestion_model_metadata = 8; + * @param \Google\Cloud\Dialogflow\V2\ArticleSuggestionModelMetadata $var + * @return $this + */ + public function setArticleSuggestionModelMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ArticleSuggestionModelMetadata::class); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * Metadata for smart reply models. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SmartReplyModelMetadata smart_reply_model_metadata = 9; + * @return \Google\Cloud\Dialogflow\V2\SmartReplyModelMetadata|null + */ + public function getSmartReplyModelMetadata() + { + return $this->readOneof(9); + } + + public function hasSmartReplyModelMetadata() + { + return $this->hasOneof(9); + } + + /** + * Metadata for smart reply models. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SmartReplyModelMetadata smart_reply_model_metadata = 9; + * @param \Google\Cloud\Dialogflow\V2\SmartReplyModelMetadata $var + * @return $this + */ + public function setSmartReplyModelMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SmartReplyModelMetadata::class); + $this->writeOneof(9, $var); + + return $this; + } + + /** + * Output only. A read only boolean field reflecting Zone Separation + * status of the model. + * + * Generated from protobuf field optional bool satisfies_pzs = 25 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return bool + */ + public function getSatisfiesPzs() + { + return isset($this->satisfies_pzs) ? $this->satisfies_pzs : false; + } + + public function hasSatisfiesPzs() + { + return isset($this->satisfies_pzs); + } + + public function clearSatisfiesPzs() + { + unset($this->satisfies_pzs); + } + + /** + * Output only. A read only boolean field reflecting Zone Separation + * status of the model. + * + * Generated from protobuf field optional bool satisfies_pzs = 25 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param bool $var + * @return $this + */ + public function setSatisfiesPzs($var) + { + GPBUtil::checkBool($var); + $this->satisfies_pzs = $var; + + return $this; + } + + /** + * Output only. A read only boolean field reflecting Zone Isolation status + * of the model. + * + * Generated from protobuf field optional bool satisfies_pzi = 26 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return bool + */ + public function getSatisfiesPzi() + { + return isset($this->satisfies_pzi) ? $this->satisfies_pzi : false; + } + + public function hasSatisfiesPzi() + { + return isset($this->satisfies_pzi); + } + + public function clearSatisfiesPzi() + { + unset($this->satisfies_pzi); + } + + /** + * Output only. A read only boolean field reflecting Zone Isolation status + * of the model. + * + * Generated from protobuf field optional bool satisfies_pzi = 26 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param bool $var + * @return $this + */ + public function setSatisfiesPzi($var) + { + GPBUtil::checkBool($var); + $this->satisfies_pzi = $var; + + return $this; + } + + /** + * @return string + */ + public function getModelMetadata() + { + return $this->whichOneof("model_metadata"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationModel/ModelType.php b/vendor/google/cloud-dialogflow/src/V2/ConversationModel/ModelType.php new file mode 100644 index 0000000..94886d3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationModel/ModelType.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.ConversationModel.ModelType + */ +class ModelType +{ + /** + * ModelType unspecified. + * + * Generated from protobuf enum MODEL_TYPE_UNSPECIFIED = 0; + */ + const MODEL_TYPE_UNSPECIFIED = 0; + /** + * ModelType smart reply dual encoder model. + * + * Generated from protobuf enum SMART_REPLY_DUAL_ENCODER_MODEL = 2; + */ + const SMART_REPLY_DUAL_ENCODER_MODEL = 2; + /** + * ModelType smart reply bert model. + * + * Generated from protobuf enum SMART_REPLY_BERT_MODEL = 6; + */ + const SMART_REPLY_BERT_MODEL = 6; + + private static $valueToName = [ + self::MODEL_TYPE_UNSPECIFIED => 'MODEL_TYPE_UNSPECIFIED', + self::SMART_REPLY_DUAL_ENCODER_MODEL => 'SMART_REPLY_DUAL_ENCODER_MODEL', + self::SMART_REPLY_BERT_MODEL => 'SMART_REPLY_BERT_MODEL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationModel/State.php b/vendor/google/cloud-dialogflow/src/V2/ConversationModel/State.php new file mode 100644 index 0000000..c1e82c3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationModel/State.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.ConversationModel.State + */ +class State +{ + /** + * Should not be used, an un-set enum has this value by default. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * Model being created. + * + * Generated from protobuf enum CREATING = 1; + */ + const CREATING = 1; + /** + * Model is not deployed but ready to deploy. + * + * Generated from protobuf enum UNDEPLOYED = 2; + */ + const UNDEPLOYED = 2; + /** + * Model is deploying. + * + * Generated from protobuf enum DEPLOYING = 3; + */ + const DEPLOYING = 3; + /** + * Model is deployed and ready to use. + * + * Generated from protobuf enum DEPLOYED = 4; + */ + const DEPLOYED = 4; + /** + * Model is undeploying. + * + * Generated from protobuf enum UNDEPLOYING = 5; + */ + const UNDEPLOYING = 5; + /** + * Model is deleting. + * + * Generated from protobuf enum DELETING = 6; + */ + const DELETING = 6; + /** + * Model is in error state. Not ready to deploy and use. + * + * Generated from protobuf enum FAILED = 7; + */ + const FAILED = 7; + /** + * Model is being created but the training has not started, + * The model may remain in this state until there is enough capacity to + * start training. + * + * Generated from protobuf enum PENDING = 8; + */ + const PENDING = 8; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::CREATING => 'CREATING', + self::UNDEPLOYED => 'UNDEPLOYED', + self::DEPLOYING => 'DEPLOYING', + self::DEPLOYED => 'DEPLOYED', + self::UNDEPLOYING => 'UNDEPLOYING', + self::DELETING => 'DELETING', + self::FAILED => 'FAILED', + self::PENDING => 'PENDING', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationModelEvaluation.php b/vendor/google/cloud-dialogflow/src/V2/ConversationModelEvaluation.php new file mode 100644 index 0000000..7d0913e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationModelEvaluation.php @@ -0,0 +1,329 @@ +google.cloud.dialogflow.v2.ConversationModelEvaluation + */ +class ConversationModelEvaluation extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the evaluation. Format: + * `projects//conversationModels//evaluations/` + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Optional. The display name of the model evaluation. At most 64 bytes long. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $display_name = ''; + /** + * Optional. The configuration of the evaluation task. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig evaluation_config = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $evaluation_config = null; + /** + * Output only. Creation time of this model. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. Human eval template in csv format. + * It takes real-world conversations provided through input dataset, generates + * example suggestions for customer to verify quality of the model. + * For Smart Reply, the generated csv file contains columns of + * Context, (Suggestions,Q1,Q2)*3, Actual reply. + * Context contains at most 10 latest messages in the conversation prior to + * the current suggestion. + * Q1: "Would you send it as the next message of agent?" + * Evaluated based on whether the suggest is appropriate to be sent by + * agent in current context. + * Q2: "Does the suggestion move the conversation closer to resolution?" + * Evaluated based on whether the suggestion provide solutions, or answers + * customer's question or collect information from customer to resolve the + * customer's issue. + * Actual reply column contains the actual agent reply sent in the context. + * + * Generated from protobuf field string raw_human_eval_template_csv = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $raw_human_eval_template_csv = ''; + protected $metrics; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The resource name of the evaluation. Format: + * `projects//conversationModels//evaluations/` + * @type string $display_name + * Optional. The display name of the model evaluation. At most 64 bytes long. + * @type \Google\Cloud\Dialogflow\V2\EvaluationConfig $evaluation_config + * Optional. The configuration of the evaluation task. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. Creation time of this model. + * @type \Google\Cloud\Dialogflow\V2\SmartReplyMetrics $smart_reply_metrics + * Output only. Only available when model is for smart reply. + * @type string $raw_human_eval_template_csv + * Output only. Human eval template in csv format. + * It takes real-world conversations provided through input dataset, generates + * example suggestions for customer to verify quality of the model. + * For Smart Reply, the generated csv file contains columns of + * Context, (Suggestions,Q1,Q2)*3, Actual reply. + * Context contains at most 10 latest messages in the conversation prior to + * the current suggestion. + * Q1: "Would you send it as the next message of agent?" + * Evaluated based on whether the suggest is appropriate to be sent by + * agent in current context. + * Q2: "Does the suggestion move the conversation closer to resolution?" + * Evaluated based on whether the suggestion provide solutions, or answers + * customer's question or collect information from customer to resolve the + * customer's issue. + * Actual reply column contains the actual agent reply sent in the context. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the evaluation. Format: + * `projects//conversationModels//evaluations/` + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The resource name of the evaluation. Format: + * `projects//conversationModels//evaluations/` + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The display name of the model evaluation. At most 64 bytes long. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Optional. The display name of the model evaluation. At most 64 bytes long. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Optional. The configuration of the evaluation task. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig evaluation_config = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\EvaluationConfig|null + */ + public function getEvaluationConfig() + { + return $this->evaluation_config; + } + + public function hasEvaluationConfig() + { + return isset($this->evaluation_config); + } + + public function clearEvaluationConfig() + { + unset($this->evaluation_config); + } + + /** + * Optional. The configuration of the evaluation task. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig evaluation_config = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\EvaluationConfig $var + * @return $this + */ + public function setEvaluationConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EvaluationConfig::class); + $this->evaluation_config = $var; + + return $this; + } + + /** + * Output only. Creation time of this model. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. Creation time of this model. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. Only available when model is for smart reply. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SmartReplyMetrics smart_reply_metrics = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\SmartReplyMetrics|null + */ + public function getSmartReplyMetrics() + { + return $this->readOneof(5); + } + + public function hasSmartReplyMetrics() + { + return $this->hasOneof(5); + } + + /** + * Output only. Only available when model is for smart reply. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SmartReplyMetrics smart_reply_metrics = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\SmartReplyMetrics $var + * @return $this + */ + public function setSmartReplyMetrics($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SmartReplyMetrics::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * Output only. Human eval template in csv format. + * It takes real-world conversations provided through input dataset, generates + * example suggestions for customer to verify quality of the model. + * For Smart Reply, the generated csv file contains columns of + * Context, (Suggestions,Q1,Q2)*3, Actual reply. + * Context contains at most 10 latest messages in the conversation prior to + * the current suggestion. + * Q1: "Would you send it as the next message of agent?" + * Evaluated based on whether the suggest is appropriate to be sent by + * agent in current context. + * Q2: "Does the suggestion move the conversation closer to resolution?" + * Evaluated based on whether the suggestion provide solutions, or answers + * customer's question or collect information from customer to resolve the + * customer's issue. + * Actual reply column contains the actual agent reply sent in the context. + * + * Generated from protobuf field string raw_human_eval_template_csv = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getRawHumanEvalTemplateCsv() + { + return $this->raw_human_eval_template_csv; + } + + /** + * Output only. Human eval template in csv format. + * It takes real-world conversations provided through input dataset, generates + * example suggestions for customer to verify quality of the model. + * For Smart Reply, the generated csv file contains columns of + * Context, (Suggestions,Q1,Q2)*3, Actual reply. + * Context contains at most 10 latest messages in the conversation prior to + * the current suggestion. + * Q1: "Would you send it as the next message of agent?" + * Evaluated based on whether the suggest is appropriate to be sent by + * agent in current context. + * Q2: "Does the suggestion move the conversation closer to resolution?" + * Evaluated based on whether the suggestion provide solutions, or answers + * customer's question or collect information from customer to resolve the + * customer's issue. + * Actual reply column contains the actual agent reply sent in the context. + * + * Generated from protobuf field string raw_human_eval_template_csv = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setRawHumanEvalTemplateCsv($var) + { + GPBUtil::checkString($var, True); + $this->raw_human_eval_template_csv = $var; + + return $this; + } + + /** + * @return string + */ + public function getMetrics() + { + return $this->whichOneof("metrics"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationPhoneNumber.php b/vendor/google/cloud-dialogflow/src/V2/ConversationPhoneNumber.php new file mode 100644 index 0000000..b76111c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationPhoneNumber.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.ConversationPhoneNumber + */ +class ConversationPhoneNumber extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Desired country code for the phone number. + * + * Generated from protobuf field int32 country_code = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $country_code = 0; + /** + * Output only. The phone number to connect to this conversation. + * + * Generated from protobuf field string phone_number = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $phone_number = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $country_code + * Output only. Desired country code for the phone number. + * @type string $phone_number + * Output only. The phone number to connect to this conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Desired country code for the phone number. + * + * Generated from protobuf field int32 country_code = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getCountryCode() + { + return $this->country_code; + } + + /** + * Output only. Desired country code for the phone number. + * + * Generated from protobuf field int32 country_code = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setCountryCode($var) + { + GPBUtil::checkInt32($var); + $this->country_code = $var; + + return $this; + } + + /** + * Output only. The phone number to connect to this conversation. + * + * Generated from protobuf field string phone_number = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getPhoneNumber() + { + return $this->phone_number; + } + + /** + * Output only. The phone number to connect to this conversation. + * + * Generated from protobuf field string phone_number = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setPhoneNumber($var) + { + GPBUtil::checkString($var, True); + $this->phone_number = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ConversationProfile.php b/vendor/google/cloud-dialogflow/src/V2/ConversationProfile.php new file mode 100644 index 0000000..be421f0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ConversationProfile.php @@ -0,0 +1,779 @@ +google.cloud.dialogflow.v2.ConversationProfile + */ +class ConversationProfile extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of this conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Required. Human readable name for this profile. Max length 1024 bytes. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Output only. Create time of the conversation profile. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. Update time of the conversation profile. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $update_time = null; + /** + * Configuration for an automated agent to use with this profile. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentConfig automated_agent_config = 3; + */ + protected $automated_agent_config = null; + /** + * Configuration for agent assistance to use with this profile. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig human_agent_assistant_config = 4; + */ + protected $human_agent_assistant_config = null; + /** + * Configuration for connecting to a live agent. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig human_agent_handoff_config = 5; + */ + protected $human_agent_handoff_config = null; + /** + * Configuration for publishing conversation lifecycle events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig notification_config = 6; + */ + protected $notification_config = null; + /** + * Configuration for logging conversation lifecycle events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.LoggingConfig logging_config = 7; + */ + protected $logging_config = null; + /** + * Configuration for publishing new message events. Event will be sent in + * format of [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig new_message_event_notification_config = 8; + */ + protected $new_message_event_notification_config = null; + /** + * Optional. Configuration for publishing transcription intermediate results. + * Event will be sent in format of + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent]. If + * configured, the following information will be populated as + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] Pub/Sub + * message attributes: + * - "participant_id" + * - "participant_role" + * - "message_id" + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig new_recognition_result_notification_config = 21 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $new_recognition_result_notification_config = null; + /** + * Settings for speech transcription. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechToTextConfig stt_config = 9; + */ + protected $stt_config = null; + /** + * Language code for the conversation profile. If not specified, the language + * is en-US. Language at ConversationProfile should be set for all non en-US + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 10; + */ + protected $language_code = ''; + /** + * The time zone of this conversational profile from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. Defaults to America/New_York. + * + * Generated from protobuf field string time_zone = 14; + */ + protected $time_zone = ''; + /** + * Name of the CX SecuritySettings reference for the agent. + * Format: `projects//locations//securitySettings/`. + * + * Generated from protobuf field string security_settings = 13 [(.google.api.resource_reference) = { + */ + protected $security_settings = ''; + /** + * Configuration for Text-to-Speech synthesization. + * Used by Phone Gateway to specify synthesization options. If agent defines + * synthesization options as well, agent settings overrides the option here. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SynthesizeSpeechConfig tts_config = 18; + */ + protected $tts_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The unique identifier of this conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * @type string $display_name + * Required. Human readable name for this profile. Max length 1024 bytes. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. Create time of the conversation profile. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. Update time of the conversation profile. + * @type \Google\Cloud\Dialogflow\V2\AutomatedAgentConfig $automated_agent_config + * Configuration for an automated agent to use with this profile. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig $human_agent_assistant_config + * Configuration for agent assistance to use with this profile. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig $human_agent_handoff_config + * Configuration for connecting to a live agent. + * Currently, this feature is not general available, please contact Google + * to get access. + * @type \Google\Cloud\Dialogflow\V2\NotificationConfig $notification_config + * Configuration for publishing conversation lifecycle events. + * @type \Google\Cloud\Dialogflow\V2\LoggingConfig $logging_config + * Configuration for logging conversation lifecycle events. + * @type \Google\Cloud\Dialogflow\V2\NotificationConfig $new_message_event_notification_config + * Configuration for publishing new message events. Event will be sent in + * format of [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] + * @type \Google\Cloud\Dialogflow\V2\NotificationConfig $new_recognition_result_notification_config + * Optional. Configuration for publishing transcription intermediate results. + * Event will be sent in format of + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent]. If + * configured, the following information will be populated as + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] Pub/Sub + * message attributes: + * - "participant_id" + * - "participant_role" + * - "message_id" + * @type \Google\Cloud\Dialogflow\V2\SpeechToTextConfig $stt_config + * Settings for speech transcription. + * @type string $language_code + * Language code for the conversation profile. If not specified, the language + * is en-US. Language at ConversationProfile should be set for all non en-US + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * @type string $time_zone + * The time zone of this conversational profile from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. Defaults to America/New_York. + * @type string $security_settings + * Name of the CX SecuritySettings reference for the agent. + * Format: `projects//locations//securitySettings/`. + * @type \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig $tts_config + * Configuration for Text-to-Speech synthesization. + * Used by Phone Gateway to specify synthesization options. If agent defines + * synthesization options as well, agent settings overrides the option here. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of this conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The unique identifier of this conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. Human readable name for this profile. Max length 1024 bytes. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. Human readable name for this profile. Max length 1024 bytes. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Output only. Create time of the conversation profile. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. Create time of the conversation profile. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 11 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. Update time of the conversation profile. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. Update time of the conversation profile. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * Configuration for an automated agent to use with this profile. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentConfig automated_agent_config = 3; + * @return \Google\Cloud\Dialogflow\V2\AutomatedAgentConfig|null + */ + public function getAutomatedAgentConfig() + { + return $this->automated_agent_config; + } + + public function hasAutomatedAgentConfig() + { + return isset($this->automated_agent_config); + } + + public function clearAutomatedAgentConfig() + { + unset($this->automated_agent_config); + } + + /** + * Configuration for an automated agent to use with this profile. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentConfig automated_agent_config = 3; + * @param \Google\Cloud\Dialogflow\V2\AutomatedAgentConfig $var + * @return $this + */ + public function setAutomatedAgentConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AutomatedAgentConfig::class); + $this->automated_agent_config = $var; + + return $this; + } + + /** + * Configuration for agent assistance to use with this profile. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig human_agent_assistant_config = 4; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig|null + */ + public function getHumanAgentAssistantConfig() + { + return $this->human_agent_assistant_config; + } + + public function hasHumanAgentAssistantConfig() + { + return isset($this->human_agent_assistant_config); + } + + public function clearHumanAgentAssistantConfig() + { + unset($this->human_agent_assistant_config); + } + + /** + * Configuration for agent assistance to use with this profile. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig human_agent_assistant_config = 4; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig $var + * @return $this + */ + public function setHumanAgentAssistantConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig::class); + $this->human_agent_assistant_config = $var; + + return $this; + } + + /** + * Configuration for connecting to a live agent. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig human_agent_handoff_config = 5; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig|null + */ + public function getHumanAgentHandoffConfig() + { + return $this->human_agent_handoff_config; + } + + public function hasHumanAgentHandoffConfig() + { + return isset($this->human_agent_handoff_config); + } + + public function clearHumanAgentHandoffConfig() + { + unset($this->human_agent_handoff_config); + } + + /** + * Configuration for connecting to a live agent. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig human_agent_handoff_config = 5; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig $var + * @return $this + */ + public function setHumanAgentHandoffConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig::class); + $this->human_agent_handoff_config = $var; + + return $this; + } + + /** + * Configuration for publishing conversation lifecycle events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig notification_config = 6; + * @return \Google\Cloud\Dialogflow\V2\NotificationConfig|null + */ + public function getNotificationConfig() + { + return $this->notification_config; + } + + public function hasNotificationConfig() + { + return isset($this->notification_config); + } + + public function clearNotificationConfig() + { + unset($this->notification_config); + } + + /** + * Configuration for publishing conversation lifecycle events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig notification_config = 6; + * @param \Google\Cloud\Dialogflow\V2\NotificationConfig $var + * @return $this + */ + public function setNotificationConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\NotificationConfig::class); + $this->notification_config = $var; + + return $this; + } + + /** + * Configuration for logging conversation lifecycle events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.LoggingConfig logging_config = 7; + * @return \Google\Cloud\Dialogflow\V2\LoggingConfig|null + */ + public function getLoggingConfig() + { + return $this->logging_config; + } + + public function hasLoggingConfig() + { + return isset($this->logging_config); + } + + public function clearLoggingConfig() + { + unset($this->logging_config); + } + + /** + * Configuration for logging conversation lifecycle events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.LoggingConfig logging_config = 7; + * @param \Google\Cloud\Dialogflow\V2\LoggingConfig $var + * @return $this + */ + public function setLoggingConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\LoggingConfig::class); + $this->logging_config = $var; + + return $this; + } + + /** + * Configuration for publishing new message events. Event will be sent in + * format of [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig new_message_event_notification_config = 8; + * @return \Google\Cloud\Dialogflow\V2\NotificationConfig|null + */ + public function getNewMessageEventNotificationConfig() + { + return $this->new_message_event_notification_config; + } + + public function hasNewMessageEventNotificationConfig() + { + return isset($this->new_message_event_notification_config); + } + + public function clearNewMessageEventNotificationConfig() + { + unset($this->new_message_event_notification_config); + } + + /** + * Configuration for publishing new message events. Event will be sent in + * format of [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig new_message_event_notification_config = 8; + * @param \Google\Cloud\Dialogflow\V2\NotificationConfig $var + * @return $this + */ + public function setNewMessageEventNotificationConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\NotificationConfig::class); + $this->new_message_event_notification_config = $var; + + return $this; + } + + /** + * Optional. Configuration for publishing transcription intermediate results. + * Event will be sent in format of + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent]. If + * configured, the following information will be populated as + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] Pub/Sub + * message attributes: + * - "participant_id" + * - "participant_role" + * - "message_id" + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig new_recognition_result_notification_config = 21 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\NotificationConfig|null + */ + public function getNewRecognitionResultNotificationConfig() + { + return $this->new_recognition_result_notification_config; + } + + public function hasNewRecognitionResultNotificationConfig() + { + return isset($this->new_recognition_result_notification_config); + } + + public function clearNewRecognitionResultNotificationConfig() + { + unset($this->new_recognition_result_notification_config); + } + + /** + * Optional. Configuration for publishing transcription intermediate results. + * Event will be sent in format of + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent]. If + * configured, the following information will be populated as + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] Pub/Sub + * message attributes: + * - "participant_id" + * - "participant_role" + * - "message_id" + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig new_recognition_result_notification_config = 21 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\NotificationConfig $var + * @return $this + */ + public function setNewRecognitionResultNotificationConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\NotificationConfig::class); + $this->new_recognition_result_notification_config = $var; + + return $this; + } + + /** + * Settings for speech transcription. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechToTextConfig stt_config = 9; + * @return \Google\Cloud\Dialogflow\V2\SpeechToTextConfig|null + */ + public function getSttConfig() + { + return $this->stt_config; + } + + public function hasSttConfig() + { + return isset($this->stt_config); + } + + public function clearSttConfig() + { + unset($this->stt_config); + } + + /** + * Settings for speech transcription. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechToTextConfig stt_config = 9; + * @param \Google\Cloud\Dialogflow\V2\SpeechToTextConfig $var + * @return $this + */ + public function setSttConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SpeechToTextConfig::class); + $this->stt_config = $var; + + return $this; + } + + /** + * Language code for the conversation profile. If not specified, the language + * is en-US. Language at ConversationProfile should be set for all non en-US + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 10; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Language code for the conversation profile. If not specified, the language + * is en-US. Language at ConversationProfile should be set for all non en-US + * languages. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 10; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * The time zone of this conversational profile from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. Defaults to America/New_York. + * + * Generated from protobuf field string time_zone = 14; + * @return string + */ + public function getTimeZone() + { + return $this->time_zone; + } + + /** + * The time zone of this conversational profile from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. Defaults to America/New_York. + * + * Generated from protobuf field string time_zone = 14; + * @param string $var + * @return $this + */ + public function setTimeZone($var) + { + GPBUtil::checkString($var, True); + $this->time_zone = $var; + + return $this; + } + + /** + * Name of the CX SecuritySettings reference for the agent. + * Format: `projects//locations//securitySettings/`. + * + * Generated from protobuf field string security_settings = 13 [(.google.api.resource_reference) = { + * @return string + */ + public function getSecuritySettings() + { + return $this->security_settings; + } + + /** + * Name of the CX SecuritySettings reference for the agent. + * Format: `projects//locations//securitySettings/`. + * + * Generated from protobuf field string security_settings = 13 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setSecuritySettings($var) + { + GPBUtil::checkString($var, True); + $this->security_settings = $var; + + return $this; + } + + /** + * Configuration for Text-to-Speech synthesization. + * Used by Phone Gateway to specify synthesization options. If agent defines + * synthesization options as well, agent settings overrides the option here. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SynthesizeSpeechConfig tts_config = 18; + * @return \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig|null + */ + public function getTtsConfig() + { + return $this->tts_config; + } + + public function hasTtsConfig() + { + return isset($this->tts_config); + } + + public function clearTtsConfig() + { + unset($this->tts_config); + } + + /** + * Configuration for Text-to-Speech synthesization. + * Used by Phone Gateway to specify synthesization options. If agent defines + * synthesization options as well, agent settings overrides the option here. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SynthesizeSpeechConfig tts_config = 18; + * @param \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig $var + * @return $this + */ + public function setTtsConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig::class); + $this->tts_config = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateContextRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateContextRequest.php new file mode 100644 index 0000000..a68b43e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateContextRequest.php @@ -0,0 +1,153 @@ +google.cloud.dialogflow.v2.CreateContextRequest + */ +class CreateContextRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The session to create a context for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The context to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Context context = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $context = null; + + /** + * @param string $parent Required. The session to create a context for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see ContextsClient::sessionName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Context $context Required. The context to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateContextRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Context $context): self + { + return (new self()) + ->setParent($parent) + ->setContext($context); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The session to create a context for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * @type \Google\Cloud\Dialogflow\V2\Context $context + * Required. The context to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The session to create a context for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The session to create a context for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The context to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Context context = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Context|null + */ + public function getContext() + { + return $this->context; + } + + public function hasContext() + { + return isset($this->context); + } + + public function clearContext() + { + unset($this->context); + } + + /** + * Required. The context to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Context context = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Context $var + * @return $this + */ + public function setContext($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Context::class); + $this->context = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetOperationMetadata.php new file mode 100644 index 0000000..527064d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetOperationMetadata.php @@ -0,0 +1,75 @@ +google.cloud.dialogflow.v2.CreateConversationDatasetOperationMetadata + */ +class CreateConversationDatasetOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation dataset that will be created. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + */ + protected $conversation_dataset = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_dataset + * The resource name of the conversation dataset that will be created. Format: + * `projects//locations//conversationDatasets/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation dataset that will be created. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getConversationDataset() + { + return $this->conversation_dataset; + } + + /** + * The resource name of the conversation dataset that will be created. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversationDataset($var) + { + GPBUtil::checkString($var, True); + $this->conversation_dataset = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetRequest.php new file mode 100644 index 0000000..ebccff2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationDatasetRequest.php @@ -0,0 +1,132 @@ +google.cloud.dialogflow.v2.CreateConversationDatasetRequest + */ +class CreateConversationDatasetRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to create conversation dataset for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $parent = ''; + /** + * Required. The conversation dataset to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationDataset conversation_dataset = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_dataset = null; + + /** + * @param string $parent Required. The project to create conversation dataset for. Format: + * `projects//locations/` + * @param \Google\Cloud\Dialogflow\V2\ConversationDataset $conversationDataset Required. The conversation dataset to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateConversationDatasetRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\ConversationDataset $conversationDataset): self + { + return (new self()) + ->setParent($parent) + ->setConversationDataset($conversationDataset); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to create conversation dataset for. Format: + * `projects//locations/` + * @type \Google\Cloud\Dialogflow\V2\ConversationDataset $conversation_dataset + * Required. The conversation dataset to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to create conversation dataset for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to create conversation dataset for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The conversation dataset to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationDataset conversation_dataset = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ConversationDataset|null + */ + public function getConversationDataset() + { + return $this->conversation_dataset; + } + + public function hasConversationDataset() + { + return isset($this->conversation_dataset); + } + + public function clearConversationDataset() + { + unset($this->conversation_dataset); + } + + /** + * Required. The conversation dataset to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationDataset conversation_dataset = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ConversationDataset $var + * @return $this + */ + public function setConversationDataset($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationDataset::class); + $this->conversation_dataset = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata.php new file mode 100644 index 0000000..1de9349 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata.php @@ -0,0 +1,201 @@ +google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata + */ +class CreateConversationModelEvaluationOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels//evaluations/` + * + * Generated from protobuf field string conversation_model_evaluation = 1; + */ + protected $conversation_model_evaluation = ''; + /** + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels/` + * + * Generated from protobuf field string conversation_model = 4; + */ + protected $conversation_model = ''; + /** + * State of CreateConversationModel operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State state = 2; + */ + protected $state = 0; + /** + * Timestamp when the request to create conversation model was submitted. The + * time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_model_evaluation + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels//evaluations/` + * @type string $conversation_model + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels/` + * @type int $state + * State of CreateConversationModel operation. + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp when the request to create conversation model was submitted. The + * time is measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels//evaluations/` + * + * Generated from protobuf field string conversation_model_evaluation = 1; + * @return string + */ + public function getConversationModelEvaluation() + { + return $this->conversation_model_evaluation; + } + + /** + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels//evaluations/` + * + * Generated from protobuf field string conversation_model_evaluation = 1; + * @param string $var + * @return $this + */ + public function setConversationModelEvaluation($var) + { + GPBUtil::checkString($var, True); + $this->conversation_model_evaluation = $var; + + return $this; + } + + /** + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels/` + * + * Generated from protobuf field string conversation_model = 4; + * @return string + */ + public function getConversationModel() + { + return $this->conversation_model; + } + + /** + * The resource name of the conversation model. Format: + * `projects//locations//conversationModels/` + * + * Generated from protobuf field string conversation_model = 4; + * @param string $var + * @return $this + */ + public function setConversationModel($var) + { + GPBUtil::checkString($var, True); + $this->conversation_model = $var; + + return $this; + } + + /** + * State of CreateConversationModel operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State state = 2; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * State of CreateConversationModel operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State state = 2; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\CreateConversationModelEvaluationOperationMetadata\State::class); + $this->state = $var; + + return $this; + } + + /** + * Timestamp when the request to create conversation model was submitted. The + * time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp when the request to create conversation model was submitted. The + * time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata/State.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata/State.php new file mode 100644 index 0000000..d817672 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationOperationMetadata/State.php @@ -0,0 +1,83 @@ +google.cloud.dialogflow.v2.CreateConversationModelEvaluationOperationMetadata.State + */ +class State +{ + /** + * Operation status not specified. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * The operation is being prepared. + * + * Generated from protobuf enum INITIALIZING = 1; + */ + const INITIALIZING = 1; + /** + * The operation is running. + * + * Generated from protobuf enum RUNNING = 2; + */ + const RUNNING = 2; + /** + * The operation is cancelled. + * + * Generated from protobuf enum CANCELLED = 3; + */ + const CANCELLED = 3; + /** + * The operation has succeeded. + * + * Generated from protobuf enum SUCCEEDED = 4; + */ + const SUCCEEDED = 4; + /** + * The operation has failed. + * + * Generated from protobuf enum FAILED = 5; + */ + const FAILED = 5; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::INITIALIZING => 'INITIALIZING', + self::RUNNING => 'RUNNING', + self::CANCELLED => 'CANCELLED', + self::SUCCEEDED => 'SUCCEEDED', + self::FAILED => 'FAILED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationRequest.php new file mode 100644 index 0000000..f1363b6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelEvaluationRequest.php @@ -0,0 +1,138 @@ +google.cloud.dialogflow.v2.CreateConversationModelEvaluationRequest + */ +class CreateConversationModelEvaluationRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model resource name. Format: + * `projects//locations//conversationModels/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The conversation model evaluation to be created. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModelEvaluation conversation_model_evaluation = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_model_evaluation = null; + + /** + * @param string $parent Required. The conversation model resource name. Format: + * `projects//locations//conversationModels/` + * Please see {@see ConversationModelsClient::conversationModelName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation $conversationModelEvaluation Required. The conversation model evaluation to be created. + * + * @return \Google\Cloud\Dialogflow\V2\CreateConversationModelEvaluationRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation $conversationModelEvaluation): self + { + return (new self()) + ->setParent($parent) + ->setConversationModelEvaluation($conversationModelEvaluation); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The conversation model resource name. Format: + * `projects//locations//conversationModels/` + * @type \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation $conversation_model_evaluation + * Required. The conversation model evaluation to be created. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model resource name. Format: + * `projects//locations//conversationModels/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The conversation model resource name. Format: + * `projects//locations//conversationModels/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The conversation model evaluation to be created. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModelEvaluation conversation_model_evaluation = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation|null + */ + public function getConversationModelEvaluation() + { + return $this->conversation_model_evaluation; + } + + public function hasConversationModelEvaluation() + { + return isset($this->conversation_model_evaluation); + } + + public function clearConversationModelEvaluation() + { + unset($this->conversation_model_evaluation); + } + + /** + * Required. The conversation model evaluation to be created. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModelEvaluation conversation_model_evaluation = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation $var + * @return $this + */ + public function setConversationModelEvaluation($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation::class); + $this->conversation_model_evaluation = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata.php new file mode 100644 index 0000000..3ec1f69 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata.php @@ -0,0 +1,155 @@ +google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata + */ +class CreateConversationModelOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + */ + protected $conversation_model = ''; + /** + * State of CreateConversationModel operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State state = 2; + */ + protected $state = 0; + /** + * Timestamp when the request to create conversation model is submitted. The + * time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_model + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * @type int $state + * State of CreateConversationModel operation. + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp when the request to create conversation model is submitted. The + * time is measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @return string + */ + public function getConversationModel() + { + return $this->conversation_model; + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @param string $var + * @return $this + */ + public function setConversationModel($var) + { + GPBUtil::checkString($var, True); + $this->conversation_model = $var; + + return $this; + } + + /** + * State of CreateConversationModel operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State state = 2; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * State of CreateConversationModel operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State state = 2; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\CreateConversationModelOperationMetadata\State::class); + $this->state = $var; + + return $this; + } + + /** + * Timestamp when the request to create conversation model is submitted. The + * time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp when the request to create conversation model is submitted. The + * time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata/State.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata/State.php new file mode 100644 index 0000000..24ce721 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelOperationMetadata/State.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.CreateConversationModelOperationMetadata.State + */ +class State +{ + /** + * Invalid. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * Request is submitted, but training has not started yet. + * The model may remain in this state until there is enough capacity to + * start training. + * + * Generated from protobuf enum PENDING = 1; + */ + const PENDING = 1; + /** + * The training has succeeded. + * + * Generated from protobuf enum SUCCEEDED = 2; + */ + const SUCCEEDED = 2; + /** + * The training has succeeded. + * + * Generated from protobuf enum FAILED = 3; + */ + const FAILED = 3; + /** + * The training has been cancelled. + * + * Generated from protobuf enum CANCELLED = 4; + */ + const CANCELLED = 4; + /** + * The training is in cancelling state. + * + * Generated from protobuf enum CANCELLING = 5; + */ + const CANCELLING = 5; + /** + * Custom model is training. + * + * Generated from protobuf enum TRAINING = 6; + */ + const TRAINING = 6; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::PENDING => 'PENDING', + self::SUCCEEDED => 'SUCCEEDED', + self::FAILED => 'FAILED', + self::CANCELLED => 'CANCELLED', + self::CANCELLING => 'CANCELLING', + self::TRAINING => 'TRAINING', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelRequest.php new file mode 100644 index 0000000..bca3576 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationModelRequest.php @@ -0,0 +1,132 @@ +google.cloud.dialogflow.v2.CreateConversationModelRequest + */ +class CreateConversationModelRequest extends \Google\Protobuf\Internal\Message +{ + /** + * The project to create conversation model for. Format: + * `projects/` + * + * Generated from protobuf field string parent = 1; + */ + protected $parent = ''; + /** + * Required. The conversation model to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel conversation_model = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_model = null; + + /** + * @param string $parent The project to create conversation model for. Format: + * `projects/` + * @param \Google\Cloud\Dialogflow\V2\ConversationModel $conversationModel Required. The conversation model to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateConversationModelRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\ConversationModel $conversationModel): self + { + return (new self()) + ->setParent($parent) + ->setConversationModel($conversationModel); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * The project to create conversation model for. Format: + * `projects/` + * @type \Google\Cloud\Dialogflow\V2\ConversationModel $conversation_model + * Required. The conversation model to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The project to create conversation model for. Format: + * `projects/` + * + * Generated from protobuf field string parent = 1; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * The project to create conversation model for. Format: + * `projects/` + * + * Generated from protobuf field string parent = 1; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The conversation model to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel conversation_model = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ConversationModel|null + */ + public function getConversationModel() + { + return $this->conversation_model; + } + + public function hasConversationModel() + { + return isset($this->conversation_model); + } + + public function clearConversationModel() + { + unset($this->conversation_model); + } + + /** + * Required. The conversation model to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel conversation_model = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ConversationModel $var + * @return $this + */ + public function setConversationModel($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationModel::class); + $this->conversation_model = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationProfileRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationProfileRequest.php new file mode 100644 index 0000000..e6963cf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationProfileRequest.php @@ -0,0 +1,133 @@ +google.cloud.dialogflow.v2.CreateConversationProfileRequest + */ +class CreateConversationProfileRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to create a conversation profile for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The conversation profile to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_profile = null; + + /** + * @param string $parent Required. The project to create a conversation profile for. + * Format: `projects//locations/`. Please see + * {@see ConversationProfilesClient::projectName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\ConversationProfile $conversationProfile Required. The conversation profile to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateConversationProfileRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\ConversationProfile $conversationProfile): self + { + return (new self()) + ->setParent($parent) + ->setConversationProfile($conversationProfile); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to create a conversation profile for. + * Format: `projects//locations/`. + * @type \Google\Cloud\Dialogflow\V2\ConversationProfile $conversation_profile + * Required. The conversation profile to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to create a conversation profile for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to create a conversation profile for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The conversation profile to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ConversationProfile|null + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + public function hasConversationProfile() + { + return isset($this->conversation_profile); + } + + public function clearConversationProfile() + { + unset($this->conversation_profile); + } + + /** + * Required. The conversation profile to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ConversationProfile $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationProfile::class); + $this->conversation_profile = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateConversationRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateConversationRequest.php new file mode 100644 index 0000000..afb451a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateConversationRequest.php @@ -0,0 +1,199 @@ +google.cloud.dialogflow.v2.CreateConversationRequest + */ +class CreateConversationRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Resource identifier of the project creating the conversation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The conversation to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation conversation = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation = null; + /** + * Optional. Identifier of the conversation. Generally it's auto generated by + * Google. Only set it if you cannot wait for the response to return a + * auto-generated one to you. + * The conversation ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * Generated from protobuf field string conversation_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $conversation_id = ''; + + /** + * @param string $parent Required. Resource identifier of the project creating the conversation. + * Format: `projects//locations/`. Please see + * {@see ConversationsClient::projectName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Conversation $conversation Required. The conversation to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateConversationRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Conversation $conversation): self + { + return (new self()) + ->setParent($parent) + ->setConversation($conversation); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. Resource identifier of the project creating the conversation. + * Format: `projects//locations/`. + * @type \Google\Cloud\Dialogflow\V2\Conversation $conversation + * Required. The conversation to create. + * @type string $conversation_id + * Optional. Identifier of the conversation. Generally it's auto generated by + * Google. Only set it if you cannot wait for the response to return a + * auto-generated one to you. + * The conversation ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. Resource identifier of the project creating the conversation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. Resource identifier of the project creating the conversation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The conversation to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation conversation = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Conversation|null + */ + public function getConversation() + { + return $this->conversation; + } + + public function hasConversation() + { + return isset($this->conversation); + } + + public function clearConversation() + { + unset($this->conversation); + } + + /** + * Required. The conversation to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Conversation conversation = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Conversation $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Conversation::class); + $this->conversation = $var; + + return $this; + } + + /** + * Optional. Identifier of the conversation. Generally it's auto generated by + * Google. Only set it if you cannot wait for the response to return a + * auto-generated one to you. + * The conversation ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * Generated from protobuf field string conversation_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getConversationId() + { + return $this->conversation_id; + } + + /** + * Optional. Identifier of the conversation. Generally it's auto generated by + * Google. Only set it if you cannot wait for the response to return a + * auto-generated one to you. + * The conversation ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * Generated from protobuf field string conversation_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setConversationId($var) + { + GPBUtil::checkString($var, True); + $this->conversation_id = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateDocumentRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateDocumentRequest.php new file mode 100644 index 0000000..d642fc5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateDocumentRequest.php @@ -0,0 +1,138 @@ +google.cloud.dialogflow.v2.CreateDocumentRequest + */ +class CreateDocumentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The knowledge base to create a document for. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The document to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document document = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $document = null; + + /** + * @param string $parent Required. The knowledge base to create a document for. + * Format: `projects//locations//knowledgeBases/`. Please see + * {@see DocumentsClient::knowledgeBaseName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Document $document Required. The document to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateDocumentRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Document $document): self + { + return (new self()) + ->setParent($parent) + ->setDocument($document); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The knowledge base to create a document for. + * Format: `projects//locations//knowledgeBases/`. + * @type \Google\Cloud\Dialogflow\V2\Document $document + * Required. The document to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The knowledge base to create a document for. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The knowledge base to create a document for. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The document to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document document = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Document|null + */ + public function getDocument() + { + return $this->document; + } + + public function hasDocument() + { + return isset($this->document); + } + + public function clearDocument() + { + unset($this->document); + } + + /** + * Required. The document to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document document = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Document $var + * @return $this + */ + public function setDocument($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Document::class); + $this->document = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateEntityTypeRequest.php new file mode 100644 index 0000000..54bd1e8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateEntityTypeRequest.php @@ -0,0 +1,206 @@ +google.cloud.dialogflow.v2.CreateEntityTypeRequest + */ +class CreateEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to create a entity type for. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The entity type to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType entity_type = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $entity_type = null; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + + /** + * @param string $parent Required. The agent to create a entity type for. + * Format: `projects//agent`. Please see + * {@see EntityTypesClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EntityType $entityType Required. The entity type to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateEntityTypeRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\EntityType $entityType): self + { + return (new self()) + ->setParent($parent) + ->setEntityType($entityType); + } + + /** + * @param string $parent Required. The agent to create a entity type for. + * Format: `projects//agent`. Please see + * {@see EntityTypesClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\EntityType $entityType Required. The entity type to create. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\CreateEntityTypeRequest + * + * @experimental + */ + public static function buildFromParentEntityTypeLanguageCode(string $parent, \Google\Cloud\Dialogflow\V2\EntityType $entityType, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setEntityType($entityType) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to create a entity type for. + * Format: `projects//agent`. + * @type \Google\Cloud\Dialogflow\V2\EntityType $entity_type + * Required. The entity type to create. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to create a entity type for. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to create a entity type for. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The entity type to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType entity_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\EntityType|null + */ + public function getEntityType() + { + return $this->entity_type; + } + + public function hasEntityType() + { + return isset($this->entity_type); + } + + public function clearEntityType() + { + unset($this->entity_type); + } + + /** + * Required. The entity type to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType entity_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\EntityType $var + * @return $this + */ + public function setEntityType($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EntityType::class); + $this->entity_type = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateEnvironmentRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateEnvironmentRequest.php new file mode 100644 index 0000000..44e1ccc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateEnvironmentRequest.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.CreateEnvironmentRequest + */ +class CreateEnvironmentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to create an environment for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The environment to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment environment = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $environment = null; + /** + * Required. The unique id of the new environment. + * + * Generated from protobuf field string environment_id = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $environment_id = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to create an environment for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * @type \Google\Cloud\Dialogflow\V2\Environment $environment + * Required. The environment to create. + * @type string $environment_id + * Required. The unique id of the new environment. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to create an environment for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to create an environment for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The environment to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment environment = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Environment|null + */ + public function getEnvironment() + { + return $this->environment; + } + + public function hasEnvironment() + { + return isset($this->environment); + } + + public function clearEnvironment() + { + unset($this->environment); + } + + /** + * Required. The environment to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment environment = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Environment $var + * @return $this + */ + public function setEnvironment($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Environment::class); + $this->environment = $var; + + return $this; + } + + /** + * Required. The unique id of the new environment. + * + * Generated from protobuf field string environment_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getEnvironmentId() + { + return $this->environment_id; + } + + /** + * Required. The unique id of the new environment. + * + * Generated from protobuf field string environment_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setEnvironmentId($var) + { + GPBUtil::checkString($var, True); + $this->environment_id = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateGeneratorRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateGeneratorRequest.php new file mode 100644 index 0000000..da70a57 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateGeneratorRequest.php @@ -0,0 +1,209 @@ +google.cloud.dialogflow.v2.CreateGeneratorRequest + */ +class CreateGeneratorRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project/location to create generator for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The generator to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $generator = null; + /** + * Optional. The ID to use for the generator, which will become the final + * component of the generator's resource name. + * The generator ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is not provided, an Id will be auto-generated. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * Generated from protobuf field string generator_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $generator_id = ''; + + /** + * @param string $parent Required. The project/location to create generator for. Format: + * `projects//locations/` + * Please see {@see GeneratorsClient::projectName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Generator $generator Required. The generator to create. + * @param string $generatorId Optional. The ID to use for the generator, which will become the final + * component of the generator's resource name. + * + * The generator ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is not provided, an Id will be auto-generated. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * @return \Google\Cloud\Dialogflow\V2\CreateGeneratorRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Generator $generator, string $generatorId): self + { + return (new self()) + ->setParent($parent) + ->setGenerator($generator) + ->setGeneratorId($generatorId); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project/location to create generator for. Format: + * `projects//locations/` + * @type \Google\Cloud\Dialogflow\V2\Generator $generator + * Required. The generator to create. + * @type string $generator_id + * Optional. The ID to use for the generator, which will become the final + * component of the generator's resource name. + * The generator ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is not provided, an Id will be auto-generated. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project/location to create generator for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project/location to create generator for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The generator to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Generator|null + */ + public function getGenerator() + { + return $this->generator; + } + + public function hasGenerator() + { + return isset($this->generator); + } + + public function clearGenerator() + { + unset($this->generator); + } + + /** + * Required. The generator to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Generator $var + * @return $this + */ + public function setGenerator($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Generator::class); + $this->generator = $var; + + return $this; + } + + /** + * Optional. The ID to use for the generator, which will become the final + * component of the generator's resource name. + * The generator ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is not provided, an Id will be auto-generated. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * Generated from protobuf field string generator_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getGeneratorId() + { + return $this->generator_id; + } + + /** + * Optional. The ID to use for the generator, which will become the final + * component of the generator's resource name. + * The generator ID must be compliant with the regression formula + * `[a-zA-Z][a-zA-Z0-9_-]*` with the characters length in range of [3,64]. + * If the field is not provided, an Id will be auto-generated. + * If the field is provided, the caller is responsible for + * 1. the uniqueness of the ID, otherwise the request will be rejected. + * 2. the consistency for whether to use custom ID or not under a project to + * better ensure uniqueness. + * + * Generated from protobuf field string generator_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setGeneratorId($var) + { + GPBUtil::checkString($var, True); + $this->generator_id = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateIntentRequest.php new file mode 100644 index 0000000..cb16441 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateIntentRequest.php @@ -0,0 +1,240 @@ +google.cloud.dialogflow.v2.CreateIntentRequest + */ +class CreateIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to create a intent for. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The intent to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $intent = null; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $intent_view = 0; + + /** + * @param string $parent Required. The agent to create a intent for. + * Format: `projects//agent`. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Intent $intent Required. The intent to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateIntentRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Intent $intent): self + { + return (new self()) + ->setParent($parent) + ->setIntent($intent); + } + + /** + * @param string $parent Required. The agent to create a intent for. + * Format: `projects//agent`. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Intent $intent Required. The intent to create. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\CreateIntentRequest + * + * @experimental + */ + public static function buildFromParentIntentLanguageCode(string $parent, \Google\Cloud\Dialogflow\V2\Intent $intent, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setIntent($intent) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to create a intent for. + * Format: `projects//agent`. + * @type \Google\Cloud\Dialogflow\V2\Intent $intent + * Required. The intent to create. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type int $intent_view + * Optional. The resource view to apply to the returned intent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to create a intent for. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to create a intent for. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The intent to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Intent|null + */ + public function getIntent() + { + return $this->intent; + } + + public function hasIntent() + { + return isset($this->intent); + } + + public function clearIntent() + { + unset($this->intent); + } + + /** + * Required. The intent to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Intent $var + * @return $this + */ + public function setIntent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intent = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getIntentView() + { + return $this->intent_view; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setIntentView($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\IntentView::class); + $this->intent_view = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateKnowledgeBaseRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateKnowledgeBaseRequest.php new file mode 100644 index 0000000..f46bccb --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateKnowledgeBaseRequest.php @@ -0,0 +1,133 @@ +google.cloud.dialogflow.v2.CreateKnowledgeBaseRequest + */ +class CreateKnowledgeBaseRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to create a knowledge base for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The knowledge base to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeBase knowledge_base = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $knowledge_base = null; + + /** + * @param string $parent Required. The project to create a knowledge base for. + * Format: `projects//locations/`. Please see + * {@see KnowledgeBasesClient::projectName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\KnowledgeBase $knowledgeBase Required. The knowledge base to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateKnowledgeBaseRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\KnowledgeBase $knowledgeBase): self + { + return (new self()) + ->setParent($parent) + ->setKnowledgeBase($knowledgeBase); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to create a knowledge base for. + * Format: `projects//locations/`. + * @type \Google\Cloud\Dialogflow\V2\KnowledgeBase $knowledge_base + * Required. The knowledge base to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to create a knowledge base for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to create a knowledge base for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The knowledge base to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeBase knowledge_base = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeBase|null + */ + public function getKnowledgeBase() + { + return $this->knowledge_base; + } + + public function hasKnowledgeBase() + { + return isset($this->knowledge_base); + } + + public function clearKnowledgeBase() + { + unset($this->knowledge_base); + } + + /** + * Required. The knowledge base to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeBase knowledge_base = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeBase $var + * @return $this + */ + public function setKnowledgeBase($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeBase::class); + $this->knowledge_base = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateParticipantRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateParticipantRequest.php new file mode 100644 index 0000000..20b8f7f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateParticipantRequest.php @@ -0,0 +1,138 @@ +google.cloud.dialogflow.v2.CreateParticipantRequest + */ +class CreateParticipantRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Resource identifier of the conversation adding the participant. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The participant to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant participant = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $participant = null; + + /** + * @param string $parent Required. Resource identifier of the conversation adding the participant. + * Format: `projects//locations//conversations/`. Please see + * {@see ParticipantsClient::conversationName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Participant $participant Required. The participant to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateParticipantRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Participant $participant): self + { + return (new self()) + ->setParent($parent) + ->setParticipant($participant); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. Resource identifier of the conversation adding the participant. + * Format: `projects//locations//conversations/`. + * @type \Google\Cloud\Dialogflow\V2\Participant $participant + * Required. The participant to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. Resource identifier of the conversation adding the participant. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. Resource identifier of the conversation adding the participant. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The participant to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant participant = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Participant|null + */ + public function getParticipant() + { + return $this->participant; + } + + public function hasParticipant() + { + return isset($this->participant); + } + + public function clearParticipant() + { + unset($this->participant); + } + + /** + * Required. The participant to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant participant = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Participant $var + * @return $this + */ + public function setParticipant($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Participant::class); + $this->participant = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateSessionEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateSessionEntityTypeRequest.php new file mode 100644 index 0000000..136ace2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateSessionEntityTypeRequest.php @@ -0,0 +1,153 @@ +google.cloud.dialogflow.v2.CreateSessionEntityTypeRequest + */ +class CreateSessionEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The session to create a session entity type for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The session entity type to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType session_entity_type = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $session_entity_type = null; + + /** + * @param string $parent Required. The session to create a session entity type for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see SessionEntityTypesClient::sessionName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\SessionEntityType $sessionEntityType Required. The session entity type to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateSessionEntityTypeRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\SessionEntityType $sessionEntityType): self + { + return (new self()) + ->setParent($parent) + ->setSessionEntityType($sessionEntityType); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The session to create a session entity type for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * @type \Google\Cloud\Dialogflow\V2\SessionEntityType $session_entity_type + * Required. The session entity type to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The session to create a session entity type for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The session to create a session entity type for. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The session entity type to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType session_entity_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\SessionEntityType|null + */ + public function getSessionEntityType() + { + return $this->session_entity_type; + } + + public function hasSessionEntityType() + { + return isset($this->session_entity_type); + } + + public function clearSessionEntityType() + { + unset($this->session_entity_type); + } + + /** + * Required. The session entity type to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType session_entity_type = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\SessionEntityType $var + * @return $this + */ + public function setSessionEntityType($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SessionEntityType::class); + $this->session_entity_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/CreateVersionRequest.php b/vendor/google/cloud-dialogflow/src/V2/CreateVersionRequest.php new file mode 100644 index 0000000..d7797b8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/CreateVersionRequest.php @@ -0,0 +1,144 @@ +google.cloud.dialogflow.v2.CreateVersionRequest + */ +class CreateVersionRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to create a version for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The version to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version version = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $version = null; + + /** + * @param string $parent Required. The agent to create a version for. + * Supported formats: + * + * - `projects//agent` + * - `projects//locations//agent` + * Please see {@see VersionsClient::agentName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\Version $version Required. The version to create. + * + * @return \Google\Cloud\Dialogflow\V2\CreateVersionRequest + * + * @experimental + */ + public static function build(string $parent, \Google\Cloud\Dialogflow\V2\Version $version): self + { + return (new self()) + ->setParent($parent) + ->setVersion($version); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to create a version for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * @type \Google\Cloud\Dialogflow\V2\Version $version + * Required. The version to create. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to create a version for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to create a version for. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The version to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version version = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Version|null + */ + public function getVersion() + { + return $this->version; + } + + public function hasVersion() + { + return isset($this->version); + } + + public function clearVersion() + { + unset($this->version); + } + + /** + * Required. The version to create. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version version = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Version $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Version::class); + $this->version = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteAgentRequest.php new file mode 100644 index 0000000..a1e2bb7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteAgentRequest.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.DeleteAgentRequest + */ +class DeleteAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent to delete is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + + /** + * @param string $parent Required. The project that the agent to delete is associated with. + * Format: `projects/`. Please see + * {@see AgentsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteAgentRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent to delete is associated with. + * Format: `projects/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent to delete is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent to delete is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteAllContextsRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteAllContextsRequest.php new file mode 100644 index 0000000..49e06ce --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteAllContextsRequest.php @@ -0,0 +1,107 @@ +google.cloud.dialogflow.v2.DeleteAllContextsRequest + */ +class DeleteAllContextsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the session to delete all contexts from. Format: + * `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified we assume default 'draft' environment. + * If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + + /** + * @param string $parent Required. The name of the session to delete all contexts from. Format: + * `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified we assume default 'draft' environment. + * If `User ID` is not specified, we assume default '-' user. Please see + * {@see ContextsClient::sessionName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteAllContextsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the session to delete all contexts from. Format: + * `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified we assume default 'draft' environment. + * If `User ID` is not specified, we assume default '-' user. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the session to delete all contexts from. Format: + * `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified we assume default 'draft' environment. + * If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the session to delete all contexts from. Format: + * `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified we assume default 'draft' environment. + * If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteContextRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteContextRequest.php new file mode 100644 index 0000000..46b951b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteContextRequest.php @@ -0,0 +1,107 @@ +google.cloud.dialogflow.v2.DeleteContextRequest + */ +class DeleteContextRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the context to delete. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the context to delete. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see ContextsClient::contextName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteContextRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the context to delete. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the context to delete. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the context to delete. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetOperationMetadata.php new file mode 100644 index 0000000..73516cf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetOperationMetadata.php @@ -0,0 +1,33 @@ +google.cloud.dialogflow.v2.DeleteConversationDatasetOperationMetadata + */ +class DeleteConversationDatasetOperationMetadata extends \Google\Protobuf\Internal\Message +{ + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetRequest.php new file mode 100644 index 0000000..27435f1 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationDatasetRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.DeleteConversationDatasetRequest + */ +class DeleteConversationDatasetRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation dataset to delete. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The conversation dataset to delete. Format: + * `projects//locations//conversationDatasets/` + * Please see {@see ConversationDatasetsClient::conversationDatasetName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteConversationDatasetRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation dataset to delete. Format: + * `projects//locations//conversationDatasets/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation dataset to delete. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation dataset to delete. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelOperationMetadata.php new file mode 100644 index 0000000..30cc006 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelOperationMetadata.php @@ -0,0 +1,121 @@ +google.cloud.dialogflow.v2.DeleteConversationModelOperationMetadata + */ +class DeleteConversationModelOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + */ + protected $conversation_model = ''; + /** + * Timestamp when delete conversation model request was created. The time is + * measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_model + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp when delete conversation model request was created. The time is + * measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @return string + */ + public function getConversationModel() + { + return $this->conversation_model; + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @param string $var + * @return $this + */ + public function setConversationModel($var) + { + GPBUtil::checkString($var, True); + $this->conversation_model = $var; + + return $this; + } + + /** + * Timestamp when delete conversation model request was created. The time is + * measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp when delete conversation model request was created. The time is + * measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelRequest.php new file mode 100644 index 0000000..03defaf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationModelRequest.php @@ -0,0 +1,86 @@ +google.cloud.dialogflow.v2.DeleteConversationModelRequest + */ +class DeleteConversationModelRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model to delete. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + + /** + * @param string $name Required. The conversation model to delete. Format: + * `projects//conversationModels/` + * + * @return \Google\Cloud\Dialogflow\V2\DeleteConversationModelRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation model to delete. Format: + * `projects//conversationModels/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model to delete. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation model to delete. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteConversationProfileRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationProfileRequest.php new file mode 100644 index 0000000..232c89d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteConversationProfileRequest.php @@ -0,0 +1,94 @@ +google.cloud.dialogflow.v2.DeleteConversationProfileRequest + */ +class DeleteConversationProfileRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the conversation profile to delete. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the conversation profile to delete. + * Format: `projects//locations//conversationProfiles/`. Please see + * {@see ConversationProfilesClient::conversationProfileName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteConversationProfileRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the conversation profile to delete. + * Format: `projects//locations//conversationProfiles/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the conversation profile to delete. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the conversation profile to delete. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteDocumentRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteDocumentRequest.php new file mode 100644 index 0000000..1ae4fa2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteDocumentRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.DeleteDocumentRequest + */ +class DeleteDocumentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the document to delete. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the document to delete. + * Format: `projects//locations//knowledgeBases//documents/`. Please see + * {@see DocumentsClient::documentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteDocumentRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the document to delete. + * Format: `projects//locations//knowledgeBases//documents/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the document to delete. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the document to delete. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteEntityTypeRequest.php new file mode 100644 index 0000000..710ea19 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteEntityTypeRequest.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.DeleteEntityTypeRequest + */ +class DeleteEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the entity type to delete. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the entity type to delete. + * Format: `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteEntityTypeRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the entity type to delete. + * Format: `projects//agent/entityTypes/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the entity type to delete. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the entity type to delete. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteEnvironmentRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteEnvironmentRequest.php new file mode 100644 index 0000000..4ff70b6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteEnvironmentRequest.php @@ -0,0 +1,88 @@ +google.cloud.dialogflow.v2.DeleteEnvironmentRequest + */ +class DeleteEnvironmentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the environment to delete. + * / Format: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the environment to delete. + * / Format: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the environment to delete. + * / Format: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the environment to delete. + * / Format: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteGeneratorRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteGeneratorRequest.php new file mode 100644 index 0000000..8cd00db --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteGeneratorRequest.php @@ -0,0 +1,86 @@ +google.cloud.dialogflow.v2.DeleteGeneratorRequest + */ +class DeleteGeneratorRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The generator resource name to delete. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The generator resource name to delete. Format: + * `projects//locations//generators/` + * Please see {@see GeneratorsClient::generatorName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteGeneratorRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The generator resource name to delete. Format: + * `projects//locations//generators/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. The generator resource name to delete. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The generator resource name to delete. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteIntentRequest.php new file mode 100644 index 0000000..6d9bcb4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteIntentRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.DeleteIntentRequest + */ +class DeleteIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the intent to delete. If this intent has direct or + * indirect followup intents, we also delete them. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the intent to delete. If this intent has direct or + * indirect followup intents, we also delete them. + * Format: `projects//agent/intents/`. Please see + * {@see IntentsClient::intentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteIntentRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the intent to delete. If this intent has direct or + * indirect followup intents, we also delete them. + * Format: `projects//agent/intents/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the intent to delete. If this intent has direct or + * indirect followup intents, we also delete them. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the intent to delete. If this intent has direct or + * indirect followup intents, we also delete them. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteKnowledgeBaseRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteKnowledgeBaseRequest.php new file mode 100644 index 0000000..7c1a9a7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteKnowledgeBaseRequest.php @@ -0,0 +1,130 @@ +google.cloud.dialogflow.v2.DeleteKnowledgeBaseRequest + */ +class DeleteKnowledgeBaseRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the knowledge base to delete. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * Optional. Force deletes the knowledge base. When set to true, any documents + * in the knowledge base are also deleted. + * + * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $force = false; + + /** + * @param string $name Required. The name of the knowledge base to delete. + * Format: `projects//locations//knowledgeBases/`. Please see + * {@see KnowledgeBasesClient::knowledgeBaseName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteKnowledgeBaseRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the knowledge base to delete. + * Format: `projects//locations//knowledgeBases/`. + * @type bool $force + * Optional. Force deletes the knowledge base. When set to true, any documents + * in the knowledge base are also deleted. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the knowledge base to delete. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the knowledge base to delete. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. Force deletes the knowledge base. When set to true, any documents + * in the knowledge base are also deleted. + * + * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getForce() + { + return $this->force; + } + + /** + * Optional. Force deletes the knowledge base. When set to true, any documents + * in the knowledge base are also deleted. + * + * Generated from protobuf field bool force = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setForce($var) + { + GPBUtil::checkBool($var); + $this->force = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteSessionEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteSessionEntityTypeRequest.php new file mode 100644 index 0000000..e5a1c48 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteSessionEntityTypeRequest.php @@ -0,0 +1,112 @@ +google.cloud.dialogflow.v2.DeleteSessionEntityTypeRequest + */ +class DeleteSessionEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the entity type to delete. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the entity type to delete. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see SessionEntityTypesClient::sessionEntityTypeName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteSessionEntityTypeRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the entity type to delete. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the entity type to delete. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the entity type to delete. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeleteVersionRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeleteVersionRequest.php new file mode 100644 index 0000000..2d813ed --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeleteVersionRequest.php @@ -0,0 +1,103 @@ +google.cloud.dialogflow.v2.DeleteVersionRequest + */ +class DeleteVersionRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the version to delete. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the version to delete. + * Supported formats: + * + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * Please see {@see VersionsClient::versionName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\DeleteVersionRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the version to delete. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the version to delete. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the version to delete. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeployConversationModelOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/DeployConversationModelOperationMetadata.php new file mode 100644 index 0000000..fd4a874 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeployConversationModelOperationMetadata.php @@ -0,0 +1,121 @@ +google.cloud.dialogflow.v2.DeployConversationModelOperationMetadata + */ +class DeployConversationModelOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + */ + protected $conversation_model = ''; + /** + * Timestamp when request to deploy conversation model was submitted. The time + * is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_model + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp when request to deploy conversation model was submitted. The time + * is measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @return string + */ + public function getConversationModel() + { + return $this->conversation_model; + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @param string $var + * @return $this + */ + public function setConversationModel($var) + { + GPBUtil::checkString($var, True); + $this->conversation_model = $var; + + return $this; + } + + /** + * Timestamp when request to deploy conversation model was submitted. The time + * is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp when request to deploy conversation model was submitted. The time + * is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DeployConversationModelRequest.php b/vendor/google/cloud-dialogflow/src/V2/DeployConversationModelRequest.php new file mode 100644 index 0000000..13c3d0a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DeployConversationModelRequest.php @@ -0,0 +1,72 @@ +google.cloud.dialogflow.v2.DeployConversationModelRequest + */ +class DeployConversationModelRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model to deploy. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation model to deploy. Format: + * `projects//conversationModels/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model to deploy. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation model to deploy. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DetectIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/DetectIntentRequest.php new file mode 100644 index 0000000..8461a65 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DetectIntentRequest.php @@ -0,0 +1,428 @@ +google.cloud.dialogflow.v2.DetectIntentRequest + */ +class DetectIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the session this query is sent to. Format: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment (`Environment ID` might be referred to as + * environment name at some places). If `User ID` is not specified, we are + * using "-". It's up to the API caller to choose an appropriate `Session ID` + * and `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * Generated from protobuf field string session = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $session = ''; + /** + * The parameters of this query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 2; + */ + protected $query_params = null; + /** + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryInput query_input = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $query_input = null; + /** + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 4; + */ + protected $output_audio_config = null; + /** + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * + * Generated from protobuf field .google.protobuf.FieldMask output_audio_config_mask = 7; + */ + protected $output_audio_config_mask = null; + /** + * The natural language speech audio to be processed. This field + * should be populated iff `query_input` is set to an input audio config. + * A single request can contain up to 1 minute of speech audio data. + * + * Generated from protobuf field bytes input_audio = 5; + */ + protected $input_audio = ''; + + /** + * @param string $session Required. The name of the session this query is sent to. Format: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment (`Environment ID` might be referred to as + * environment name at some places). If `User ID` is not specified, we are + * using "-". It's up to the API caller to choose an appropriate `Session ID` + * and `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). Please see + * {@see SessionsClient::sessionName()} for help formatting this field. + * @param \Google\Cloud\Dialogflow\V2\QueryInput $queryInput Required. The input specification. It can be set to: + * + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * + * 2. a conversational query in the form of text, or + * + * 3. an event that specifies which intent to trigger. + * + * @return \Google\Cloud\Dialogflow\V2\DetectIntentRequest + * + * @experimental + */ + public static function build(string $session, \Google\Cloud\Dialogflow\V2\QueryInput $queryInput): self + { + return (new self()) + ->setSession($session) + ->setQueryInput($queryInput); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $session + * Required. The name of the session this query is sent to. Format: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment (`Environment ID` might be referred to as + * environment name at some places). If `User ID` is not specified, we are + * using "-". It's up to the API caller to choose an appropriate `Session ID` + * and `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * @type \Google\Cloud\Dialogflow\V2\QueryParameters $query_params + * The parameters of this query. + * @type \Google\Cloud\Dialogflow\V2\QueryInput $query_input + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $output_audio_config + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * @type \Google\Protobuf\FieldMask $output_audio_config_mask + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * @type string $input_audio + * The natural language speech audio to be processed. This field + * should be populated iff `query_input` is set to an input audio config. + * A single request can contain up to 1 minute of speech audio data. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the session this query is sent to. Format: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment (`Environment ID` might be referred to as + * environment name at some places). If `User ID` is not specified, we are + * using "-". It's up to the API caller to choose an appropriate `Session ID` + * and `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * Generated from protobuf field string session = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getSession() + { + return $this->session; + } + + /** + * Required. The name of the session this query is sent to. Format: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment (`Environment ID` might be referred to as + * environment name at some places). If `User ID` is not specified, we are + * using "-". It's up to the API caller to choose an appropriate `Session ID` + * and `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * Generated from protobuf field string session = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setSession($var) + { + GPBUtil::checkString($var, True); + $this->session = $var; + + return $this; + } + + /** + * The parameters of this query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 2; + * @return \Google\Cloud\Dialogflow\V2\QueryParameters|null + */ + public function getQueryParams() + { + return $this->query_params; + } + + public function hasQueryParams() + { + return isset($this->query_params); + } + + public function clearQueryParams() + { + unset($this->query_params); + } + + /** + * The parameters of this query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 2; + * @param \Google\Cloud\Dialogflow\V2\QueryParameters $var + * @return $this + */ + public function setQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryParameters::class); + $this->query_params = $var; + + return $this; + } + + /** + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryInput query_input = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\QueryInput|null + */ + public function getQueryInput() + { + return $this->query_input; + } + + public function hasQueryInput() + { + return isset($this->query_input); + } + + public function clearQueryInput() + { + unset($this->query_input); + } + + /** + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryInput query_input = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\QueryInput $var + * @return $this + */ + public function setQueryInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryInput::class); + $this->query_input = $var; + + return $this; + } + + /** + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 4; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getOutputAudioConfig() + { + return $this->output_audio_config; + } + + public function hasOutputAudioConfig() + { + return isset($this->output_audio_config); + } + + public function clearOutputAudioConfig() + { + unset($this->output_audio_config); + } + + /** + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 4; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setOutputAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->output_audio_config = $var; + + return $this; + } + + /** + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * + * Generated from protobuf field .google.protobuf.FieldMask output_audio_config_mask = 7; + * @return \Google\Protobuf\FieldMask|null + */ + public function getOutputAudioConfigMask() + { + return $this->output_audio_config_mask; + } + + public function hasOutputAudioConfigMask() + { + return isset($this->output_audio_config_mask); + } + + public function clearOutputAudioConfigMask() + { + unset($this->output_audio_config_mask); + } + + /** + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.DetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * + * Generated from protobuf field .google.protobuf.FieldMask output_audio_config_mask = 7; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setOutputAudioConfigMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->output_audio_config_mask = $var; + + return $this; + } + + /** + * The natural language speech audio to be processed. This field + * should be populated iff `query_input` is set to an input audio config. + * A single request can contain up to 1 minute of speech audio data. + * + * Generated from protobuf field bytes input_audio = 5; + * @return string + */ + public function getInputAudio() + { + return $this->input_audio; + } + + /** + * The natural language speech audio to be processed. This field + * should be populated iff `query_input` is set to an input audio config. + * A single request can contain up to 1 minute of speech audio data. + * + * Generated from protobuf field bytes input_audio = 5; + * @param string $var + * @return $this + */ + public function setInputAudio($var) + { + GPBUtil::checkString($var, False); + $this->input_audio = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DetectIntentResponse.php b/vendor/google/cloud-dialogflow/src/V2/DetectIntentResponse.php new file mode 100644 index 0000000..b838449 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DetectIntentResponse.php @@ -0,0 +1,273 @@ +google.cloud.dialogflow.v2.DetectIntentResponse + */ +class DetectIntentResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * + * Generated from protobuf field string response_id = 1; + */ + protected $response_id = ''; + /** + * The selected results of the conversational query or event processing. + * See `alternative_query_results` for additional potential results. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 2; + */ + protected $query_result = null; + /** + * Specifies the status of the webhook request. + * + * Generated from protobuf field .google.rpc.Status webhook_status = 3; + */ + protected $webhook_status = null; + /** + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field bytes output_audio = 4; + */ + protected $output_audio = ''; + /** + * The config used by the speech synthesizer to generate the output audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 6; + */ + protected $output_audio_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $response_id + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * @type \Google\Cloud\Dialogflow\V2\QueryResult $query_result + * The selected results of the conversational query or event processing. + * See `alternative_query_results` for additional potential results. + * @type \Google\Rpc\Status $webhook_status + * Specifies the status of the webhook request. + * @type string $output_audio + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $output_audio_config + * The config used by the speech synthesizer to generate the output audio. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * + * Generated from protobuf field string response_id = 1; + * @return string + */ + public function getResponseId() + { + return $this->response_id; + } + + /** + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * + * Generated from protobuf field string response_id = 1; + * @param string $var + * @return $this + */ + public function setResponseId($var) + { + GPBUtil::checkString($var, True); + $this->response_id = $var; + + return $this; + } + + /** + * The selected results of the conversational query or event processing. + * See `alternative_query_results` for additional potential results. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 2; + * @return \Google\Cloud\Dialogflow\V2\QueryResult|null + */ + public function getQueryResult() + { + return $this->query_result; + } + + public function hasQueryResult() + { + return isset($this->query_result); + } + + public function clearQueryResult() + { + unset($this->query_result); + } + + /** + * The selected results of the conversational query or event processing. + * See `alternative_query_results` for additional potential results. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 2; + * @param \Google\Cloud\Dialogflow\V2\QueryResult $var + * @return $this + */ + public function setQueryResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryResult::class); + $this->query_result = $var; + + return $this; + } + + /** + * Specifies the status of the webhook request. + * + * Generated from protobuf field .google.rpc.Status webhook_status = 3; + * @return \Google\Rpc\Status|null + */ + public function getWebhookStatus() + { + return $this->webhook_status; + } + + public function hasWebhookStatus() + { + return isset($this->webhook_status); + } + + public function clearWebhookStatus() + { + unset($this->webhook_status); + } + + /** + * Specifies the status of the webhook request. + * + * Generated from protobuf field .google.rpc.Status webhook_status = 3; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setWebhookStatus($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->webhook_status = $var; + + return $this; + } + + /** + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field bytes output_audio = 4; + * @return string + */ + public function getOutputAudio() + { + return $this->output_audio; + } + + /** + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field bytes output_audio = 4; + * @param string $var + * @return $this + */ + public function setOutputAudio($var) + { + GPBUtil::checkString($var, False); + $this->output_audio = $var; + + return $this; + } + + /** + * The config used by the speech synthesizer to generate the output audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 6; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getOutputAudioConfig() + { + return $this->output_audio_config; + } + + public function hasOutputAudioConfig() + { + return isset($this->output_audio_config); + } + + public function clearOutputAudioConfig() + { + unset($this->output_audio_config); + } + + /** + * The config used by the speech synthesizer to generate the output audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 6; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setOutputAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->output_audio_config = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/DialogflowAssistAnswer.php b/vendor/google/cloud-dialogflow/src/V2/DialogflowAssistAnswer.php new file mode 100644 index 0000000..65b84a8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DialogflowAssistAnswer.php @@ -0,0 +1,150 @@ +google.cloud.dialogflow.v2.DialogflowAssistAnswer + */ +class DialogflowAssistAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 2; + */ + protected $answer_record = ''; + protected $result; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\QueryResult $query_result + * Result from v2 agent. + * @type \Google\Cloud\Dialogflow\V2\IntentSuggestion $intent_suggestion + * An intent suggestion generated from conversation. + * @type string $answer_record + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Result from v2 agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 1; + * @return \Google\Cloud\Dialogflow\V2\QueryResult|null + */ + public function getQueryResult() + { + return $this->readOneof(1); + } + + public function hasQueryResult() + { + return $this->hasOneof(1); + } + + /** + * Result from v2 agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 1; + * @param \Google\Cloud\Dialogflow\V2\QueryResult $var + * @return $this + */ + public function setQueryResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryResult::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * An intent suggestion generated from conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentSuggestion intent_suggestion = 5; + * @return \Google\Cloud\Dialogflow\V2\IntentSuggestion|null + */ + public function getIntentSuggestion() + { + return $this->readOneof(5); + } + + public function hasIntentSuggestion() + { + return $this->hasOneof(5); + } + + /** + * An intent suggestion generated from conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentSuggestion intent_suggestion = 5; + * @param \Google\Cloud\Dialogflow\V2\IntentSuggestion $var + * @return $this + */ + public function setIntentSuggestion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\IntentSuggestion::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 2; + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 2; + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + + /** + * @return string + */ + public function getResult() + { + return $this->whichOneof("result"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Document.php b/vendor/google/cloud-dialogflow/src/V2/Document.php new file mode 100644 index 0000000..74886da --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Document.php @@ -0,0 +1,500 @@ +google.cloud.dialogflow.v2.Document + */ +class Document extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The document resource name. + * The name must be empty when creating a document. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $name = ''; + /** + * Required. The display name of the document. The name must be 1024 bytes or + * less; otherwise, the creation request fails. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Required. The MIME type of this document. + * + * Generated from protobuf field string mime_type = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $mime_type = ''; + /** + * Required. The knowledge type of document content. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document.KnowledgeType knowledge_types = 4 [(.google.api.field_behavior) = REQUIRED]; + */ + private $knowledge_types; + /** + * Optional. If true, we try to automatically reload the document every day + * (at a time picked by the system). If false or unspecified, we don't try + * to automatically reload the document. + * Currently you can only enable automatic reload for documents sourced from + * a public url, see `source` field for the source types. + * Reload status can be tracked in `latest_reload_status`. If a reload + * fails, we will keep the document unchanged. + * If a reload fails with internal errors, the system will try to reload the + * document on the next day. + * If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the + * system will not try to reload the document anymore. You need to manually + * reload the document successfully by calling `ReloadDocument` and clear the + * errors. + * + * Generated from protobuf field bool enable_auto_reload = 11 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_auto_reload = false; + /** + * Output only. The time and status of the latest reload. + * This reload may have been triggered automatically or manually + * and may not have succeeded. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document.ReloadStatus latest_reload_status = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $latest_reload_status = null; + /** + * Optional. Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * + * Generated from protobuf field map metadata = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $metadata; + /** + * Output only. The current state of the document. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $state = 0; + protected $source; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The document resource name. + * The name must be empty when creating a document. + * Format: `projects//locations//knowledgeBases//documents/`. + * @type string $display_name + * Required. The display name of the document. The name must be 1024 bytes or + * less; otherwise, the creation request fails. + * @type string $mime_type + * Required. The MIME type of this document. + * @type array|\Google\Protobuf\Internal\RepeatedField $knowledge_types + * Required. The knowledge type of document content. + * @type string $content_uri + * The URI where the file content is located. + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * NOTE: External URLs must correspond to public webpages, i.e., they must + * be indexed by Google Search. In particular, URLs for showing documents in + * Google Cloud Storage (i.e. the URL in your browser) are not supported. + * Instead use the `gs://` format URI described above. + * @type string $raw_content + * The raw content of the document. This field is only permitted for + * EXTRACTIVE_QA and FAQ knowledge types. + * @type bool $enable_auto_reload + * Optional. If true, we try to automatically reload the document every day + * (at a time picked by the system). If false or unspecified, we don't try + * to automatically reload the document. + * Currently you can only enable automatic reload for documents sourced from + * a public url, see `source` field for the source types. + * Reload status can be tracked in `latest_reload_status`. If a reload + * fails, we will keep the document unchanged. + * If a reload fails with internal errors, the system will try to reload the + * document on the next day. + * If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the + * system will not try to reload the document anymore. You need to manually + * reload the document successfully by calling `ReloadDocument` and clear the + * errors. + * @type \Google\Cloud\Dialogflow\V2\Document\ReloadStatus $latest_reload_status + * Output only. The time and status of the latest reload. + * This reload may have been triggered automatically or manually + * and may not have succeeded. + * @type array|\Google\Protobuf\Internal\MapField $metadata + * Optional. Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * @type int $state + * Output only. The current state of the document. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The document resource name. + * The name must be empty when creating a document. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The document resource name. + * The name must be empty when creating a document. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The display name of the document. The name must be 1024 bytes or + * less; otherwise, the creation request fails. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The display name of the document. The name must be 1024 bytes or + * less; otherwise, the creation request fails. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Required. The MIME type of this document. + * + * Generated from protobuf field string mime_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getMimeType() + { + return $this->mime_type; + } + + /** + * Required. The MIME type of this document. + * + * Generated from protobuf field string mime_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setMimeType($var) + { + GPBUtil::checkString($var, True); + $this->mime_type = $var; + + return $this; + } + + /** + * Required. The knowledge type of document content. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document.KnowledgeType knowledge_types = 4 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getKnowledgeTypes() + { + return $this->knowledge_types; + } + + /** + * Required. The knowledge type of document content. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document.KnowledgeType knowledge_types = 4 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setKnowledgeTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\Document\KnowledgeType::class); + $this->knowledge_types = $arr; + + return $this; + } + + /** + * The URI where the file content is located. + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * NOTE: External URLs must correspond to public webpages, i.e., they must + * be indexed by Google Search. In particular, URLs for showing documents in + * Google Cloud Storage (i.e. the URL in your browser) are not supported. + * Instead use the `gs://` format URI described above. + * + * Generated from protobuf field string content_uri = 5; + * @return string + */ + public function getContentUri() + { + return $this->readOneof(5); + } + + public function hasContentUri() + { + return $this->hasOneof(5); + } + + /** + * The URI where the file content is located. + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * NOTE: External URLs must correspond to public webpages, i.e., they must + * be indexed by Google Search. In particular, URLs for showing documents in + * Google Cloud Storage (i.e. the URL in your browser) are not supported. + * Instead use the `gs://` format URI described above. + * + * Generated from protobuf field string content_uri = 5; + * @param string $var + * @return $this + */ + public function setContentUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * The raw content of the document. This field is only permitted for + * EXTRACTIVE_QA and FAQ knowledge types. + * + * Generated from protobuf field bytes raw_content = 9; + * @return string + */ + public function getRawContent() + { + return $this->readOneof(9); + } + + public function hasRawContent() + { + return $this->hasOneof(9); + } + + /** + * The raw content of the document. This field is only permitted for + * EXTRACTIVE_QA and FAQ knowledge types. + * + * Generated from protobuf field bytes raw_content = 9; + * @param string $var + * @return $this + */ + public function setRawContent($var) + { + GPBUtil::checkString($var, False); + $this->writeOneof(9, $var); + + return $this; + } + + /** + * Optional. If true, we try to automatically reload the document every day + * (at a time picked by the system). If false or unspecified, we don't try + * to automatically reload the document. + * Currently you can only enable automatic reload for documents sourced from + * a public url, see `source` field for the source types. + * Reload status can be tracked in `latest_reload_status`. If a reload + * fails, we will keep the document unchanged. + * If a reload fails with internal errors, the system will try to reload the + * document on the next day. + * If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the + * system will not try to reload the document anymore. You need to manually + * reload the document successfully by calling `ReloadDocument` and clear the + * errors. + * + * Generated from protobuf field bool enable_auto_reload = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableAutoReload() + { + return $this->enable_auto_reload; + } + + /** + * Optional. If true, we try to automatically reload the document every day + * (at a time picked by the system). If false or unspecified, we don't try + * to automatically reload the document. + * Currently you can only enable automatic reload for documents sourced from + * a public url, see `source` field for the source types. + * Reload status can be tracked in `latest_reload_status`. If a reload + * fails, we will keep the document unchanged. + * If a reload fails with internal errors, the system will try to reload the + * document on the next day. + * If a reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the + * system will not try to reload the document anymore. You need to manually + * reload the document successfully by calling `ReloadDocument` and clear the + * errors. + * + * Generated from protobuf field bool enable_auto_reload = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableAutoReload($var) + { + GPBUtil::checkBool($var); + $this->enable_auto_reload = $var; + + return $this; + } + + /** + * Output only. The time and status of the latest reload. + * This reload may have been triggered automatically or manually + * and may not have succeeded. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document.ReloadStatus latest_reload_status = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\Document\ReloadStatus|null + */ + public function getLatestReloadStatus() + { + return $this->latest_reload_status; + } + + public function hasLatestReloadStatus() + { + return isset($this->latest_reload_status); + } + + public function clearLatestReloadStatus() + { + unset($this->latest_reload_status); + } + + /** + * Output only. The time and status of the latest reload. + * This reload may have been triggered automatically or manually + * and may not have succeeded. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document.ReloadStatus latest_reload_status = 12 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\Document\ReloadStatus $var + * @return $this + */ + public function setLatestReloadStatus($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Document\ReloadStatus::class); + $this->latest_reload_status = $var; + + return $this; + } + + /** + * Optional. Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * + * Generated from protobuf field map metadata = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * Optional. Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * + * Generated from protobuf field map metadata = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setMetadata($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->metadata = $arr; + + return $this; + } + + /** + * Output only. The current state of the document. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * Output only. The current state of the document. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document.State state = 13 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Document\State::class); + $this->state = $var; + + return $this; + } + + /** + * @return string + */ + public function getSource() + { + return $this->whichOneof("source"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Document/KnowledgeType.php b/vendor/google/cloud-dialogflow/src/V2/Document/KnowledgeType.php new file mode 100644 index 0000000..d8d1fe2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Document/KnowledgeType.php @@ -0,0 +1,83 @@ +google.cloud.dialogflow.v2.Document.KnowledgeType + */ +class KnowledgeType +{ + /** + * The type is unspecified or arbitrary. + * + * Generated from protobuf enum KNOWLEDGE_TYPE_UNSPECIFIED = 0; + */ + const KNOWLEDGE_TYPE_UNSPECIFIED = 0; + /** + * The document content contains question and answer pairs as either HTML or + * CSV. Typical FAQ HTML formats are parsed accurately, but unusual formats + * may fail to be parsed. + * CSV must have questions in the first column and answers in the second, + * with no header. Because of this explicit format, they are always parsed + * accurately. + * + * Generated from protobuf enum FAQ = 1; + */ + const FAQ = 1; + /** + * Documents for which unstructured text is extracted and used for + * question answering. + * + * Generated from protobuf enum EXTRACTIVE_QA = 2; + */ + const EXTRACTIVE_QA = 2; + /** + * The entire document content as a whole can be used for query results. + * Only for Contact Center Solutions on Dialogflow. + * + * Generated from protobuf enum ARTICLE_SUGGESTION = 3; + */ + const ARTICLE_SUGGESTION = 3; + /** + * The document contains agent-facing Smart Reply entries. + * + * Generated from protobuf enum AGENT_FACING_SMART_REPLY = 4; + */ + const AGENT_FACING_SMART_REPLY = 4; + + private static $valueToName = [ + self::KNOWLEDGE_TYPE_UNSPECIFIED => 'KNOWLEDGE_TYPE_UNSPECIFIED', + self::FAQ => 'FAQ', + self::EXTRACTIVE_QA => 'EXTRACTIVE_QA', + self::ARTICLE_SUGGESTION => 'ARTICLE_SUGGESTION', + self::AGENT_FACING_SMART_REPLY => 'AGENT_FACING_SMART_REPLY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Document/ReloadStatus.php b/vendor/google/cloud-dialogflow/src/V2/Document/ReloadStatus.php new file mode 100644 index 0000000..99e4900 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Document/ReloadStatus.php @@ -0,0 +1,130 @@ +google.cloud.dialogflow.v2.Document.ReloadStatus + */ +class ReloadStatus extends \Google\Protobuf\Internal\Message +{ + /** + * The time of a reload attempt. + * This reload may have been triggered automatically or manually and may + * not have succeeded. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 1; + */ + protected $time = null; + /** + * The status of a reload attempt or the initial load. + * + * Generated from protobuf field .google.rpc.Status status = 2; + */ + protected $status = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Protobuf\Timestamp $time + * The time of a reload attempt. + * This reload may have been triggered automatically or manually and may + * not have succeeded. + * @type \Google\Rpc\Status $status + * The status of a reload attempt or the initial load. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * The time of a reload attempt. + * This reload may have been triggered automatically or manually and may + * not have succeeded. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 1; + * @return \Google\Protobuf\Timestamp|null + */ + public function getTime() + { + return $this->time; + } + + public function hasTime() + { + return isset($this->time); + } + + public function clearTime() + { + unset($this->time); + } + + /** + * The time of a reload attempt. + * This reload may have been triggered automatically or manually and may + * not have succeeded. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 1; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->time = $var; + + return $this; + } + + /** + * The status of a reload attempt or the initial load. + * + * Generated from protobuf field .google.rpc.Status status = 2; + * @return \Google\Rpc\Status|null + */ + public function getStatus() + { + return $this->status; + } + + public function hasStatus() + { + return isset($this->status); + } + + public function clearStatus() + { + unset($this->status); + } + + /** + * The status of a reload attempt or the initial load. + * + * Generated from protobuf field .google.rpc.Status status = 2; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setStatus($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->status = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Document/State.php b/vendor/google/cloud-dialogflow/src/V2/Document/State.php new file mode 100644 index 0000000..88e797a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Document/State.php @@ -0,0 +1,83 @@ +google.cloud.dialogflow.v2.Document.State + */ +class State +{ + /** + * The document state is unspecified. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * The document creation is in progress. + * + * Generated from protobuf enum CREATING = 1; + */ + const CREATING = 1; + /** + * The document is active and ready to use. + * + * Generated from protobuf enum ACTIVE = 2; + */ + const ACTIVE = 2; + /** + * The document updation is in progress. + * + * Generated from protobuf enum UPDATING = 3; + */ + const UPDATING = 3; + /** + * The document is reloading. + * + * Generated from protobuf enum RELOADING = 4; + */ + const RELOADING = 4; + /** + * The document deletion is in progress. + * + * Generated from protobuf enum DELETING = 5; + */ + const DELETING = 5; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::CREATING => 'CREATING', + self::ACTIVE => 'ACTIVE', + self::UPDATING => 'UPDATING', + self::RELOADING => 'RELOADING', + self::DELETING => 'DELETING', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/DtmfParameters.php b/vendor/google/cloud-dialogflow/src/V2/DtmfParameters.php new file mode 100644 index 0000000..be68501 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/DtmfParameters.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.DtmfParameters + */ +class DtmfParameters extends \Google\Protobuf\Internal\Message +{ + /** + * Indicates whether DTMF input can be handled in the next request. + * + * Generated from protobuf field bool accepts_dtmf_input = 1; + */ + protected $accepts_dtmf_input = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $accepts_dtmf_input + * Indicates whether DTMF input can be handled in the next request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Indicates whether DTMF input can be handled in the next request. + * + * Generated from protobuf field bool accepts_dtmf_input = 1; + * @return bool + */ + public function getAcceptsDtmfInput() + { + return $this->accepts_dtmf_input; + } + + /** + * Indicates whether DTMF input can be handled in the next request. + * + * Generated from protobuf field bool accepts_dtmf_input = 1; + * @param bool $var + * @return $this + */ + public function setAcceptsDtmfInput($var) + { + GPBUtil::checkBool($var); + $this->accepts_dtmf_input = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/EncryptionSpec.php b/vendor/google/cloud-dialogflow/src/V2/EncryptionSpec.php new file mode 100644 index 0000000..cf409b8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EncryptionSpec.php @@ -0,0 +1,126 @@ +google.cloud.dialogflow.v2.EncryptionSpec + */ +class EncryptionSpec extends \Google\Protobuf\Internal\Message +{ + /** + * Immutable. The resource name of the encryption key specification resource. + * Format: + * projects/{project}/locations/{location}/encryptionSpec + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE]; + */ + protected $name = ''; + /** + * Required. The name of customer-managed encryption key that is used to + * secure a resource and its sub-resources. If empty, the resource is secured + * by the default Google encryption key. Only the key in the same location as + * this resource is allowed to be used for encryption. Format: + * `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + * + * Generated from protobuf field string kms_key = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $kms_key = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Immutable. The resource name of the encryption key specification resource. + * Format: + * projects/{project}/locations/{location}/encryptionSpec + * @type string $kms_key + * Required. The name of customer-managed encryption key that is used to + * secure a resource and its sub-resources. If empty, the resource is secured + * by the default Google encryption key. Only the key in the same location as + * this resource is allowed to be used for encryption. Format: + * `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EncryptionSpec::initOnce(); + parent::__construct($data); + } + + /** + * Immutable. The resource name of the encryption key specification resource. + * Format: + * projects/{project}/locations/{location}/encryptionSpec + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Immutable. The resource name of the encryption key specification resource. + * Format: + * projects/{project}/locations/{location}/encryptionSpec + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IMMUTABLE]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The name of customer-managed encryption key that is used to + * secure a resource and its sub-resources. If empty, the resource is secured + * by the default Google encryption key. Only the key in the same location as + * this resource is allowed to be used for encryption. Format: + * `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + * + * Generated from protobuf field string kms_key = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getKmsKey() + { + return $this->kms_key; + } + + /** + * Required. The name of customer-managed encryption key that is used to + * secure a resource and its sub-resources. If empty, the resource is secured + * by the default Google encryption key. Only the key in the same location as + * this resource is allowed to be used for encryption. Format: + * `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}` + * + * Generated from protobuf field string kms_key = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setKmsKey($var) + { + GPBUtil::checkString($var, True); + $this->kms_key = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/EntityType.php b/vendor/google/cloud-dialogflow/src/V2/EntityType.php new file mode 100644 index 0000000..2c3f5a2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EntityType.php @@ -0,0 +1,274 @@ +google.cloud.dialogflow.v2.EntityType + */ +class EntityType extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of the entity type. + * Required for + * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType] + * and + * [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes] + * methods. Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Required. The name of the entity type. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Required. Indicates the kind of entity type. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType.Kind kind = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $kind = 0; + /** + * Optional. Indicates whether the entity type can be automatically + * expanded. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType.AutoExpansionMode auto_expansion_mode = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $auto_expansion_mode = 0; + /** + * Optional. The collection of entity entries associated with the entity type. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $entities; + /** + * Optional. Enables fuzzy entity extraction during classification. + * + * Generated from protobuf field bool enable_fuzzy_extraction = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_fuzzy_extraction = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The unique identifier of the entity type. + * Required for + * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType] + * and + * [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes] + * methods. Format: `projects//agent/entityTypes/`. + * @type string $display_name + * Required. The name of the entity type. + * @type int $kind + * Required. Indicates the kind of entity type. + * @type int $auto_expansion_mode + * Optional. Indicates whether the entity type can be automatically + * expanded. + * @type array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $entities + * Optional. The collection of entity entries associated with the entity type. + * @type bool $enable_fuzzy_extraction + * Optional. Enables fuzzy entity extraction during classification. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of the entity type. + * Required for + * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType] + * and + * [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes] + * methods. Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The unique identifier of the entity type. + * Required for + * [EntityTypes.UpdateEntityType][google.cloud.dialogflow.v2.EntityTypes.UpdateEntityType] + * and + * [EntityTypes.BatchUpdateEntityTypes][google.cloud.dialogflow.v2.EntityTypes.BatchUpdateEntityTypes] + * methods. Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The name of the entity type. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The name of the entity type. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Required. Indicates the kind of entity type. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType.Kind kind = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getKind() + { + return $this->kind; + } + + /** + * Required. Indicates the kind of entity type. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType.Kind kind = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setKind($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\EntityType\Kind::class); + $this->kind = $var; + + return $this; + } + + /** + * Optional. Indicates whether the entity type can be automatically + * expanded. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType.AutoExpansionMode auto_expansion_mode = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getAutoExpansionMode() + { + return $this->auto_expansion_mode; + } + + /** + * Optional. Indicates whether the entity type can be automatically + * expanded. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType.AutoExpansionMode auto_expansion_mode = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setAutoExpansionMode($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\EntityType\AutoExpansionMode::class); + $this->auto_expansion_mode = $var; + + return $this; + } + + /** + * Optional. The collection of entity entries associated with the entity type. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntities() + { + return $this->entities; + } + + /** + * Optional. The collection of entity entries associated with the entity type. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntities($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType\Entity::class); + $this->entities = $arr; + + return $this; + } + + /** + * Optional. Enables fuzzy entity extraction during classification. + * + * Generated from protobuf field bool enable_fuzzy_extraction = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableFuzzyExtraction() + { + return $this->enable_fuzzy_extraction; + } + + /** + * Optional. Enables fuzzy entity extraction during classification. + * + * Generated from protobuf field bool enable_fuzzy_extraction = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableFuzzyExtraction($var) + { + GPBUtil::checkBool($var); + $this->enable_fuzzy_extraction = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/EntityType/AutoExpansionMode.php b/vendor/google/cloud-dialogflow/src/V2/EntityType/AutoExpansionMode.php new file mode 100644 index 0000000..4dabbf2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EntityType/AutoExpansionMode.php @@ -0,0 +1,58 @@ +google.cloud.dialogflow.v2.EntityType.AutoExpansionMode + */ +class AutoExpansionMode +{ + /** + * Auto expansion disabled for the entity. + * + * Generated from protobuf enum AUTO_EXPANSION_MODE_UNSPECIFIED = 0; + */ + const AUTO_EXPANSION_MODE_UNSPECIFIED = 0; + /** + * Allows an agent to recognize values that have not been explicitly + * listed in the entity. + * + * Generated from protobuf enum AUTO_EXPANSION_MODE_DEFAULT = 1; + */ + const AUTO_EXPANSION_MODE_DEFAULT = 1; + + private static $valueToName = [ + self::AUTO_EXPANSION_MODE_UNSPECIFIED => 'AUTO_EXPANSION_MODE_UNSPECIFIED', + self::AUTO_EXPANSION_MODE_DEFAULT => 'AUTO_EXPANSION_MODE_DEFAULT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EntityType/Entity.php b/vendor/google/cloud-dialogflow/src/V2/EntityType/Entity.php new file mode 100644 index 0000000..1c0bad2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EntityType/Entity.php @@ -0,0 +1,146 @@ +google.cloud.dialogflow.v2.EntityType.Entity + */ +class Entity extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The primary value associated with this entity entry. + * For example, if the entity type is *vegetable*, the value could be + * *scallions*. + * For `KIND_MAP` entity types: + * * A reference value to be used in place of synonyms. + * For `KIND_LIST` entity types: + * * A string that can contain references to other entity types (with or + * without aliases). + * + * Generated from protobuf field string value = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $value = ''; + /** + * Required. A collection of value synonyms. For example, if the entity type + * is *vegetable*, and `value` is *scallions*, a synonym could be *green + * onions*. + * For `KIND_LIST` entity types: + * * This collection must contain exactly one synonym equal to `value`. + * + * Generated from protobuf field repeated string synonyms = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $synonyms; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $value + * Required. The primary value associated with this entity entry. + * For example, if the entity type is *vegetable*, the value could be + * *scallions*. + * For `KIND_MAP` entity types: + * * A reference value to be used in place of synonyms. + * For `KIND_LIST` entity types: + * * A string that can contain references to other entity types (with or + * without aliases). + * @type array|\Google\Protobuf\Internal\RepeatedField $synonyms + * Required. A collection of value synonyms. For example, if the entity type + * is *vegetable*, and `value` is *scallions*, a synonym could be *green + * onions*. + * For `KIND_LIST` entity types: + * * This collection must contain exactly one synonym equal to `value`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The primary value associated with this entity entry. + * For example, if the entity type is *vegetable*, the value could be + * *scallions*. + * For `KIND_MAP` entity types: + * * A reference value to be used in place of synonyms. + * For `KIND_LIST` entity types: + * * A string that can contain references to other entity types (with or + * without aliases). + * + * Generated from protobuf field string value = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * Required. The primary value associated with this entity entry. + * For example, if the entity type is *vegetable*, the value could be + * *scallions*. + * For `KIND_MAP` entity types: + * * A reference value to be used in place of synonyms. + * For `KIND_LIST` entity types: + * * A string that can contain references to other entity types (with or + * without aliases). + * + * Generated from protobuf field string value = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setValue($var) + { + GPBUtil::checkString($var, True); + $this->value = $var; + + return $this; + } + + /** + * Required. A collection of value synonyms. For example, if the entity type + * is *vegetable*, and `value` is *scallions*, a synonym could be *green + * onions*. + * For `KIND_LIST` entity types: + * * This collection must contain exactly one synonym equal to `value`. + * + * Generated from protobuf field repeated string synonyms = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSynonyms() + { + return $this->synonyms; + } + + /** + * Required. A collection of value synonyms. For example, if the entity type + * is *vegetable*, and `value` is *scallions*, a synonym could be *green + * onions*. + * For `KIND_LIST` entity types: + * * This collection must contain exactly one synonym equal to `value`. + * + * Generated from protobuf field repeated string synonyms = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSynonyms($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->synonyms = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EntityType/Kind.php b/vendor/google/cloud-dialogflow/src/V2/EntityType/Kind.php new file mode 100644 index 0000000..184d9b8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EntityType/Kind.php @@ -0,0 +1,73 @@ +google.cloud.dialogflow.v2.EntityType.Kind + */ +class Kind +{ + /** + * Not specified. This value should be never used. + * + * Generated from protobuf enum KIND_UNSPECIFIED = 0; + */ + const KIND_UNSPECIFIED = 0; + /** + * Map entity types allow mapping of a group of synonyms to a reference + * value. + * + * Generated from protobuf enum KIND_MAP = 1; + */ + const KIND_MAP = 1; + /** + * List entity types contain a set of entries that do not map to reference + * values. However, list entity types can contain references to other entity + * types (with or without aliases). + * + * Generated from protobuf enum KIND_LIST = 2; + */ + const KIND_LIST = 2; + /** + * Regexp entity types allow to specify regular expressions in entries + * values. + * + * Generated from protobuf enum KIND_REGEXP = 3; + */ + const KIND_REGEXP = 3; + + private static $valueToName = [ + self::KIND_UNSPECIFIED => 'KIND_UNSPECIFIED', + self::KIND_MAP => 'KIND_MAP', + self::KIND_LIST => 'KIND_LIST', + self::KIND_REGEXP => 'KIND_REGEXP', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EntityTypeBatch.php b/vendor/google/cloud-dialogflow/src/V2/EntityTypeBatch.php new file mode 100644 index 0000000..290c6be --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EntityTypeBatch.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.EntityTypeBatch + */ +class EntityTypeBatch extends \Google\Protobuf\Internal\Message +{ + /** + * A collection of entity types. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + */ + private $entity_types; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\EntityType>|\Google\Protobuf\Internal\RepeatedField $entity_types + * A collection of entity types. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * A collection of entity types. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntityTypes() + { + return $this->entity_types; + } + + /** + * A collection of entity types. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntityTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType::class); + $this->entity_types = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Environment.php b/vendor/google/cloud-dialogflow/src/V2/Environment.php new file mode 100644 index 0000000..89d14a7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Environment.php @@ -0,0 +1,362 @@ +google.cloud.dialogflow.v2.Environment + */ +class Environment extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The unique identifier of this agent environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $name = ''; + /** + * Optional. The developer-provided description for this environment. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Optional. The agent version loaded into this environment. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string agent_version = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $agent_version = ''; + /** + * Output only. The state of this environment. This field is read-only, i.e., + * it cannot be set by create and update methods. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $state = 0; + /** + * Output only. The last update time of this environment. This field is + * read-only, i.e., it cannot be set by create and update methods. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $update_time = null; + /** + * Optional. Text to speech settings for this environment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextToSpeechSettings text_to_speech_settings = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $text_to_speech_settings = null; + /** + * Optional. The fulfillment settings to use for this environment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment fulfillment = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $fulfillment = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. The unique identifier of this agent environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * @type string $description + * Optional. The developer-provided description for this environment. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * @type string $agent_version + * Optional. The agent version loaded into this environment. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * @type int $state + * Output only. The state of this environment. This field is read-only, i.e., + * it cannot be set by create and update methods. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. The last update time of this environment. This field is + * read-only, i.e., it cannot be set by create and update methods. + * @type \Google\Cloud\Dialogflow\V2\TextToSpeechSettings $text_to_speech_settings + * Optional. Text to speech settings for this environment. + * @type \Google\Cloud\Dialogflow\V2\Fulfillment $fulfillment + * Optional. The fulfillment settings to use for this environment. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The unique identifier of this agent environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. The unique identifier of this agent environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The developer-provided description for this environment. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. The developer-provided description for this environment. + * The maximum length is 500 characters. If exceeded, the request is rejected. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. The agent version loaded into this environment. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string agent_version = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getAgentVersion() + { + return $this->agent_version; + } + + /** + * Optional. The agent version loaded into this environment. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string agent_version = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAgentVersion($var) + { + GPBUtil::checkString($var, True); + $this->agent_version = $var; + + return $this; + } + + /** + * Output only. The state of this environment. This field is read-only, i.e., + * it cannot be set by create and update methods. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * Output only. The state of this environment. This field is read-only, i.e., + * it cannot be set by create and update methods. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment.State state = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Environment\State::class); + $this->state = $var; + + return $this; + } + + /** + * Output only. The last update time of this environment. This field is + * read-only, i.e., it cannot be set by create and update methods. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. The last update time of this environment. This field is + * read-only, i.e., it cannot be set by create and update methods. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * Optional. Text to speech settings for this environment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextToSpeechSettings text_to_speech_settings = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\TextToSpeechSettings|null + */ + public function getTextToSpeechSettings() + { + return $this->text_to_speech_settings; + } + + public function hasTextToSpeechSettings() + { + return isset($this->text_to_speech_settings); + } + + public function clearTextToSpeechSettings() + { + unset($this->text_to_speech_settings); + } + + /** + * Optional. Text to speech settings for this environment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextToSpeechSettings text_to_speech_settings = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\TextToSpeechSettings $var + * @return $this + */ + public function setTextToSpeechSettings($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\TextToSpeechSettings::class); + $this->text_to_speech_settings = $var; + + return $this; + } + + /** + * Optional. The fulfillment settings to use for this environment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment fulfillment = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Fulfillment|null + */ + public function getFulfillment() + { + return $this->fulfillment; + } + + public function hasFulfillment() + { + return isset($this->fulfillment); + } + + public function clearFulfillment() + { + unset($this->fulfillment); + } + + /** + * Optional. The fulfillment settings to use for this environment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment fulfillment = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Fulfillment $var + * @return $this + */ + public function setFulfillment($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Fulfillment::class); + $this->fulfillment = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Environment/State.php b/vendor/google/cloud-dialogflow/src/V2/Environment/State.php new file mode 100644 index 0000000..6bdb303 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Environment/State.php @@ -0,0 +1,73 @@ +google.cloud.dialogflow.v2.Environment.State + */ +class State +{ + /** + * Not specified. This value is not used. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * Stopped. + * + * Generated from protobuf enum STOPPED = 1; + */ + const STOPPED = 1; + /** + * Loading. + * + * Generated from protobuf enum LOADING = 2; + */ + const LOADING = 2; + /** + * Running. + * + * Generated from protobuf enum RUNNING = 3; + */ + const RUNNING = 3; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::STOPPED => 'STOPPED', + self::LOADING => 'LOADING', + self::RUNNING => 'RUNNING', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory.php b/vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory.php new file mode 100644 index 0000000..103f608 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory.php @@ -0,0 +1,164 @@ +google.cloud.dialogflow.v2.EnvironmentHistory + */ +class EnvironmentHistory extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The name of the environment this history is for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $parent = ''; + /** + * Output only. The list of agent environments. There will be a maximum number + * of items returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EnvironmentHistory.Entry entries = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $entries; + /** + * Output only. Token to retrieve the next page of results, or empty if there + * are no more results in the list. + * + * Generated from protobuf field string next_page_token = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Output only. The name of the environment this history is for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * @type array<\Google\Cloud\Dialogflow\V2\EnvironmentHistory\Entry>|\Google\Protobuf\Internal\RepeatedField $entries + * Output only. The list of agent environments. There will be a maximum number + * of items returned based on the page_size field in the request. + * @type string $next_page_token + * Output only. Token to retrieve the next page of results, or empty if there + * are no more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The name of the environment this history is for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Output only. The name of the environment this history is for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Output only. The list of agent environments. There will be a maximum number + * of items returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EnvironmentHistory.Entry entries = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntries() + { + return $this->entries; + } + + /** + * Output only. The list of agent environments. There will be a maximum number + * of items returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EnvironmentHistory.Entry entries = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array<\Google\Cloud\Dialogflow\V2\EnvironmentHistory\Entry>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntries($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EnvironmentHistory\Entry::class); + $this->entries = $arr; + + return $this; + } + + /** + * Output only. Token to retrieve the next page of results, or empty if there + * are no more results in the list. + * + * Generated from protobuf field string next_page_token = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Output only. Token to retrieve the next page of results, or empty if there + * are no more results in the list. + * + * Generated from protobuf field string next_page_token = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory/Entry.php b/vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory/Entry.php new file mode 100644 index 0000000..028781d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EnvironmentHistory/Entry.php @@ -0,0 +1,146 @@ +google.cloud.dialogflow.v2.EnvironmentHistory.Entry + */ +class Entry extends \Google\Protobuf\Internal\Message +{ + /** + * The agent version loaded into this environment history entry. + * + * Generated from protobuf field string agent_version = 1; + */ + protected $agent_version = ''; + /** + * The developer-provided description for this environment history entry. + * + * Generated from protobuf field string description = 2; + */ + protected $description = ''; + /** + * The creation time of this environment history entry. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $agent_version + * The agent version loaded into this environment history entry. + * @type string $description + * The developer-provided description for this environment history entry. + * @type \Google\Protobuf\Timestamp $create_time + * The creation time of this environment history entry. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * The agent version loaded into this environment history entry. + * + * Generated from protobuf field string agent_version = 1; + * @return string + */ + public function getAgentVersion() + { + return $this->agent_version; + } + + /** + * The agent version loaded into this environment history entry. + * + * Generated from protobuf field string agent_version = 1; + * @param string $var + * @return $this + */ + public function setAgentVersion($var) + { + GPBUtil::checkString($var, True); + $this->agent_version = $var; + + return $this; + } + + /** + * The developer-provided description for this environment history entry. + * + * Generated from protobuf field string description = 2; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * The developer-provided description for this environment history entry. + * + * Generated from protobuf field string description = 2; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * The creation time of this environment history entry. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * The creation time of this environment history entry. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig.php b/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig.php new file mode 100644 index 0000000..f9f61d0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig.php @@ -0,0 +1,142 @@ +google.cloud.dialogflow.v2.EvaluationConfig + */ +class EvaluationConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Datasets used for evaluation. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.InputDataset datasets = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + private $datasets; + protected $model_specific_config; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\InputDataset>|\Google\Protobuf\Internal\RepeatedField $datasets + * Required. Datasets used for evaluation. + * @type \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartReplyConfig $smart_reply_config + * Configuration for smart reply model evaluation. + * @type \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartComposeConfig $smart_compose_config + * Configuration for smart compose model evaluation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. Datasets used for evaluation. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.InputDataset datasets = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDatasets() + { + return $this->datasets; + } + + /** + * Required. Datasets used for evaluation. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.InputDataset datasets = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\InputDataset>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDatasets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\InputDataset::class); + $this->datasets = $arr; + + return $this; + } + + /** + * Configuration for smart reply model evaluation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig smart_reply_config = 2; + * @return \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartReplyConfig|null + */ + public function getSmartReplyConfig() + { + return $this->readOneof(2); + } + + public function hasSmartReplyConfig() + { + return $this->hasOneof(2); + } + + /** + * Configuration for smart reply model evaluation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig smart_reply_config = 2; + * @param \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartReplyConfig $var + * @return $this + */ + public function setSmartReplyConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartReplyConfig::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Configuration for smart compose model evaluation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig smart_compose_config = 4; + * @return \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartComposeConfig|null + */ + public function getSmartComposeConfig() + { + return $this->readOneof(4); + } + + public function hasSmartComposeConfig() + { + return $this->hasOneof(4); + } + + /** + * Configuration for smart compose model evaluation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig smart_compose_config = 4; + * @param \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartComposeConfig $var + * @return $this + */ + public function setSmartComposeConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EvaluationConfig\SmartComposeConfig::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * @return string + */ + public function getModelSpecificConfig() + { + return $this->whichOneof("model_specific_config"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartComposeConfig.php b/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartComposeConfig.php new file mode 100644 index 0000000..83ebdff --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartComposeConfig.php @@ -0,0 +1,122 @@ +google.cloud.dialogflow.v2.EvaluationConfig.SmartComposeConfig + */ +class SmartComposeConfig extends \Google\Protobuf\Internal\Message +{ + /** + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart compose model. + * + * Generated from protobuf field string allowlist_document = 1 [(.google.api.resource_reference) = { + */ + protected $allowlist_document = ''; + /** + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * + * Generated from protobuf field int32 max_result_count = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $max_result_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $allowlist_document + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart compose model. + * @type int $max_result_count + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart compose model. + * + * Generated from protobuf field string allowlist_document = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getAllowlistDocument() + { + return $this->allowlist_document; + } + + /** + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart compose model. + * + * Generated from protobuf field string allowlist_document = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAllowlistDocument($var) + { + GPBUtil::checkString($var, True); + $this->allowlist_document = $var; + + return $this; + } + + /** + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * + * Generated from protobuf field int32 max_result_count = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getMaxResultCount() + { + return $this->max_result_count; + } + + /** + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * + * Generated from protobuf field int32 max_result_count = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setMaxResultCount($var) + { + GPBUtil::checkInt32($var); + $this->max_result_count = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartReplyConfig.php b/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartReplyConfig.php new file mode 100644 index 0000000..512358b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EvaluationConfig/SmartReplyConfig.php @@ -0,0 +1,122 @@ +google.cloud.dialogflow.v2.EvaluationConfig.SmartReplyConfig + */ +class SmartReplyConfig extends \Google\Protobuf\Internal\Message +{ + /** + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart reply model. + * + * Generated from protobuf field string allowlist_document = 1 [(.google.api.resource_reference) = { + */ + protected $allowlist_document = ''; + /** + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * + * Generated from protobuf field int32 max_result_count = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $max_result_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $allowlist_document + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart reply model. + * @type int $max_result_count + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart reply model. + * + * Generated from protobuf field string allowlist_document = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getAllowlistDocument() + { + return $this->allowlist_document; + } + + /** + * The allowlist document resource name. + * Format: `projects//knowledgeBases//documents/`. Only used for smart reply model. + * + * Generated from protobuf field string allowlist_document = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAllowlistDocument($var) + { + GPBUtil::checkString($var, True); + $this->allowlist_document = $var; + + return $this; + } + + /** + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * + * Generated from protobuf field int32 max_result_count = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getMaxResultCount() + { + return $this->max_result_count; + } + + /** + * Required. The model to be evaluated can return multiple results with + * confidence score on each query. These results will be sorted by the + * descending order of the scores and we only keep the first + * max_result_count results as the final results to evaluate. + * + * Generated from protobuf field int32 max_result_count = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setMaxResultCount($var) + { + GPBUtil::checkInt32($var); + $this->max_result_count = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/EventInput.php b/vendor/google/cloud-dialogflow/src/V2/EventInput.php new file mode 100644 index 0000000..015785c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/EventInput.php @@ -0,0 +1,221 @@ +` can trigger a personalized welcome response. + * The parameter `name` may be used by the agent in the response: + * `"Hello #welcome_event.name! What can I do for you today?"`. + * + * Generated from protobuf message google.cloud.dialogflow.v2.EventInput + */ +class EventInput extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The unique identifier of the event. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + /** + * The collection of parameters associated with the event. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 2; + */ + protected $parameters = null; + /** + * Required. The language of this query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * This field is ignored when used in the context of a + * [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2.WebhookResponse.followup_event_input] + * field, because the language was already defined in the originating detect + * intent request. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The unique identifier of the event. + * @type \Google\Protobuf\Struct $parameters + * The collection of parameters associated with the event. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * @type string $language_code + * Required. The language of this query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * This field is ignored when used in the context of a + * [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2.WebhookResponse.followup_event_input] + * field, because the language was already defined in the originating detect + * intent request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Required. The unique identifier of the event. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The unique identifier of the event. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The collection of parameters associated with the event. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 2; + * @return \Google\Protobuf\Struct|null + */ + public function getParameters() + { + return $this->parameters; + } + + public function hasParameters() + { + return isset($this->parameters); + } + + public function clearParameters() + { + unset($this->parameters); + } + + /** + * The collection of parameters associated with the event. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 2; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setParameters($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->parameters = $var; + + return $this; + } + + /** + * Required. The language of this query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * This field is ignored when used in the context of a + * [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2.WebhookResponse.followup_event_input] + * field, because the language was already defined in the originating detect + * intent request. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Required. The language of this query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * This field is ignored when used in the context of a + * [WebhookResponse.followup_event_input][google.cloud.dialogflow.v2.WebhookResponse.followup_event_input] + * field, because the language was already defined in the originating detect + * intent request. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ExportAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/ExportAgentRequest.php new file mode 100644 index 0000000..638f4e4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ExportAgentRequest.php @@ -0,0 +1,153 @@ +google.cloud.dialogflow.v2.ExportAgentRequest + */ +class ExportAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent to export is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. The [Google Cloud + * Storage](https://cloud.google.com/storage/docs/) URI to export the agent + * to. The format of this URI must be `gs:///`. If + * left unspecified, the serialized agent is returned inline. + * Dialogflow performs a write operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have write permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $agent_uri = ''; + + /** + * @param string $parent Required. The project that the agent to export is associated with. + * Format: `projects/`. Please see + * {@see AgentsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ExportAgentRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent to export is associated with. + * Format: `projects/`. + * @type string $agent_uri + * Required. The [Google Cloud + * Storage](https://cloud.google.com/storage/docs/) URI to export the agent + * to. The format of this URI must be `gs:///`. If + * left unspecified, the serialized agent is returned inline. + * Dialogflow performs a write operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have write permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent to export is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent to export is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The [Google Cloud + * Storage](https://cloud.google.com/storage/docs/) URI to export the agent + * to. The format of this URI must be `gs:///`. If + * left unspecified, the serialized agent is returned inline. + * Dialogflow performs a write operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have write permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getAgentUri() + { + return $this->agent_uri; + } + + /** + * Required. The [Google Cloud + * Storage](https://cloud.google.com/storage/docs/) URI to export the agent + * to. The format of this URI must be `gs:///`. If + * left unspecified, the serialized agent is returned inline. + * Dialogflow performs a write operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have write permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setAgentUri($var) + { + GPBUtil::checkString($var, True); + $this->agent_uri = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ExportAgentResponse.php b/vendor/google/cloud-dialogflow/src/V2/ExportAgentResponse.php new file mode 100644 index 0000000..0568ef0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ExportAgentResponse.php @@ -0,0 +1,112 @@ +google.cloud.dialogflow.v2.ExportAgentResponse + */ +class ExportAgentResponse extends \Google\Protobuf\Internal\Message +{ + protected $agent; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $agent_uri + * The URI to a file containing the exported agent. This field is populated + * only if `agent_uri` is specified in `ExportAgentRequest`. + * @type string $agent_content + * Zip compressed raw byte content for agent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * The URI to a file containing the exported agent. This field is populated + * only if `agent_uri` is specified in `ExportAgentRequest`. + * + * Generated from protobuf field string agent_uri = 1; + * @return string + */ + public function getAgentUri() + { + return $this->readOneof(1); + } + + public function hasAgentUri() + { + return $this->hasOneof(1); + } + + /** + * The URI to a file containing the exported agent. This field is populated + * only if `agent_uri` is specified in `ExportAgentRequest`. + * + * Generated from protobuf field string agent_uri = 1; + * @param string $var + * @return $this + */ + public function setAgentUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Zip compressed raw byte content for agent. + * + * Generated from protobuf field bytes agent_content = 2; + * @return string + */ + public function getAgentContent() + { + return $this->readOneof(2); + } + + public function hasAgentContent() + { + return $this->hasOneof(2); + } + + /** + * Zip compressed raw byte content for agent. + * + * Generated from protobuf field bytes agent_content = 2; + * @param string $var + * @return $this + */ + public function setAgentContent($var) + { + GPBUtil::checkString($var, False); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * @return string + */ + public function getAgent() + { + return $this->whichOneof("agent"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ExportDocumentRequest.php b/vendor/google/cloud-dialogflow/src/V2/ExportDocumentRequest.php new file mode 100644 index 0000000..84bd541 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ExportDocumentRequest.php @@ -0,0 +1,194 @@ +google.cloud.dialogflow.v2.ExportDocumentRequest + */ +class ExportDocumentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the document to export. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * When enabled, export the full content of the document including empirical + * probability. + * + * Generated from protobuf field bool export_full_content = 3; + */ + protected $export_full_content = false; + /** + * When enabled, export the smart messaging allowlist document for partial + * update. + * + * Generated from protobuf field bool smart_messaging_partial_update = 5; + */ + protected $smart_messaging_partial_update = false; + protected $destination; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the document to export. + * Format: `projects//locations//knowledgeBases//documents/`. + * @type \Google\Cloud\Dialogflow\V2\GcsDestination $gcs_destination + * Cloud Storage file path to export the document. + * @type bool $export_full_content + * When enabled, export the full content of the document including empirical + * probability. + * @type bool $smart_messaging_partial_update + * When enabled, export the smart messaging allowlist document for partial + * update. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the document to export. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the document to export. + * Format: `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Cloud Storage file path to export the document. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsDestination gcs_destination = 2; + * @return \Google\Cloud\Dialogflow\V2\GcsDestination|null + */ + public function getGcsDestination() + { + return $this->readOneof(2); + } + + public function hasGcsDestination() + { + return $this->hasOneof(2); + } + + /** + * Cloud Storage file path to export the document. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsDestination gcs_destination = 2; + * @param \Google\Cloud\Dialogflow\V2\GcsDestination $var + * @return $this + */ + public function setGcsDestination($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GcsDestination::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * When enabled, export the full content of the document including empirical + * probability. + * + * Generated from protobuf field bool export_full_content = 3; + * @return bool + */ + public function getExportFullContent() + { + return $this->export_full_content; + } + + /** + * When enabled, export the full content of the document including empirical + * probability. + * + * Generated from protobuf field bool export_full_content = 3; + * @param bool $var + * @return $this + */ + public function setExportFullContent($var) + { + GPBUtil::checkBool($var); + $this->export_full_content = $var; + + return $this; + } + + /** + * When enabled, export the smart messaging allowlist document for partial + * update. + * + * Generated from protobuf field bool smart_messaging_partial_update = 5; + * @return bool + */ + public function getSmartMessagingPartialUpdate() + { + return $this->smart_messaging_partial_update; + } + + /** + * When enabled, export the smart messaging allowlist document for partial + * update. + * + * Generated from protobuf field bool smart_messaging_partial_update = 5; + * @param bool $var + * @return $this + */ + public function setSmartMessagingPartialUpdate($var) + { + GPBUtil::checkBool($var); + $this->smart_messaging_partial_update = $var; + + return $this; + } + + /** + * @return string + */ + public function getDestination() + { + return $this->whichOneof("destination"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ExportOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/ExportOperationMetadata.php new file mode 100644 index 0000000..1462570 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ExportOperationMetadata.php @@ -0,0 +1,77 @@ +google.cloud.dialogflow.v2.ExportOperationMetadata + */ +class ExportOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Cloud Storage file path of the exported data. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsDestination exported_gcs_destination = 1; + */ + protected $exported_gcs_destination = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\GcsDestination $exported_gcs_destination + * Cloud Storage file path of the exported data. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Cloud Storage file path of the exported data. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsDestination exported_gcs_destination = 1; + * @return \Google\Cloud\Dialogflow\V2\GcsDestination|null + */ + public function getExportedGcsDestination() + { + return $this->exported_gcs_destination; + } + + public function hasExportedGcsDestination() + { + return isset($this->exported_gcs_destination); + } + + public function clearExportedGcsDestination() + { + unset($this->exported_gcs_destination); + } + + /** + * Cloud Storage file path of the exported data. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsDestination exported_gcs_destination = 1; + * @param \Google\Cloud\Dialogflow\V2\GcsDestination $var + * @return $this + */ + public function setExportedGcsDestination($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GcsDestination::class); + $this->exported_gcs_destination = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/FaqAnswer.php b/vendor/google/cloud-dialogflow/src/V2/FaqAnswer.php new file mode 100644 index 0000000..c8d2453 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/FaqAnswer.php @@ -0,0 +1,269 @@ +google.cloud.dialogflow.v2.FaqAnswer + */ +class FaqAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The piece of text from the `source` knowledge base document. + * + * Generated from protobuf field string answer = 1; + */ + protected $answer = ''; + /** + * The system's confidence score that this Knowledge answer is a good match + * for this conversational query, range from 0.0 (completely uncertain) + * to 1.0 (completely certain). + * + * Generated from protobuf field float confidence = 2; + */ + protected $confidence = 0.0; + /** + * The corresponding FAQ question. + * + * Generated from protobuf field string question = 3; + */ + protected $question = ''; + /** + * Indicates which Knowledge Document this answer was extracted + * from. + * Format: `projects//locations//agent/knowledgeBases//documents/`. + * + * Generated from protobuf field string source = 4; + */ + protected $source = ''; + /** + * A map that contains metadata about the answer and the + * document from which it originates. + * + * Generated from protobuf field map metadata = 5; + */ + private $metadata; + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 6; + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $answer + * The piece of text from the `source` knowledge base document. + * @type float $confidence + * The system's confidence score that this Knowledge answer is a good match + * for this conversational query, range from 0.0 (completely uncertain) + * to 1.0 (completely certain). + * @type string $question + * The corresponding FAQ question. + * @type string $source + * Indicates which Knowledge Document this answer was extracted + * from. + * Format: `projects//locations//agent/knowledgeBases//documents/`. + * @type array|\Google\Protobuf\Internal\MapField $metadata + * A map that contains metadata about the answer and the + * document from which it originates. + * @type string $answer_record + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The piece of text from the `source` knowledge base document. + * + * Generated from protobuf field string answer = 1; + * @return string + */ + public function getAnswer() + { + return $this->answer; + } + + /** + * The piece of text from the `source` knowledge base document. + * + * Generated from protobuf field string answer = 1; + * @param string $var + * @return $this + */ + public function setAnswer($var) + { + GPBUtil::checkString($var, True); + $this->answer = $var; + + return $this; + } + + /** + * The system's confidence score that this Knowledge answer is a good match + * for this conversational query, range from 0.0 (completely uncertain) + * to 1.0 (completely certain). + * + * Generated from protobuf field float confidence = 2; + * @return float + */ + public function getConfidence() + { + return $this->confidence; + } + + /** + * The system's confidence score that this Knowledge answer is a good match + * for this conversational query, range from 0.0 (completely uncertain) + * to 1.0 (completely certain). + * + * Generated from protobuf field float confidence = 2; + * @param float $var + * @return $this + */ + public function setConfidence($var) + { + GPBUtil::checkFloat($var); + $this->confidence = $var; + + return $this; + } + + /** + * The corresponding FAQ question. + * + * Generated from protobuf field string question = 3; + * @return string + */ + public function getQuestion() + { + return $this->question; + } + + /** + * The corresponding FAQ question. + * + * Generated from protobuf field string question = 3; + * @param string $var + * @return $this + */ + public function setQuestion($var) + { + GPBUtil::checkString($var, True); + $this->question = $var; + + return $this; + } + + /** + * Indicates which Knowledge Document this answer was extracted + * from. + * Format: `projects//locations//agent/knowledgeBases//documents/`. + * + * Generated from protobuf field string source = 4; + * @return string + */ + public function getSource() + { + return $this->source; + } + + /** + * Indicates which Knowledge Document this answer was extracted + * from. + * Format: `projects//locations//agent/knowledgeBases//documents/`. + * + * Generated from protobuf field string source = 4; + * @param string $var + * @return $this + */ + public function setSource($var) + { + GPBUtil::checkString($var, True); + $this->source = $var; + + return $this; + } + + /** + * A map that contains metadata about the answer and the + * document from which it originates. + * + * Generated from protobuf field map metadata = 5; + * @return \Google\Protobuf\Internal\MapField + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * A map that contains metadata about the answer and the + * document from which it originates. + * + * Generated from protobuf field map metadata = 5; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setMetadata($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->metadata = $arr; + + return $this; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 6; + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 6; + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/FewShotExample.php b/vendor/google/cloud-dialogflow/src/V2/FewShotExample.php new file mode 100644 index 0000000..426155a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/FewShotExample.php @@ -0,0 +1,206 @@ +google.cloud.dialogflow.v2.FewShotExample + */ +class FewShotExample extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Conversation transcripts. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationContext conversation_context = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $conversation_context = null; + /** + * Optional. Key is the placeholder field name in input, value is the value of + * the placeholder. E.g. instruction contains "@price", and ingested data has + * <"price", "10"> + * + * Generated from protobuf field map extra_info = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $extra_info; + /** + * Required. Example output of the model. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion output = 7 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $output = null; + protected $instruction_list; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\ConversationContext $conversation_context + * Optional. Conversation transcripts. + * @type array|\Google\Protobuf\Internal\MapField $extra_info + * Optional. Key is the placeholder field name in input, value is the value of + * the placeholder. E.g. instruction contains "@price", and ingested data has + * <"price", "10"> + * @type \Google\Cloud\Dialogflow\V2\SummarizationSectionList $summarization_section_list + * Summarization sections. + * @type \Google\Cloud\Dialogflow\V2\GeneratorSuggestion $output + * Required. Example output of the model. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Conversation transcripts. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationContext conversation_context = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\ConversationContext|null + */ + public function getConversationContext() + { + return $this->conversation_context; + } + + public function hasConversationContext() + { + return isset($this->conversation_context); + } + + public function clearConversationContext() + { + unset($this->conversation_context); + } + + /** + * Optional. Conversation transcripts. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationContext conversation_context = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\ConversationContext $var + * @return $this + */ + public function setConversationContext($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationContext::class); + $this->conversation_context = $var; + + return $this; + } + + /** + * Optional. Key is the placeholder field name in input, value is the value of + * the placeholder. E.g. instruction contains "@price", and ingested data has + * <"price", "10"> + * + * Generated from protobuf field map extra_info = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getExtraInfo() + { + return $this->extra_info; + } + + /** + * Optional. Key is the placeholder field name in input, value is the value of + * the placeholder. E.g. instruction contains "@price", and ingested data has + * <"price", "10"> + * + * Generated from protobuf field map extra_info = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setExtraInfo($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->extra_info = $arr; + + return $this; + } + + /** + * Summarization sections. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationSectionList summarization_section_list = 6; + * @return \Google\Cloud\Dialogflow\V2\SummarizationSectionList|null + */ + public function getSummarizationSectionList() + { + return $this->readOneof(6); + } + + public function hasSummarizationSectionList() + { + return $this->hasOneof(6); + } + + /** + * Summarization sections. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationSectionList summarization_section_list = 6; + * @param \Google\Cloud\Dialogflow\V2\SummarizationSectionList $var + * @return $this + */ + public function setSummarizationSectionList($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SummarizationSectionList::class); + $this->writeOneof(6, $var); + + return $this; + } + + /** + * Required. Example output of the model. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion output = 7 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\GeneratorSuggestion|null + */ + public function getOutput() + { + return $this->output; + } + + public function hasOutput() + { + return isset($this->output); + } + + public function clearOutput() + { + unset($this->output); + } + + /** + * Required. Example output of the model. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion output = 7 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\GeneratorSuggestion $var + * @return $this + */ + public function setOutput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GeneratorSuggestion::class); + $this->output = $var; + + return $this; + } + + /** + * @return string + */ + public function getInstructionList() + { + return $this->whichOneof("instruction_list"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/FreeFormContext.php b/vendor/google/cloud-dialogflow/src/V2/FreeFormContext.php new file mode 100644 index 0000000..ffcc26b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/FreeFormContext.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.FreeFormContext + */ +class FreeFormContext extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Free form text input to LLM. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $text = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * Optional. Free form text input to LLM. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Free form text input to LLM. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Optional. Free form text input to LLM. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/FreeFormSuggestion.php b/vendor/google/cloud-dialogflow/src/V2/FreeFormSuggestion.php new file mode 100644 index 0000000..7c3fe62 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/FreeFormSuggestion.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.FreeFormSuggestion + */ +class FreeFormSuggestion extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Free form suggestion. + * + * Generated from protobuf field string response = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $response = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $response + * Required. Free form suggestion. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. Free form suggestion. + * + * Generated from protobuf field string response = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getResponse() + { + return $this->response; + } + + /** + * Required. Free form suggestion. + * + * Generated from protobuf field string response = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setResponse($var) + { + GPBUtil::checkString($var, True); + $this->response = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Fulfillment.php b/vendor/google/cloud-dialogflow/src/V2/Fulfillment.php new file mode 100644 index 0000000..5284053 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Fulfillment.php @@ -0,0 +1,247 @@ +google.cloud.dialogflow.v2.Fulfillment + */ +class Fulfillment extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The unique identifier of the fulfillment. + * Supported formats: + * - `projects//agent/fulfillment` + * - `projects//locations//agent/fulfillment` + * This field is not used for Fulfillment in an Environment. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + /** + * Optional. The human-readable name of the fulfillment, unique within the + * agent. + * This field is not used for Fulfillment in an Environment. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $display_name = ''; + /** + * Optional. Whether fulfillment is enabled. + * + * Generated from protobuf field bool enabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enabled = false; + /** + * Optional. The field defines whether the fulfillment is enabled for certain + * features. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Fulfillment.Feature features = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $features; + protected $fulfillment; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The unique identifier of the fulfillment. + * Supported formats: + * - `projects//agent/fulfillment` + * - `projects//locations//agent/fulfillment` + * This field is not used for Fulfillment in an Environment. + * @type string $display_name + * Optional. The human-readable name of the fulfillment, unique within the + * agent. + * This field is not used for Fulfillment in an Environment. + * @type \Google\Cloud\Dialogflow\V2\Fulfillment\GenericWebService $generic_web_service + * Configuration for a generic web service. + * @type bool $enabled + * Optional. Whether fulfillment is enabled. + * @type array<\Google\Cloud\Dialogflow\V2\Fulfillment\Feature>|\Google\Protobuf\Internal\RepeatedField $features + * Optional. The field defines whether the fulfillment is enabled for certain + * features. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Fulfillment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The unique identifier of the fulfillment. + * Supported formats: + * - `projects//agent/fulfillment` + * - `projects//locations//agent/fulfillment` + * This field is not used for Fulfillment in an Environment. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The unique identifier of the fulfillment. + * Supported formats: + * - `projects//agent/fulfillment` + * - `projects//locations//agent/fulfillment` + * This field is not used for Fulfillment in an Environment. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The human-readable name of the fulfillment, unique within the + * agent. + * This field is not used for Fulfillment in an Environment. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Optional. The human-readable name of the fulfillment, unique within the + * agent. + * This field is not used for Fulfillment in an Environment. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Configuration for a generic web service. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment.GenericWebService generic_web_service = 3; + * @return \Google\Cloud\Dialogflow\V2\Fulfillment\GenericWebService|null + */ + public function getGenericWebService() + { + return $this->readOneof(3); + } + + public function hasGenericWebService() + { + return $this->hasOneof(3); + } + + /** + * Configuration for a generic web service. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment.GenericWebService generic_web_service = 3; + * @param \Google\Cloud\Dialogflow\V2\Fulfillment\GenericWebService $var + * @return $this + */ + public function setGenericWebService($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Fulfillment\GenericWebService::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Optional. Whether fulfillment is enabled. + * + * Generated from protobuf field bool enabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnabled() + { + return $this->enabled; + } + + /** + * Optional. Whether fulfillment is enabled. + * + * Generated from protobuf field bool enabled = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnabled($var) + { + GPBUtil::checkBool($var); + $this->enabled = $var; + + return $this; + } + + /** + * Optional. The field defines whether the fulfillment is enabled for certain + * features. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Fulfillment.Feature features = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFeatures() + { + return $this->features; + } + + /** + * Optional. The field defines whether the fulfillment is enabled for certain + * features. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Fulfillment.Feature features = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Fulfillment\Feature>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFeatures($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Fulfillment\Feature::class); + $this->features = $arr; + + return $this; + } + + /** + * @return string + */ + public function getFulfillment() + { + return $this->whichOneof("fulfillment"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature.php b/vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature.php new file mode 100644 index 0000000..3c91650 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.Fulfillment.Feature + */ +class Feature extends \Google\Protobuf\Internal\Message +{ + /** + * The type of the feature that enabled for fulfillment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment.Feature.Type type = 1; + */ + protected $type = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $type + * The type of the feature that enabled for fulfillment. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Fulfillment::initOnce(); + parent::__construct($data); + } + + /** + * The type of the feature that enabled for fulfillment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment.Feature.Type type = 1; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * The type of the feature that enabled for fulfillment. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment.Feature.Type type = 1; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Fulfillment\Feature\Type::class); + $this->type = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature/Type.php b/vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature/Type.php new file mode 100644 index 0000000..694f53a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Fulfillment/Feature/Type.php @@ -0,0 +1,55 @@ +google.cloud.dialogflow.v2.Fulfillment.Feature.Type + */ +class Type +{ + /** + * Feature type not specified. + * + * Generated from protobuf enum TYPE_UNSPECIFIED = 0; + */ + const TYPE_UNSPECIFIED = 0; + /** + * Fulfillment is enabled for SmallTalk. + * + * Generated from protobuf enum SMALLTALK = 1; + */ + const SMALLTALK = 1; + + private static $valueToName = [ + self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED', + self::SMALLTALK => 'SMALLTALK', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Fulfillment/GenericWebService.php b/vendor/google/cloud-dialogflow/src/V2/Fulfillment/GenericWebService.php new file mode 100644 index 0000000..8e0493c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Fulfillment/GenericWebService.php @@ -0,0 +1,236 @@ +google.cloud.dialogflow.v2.Fulfillment.GenericWebService + */ +class GenericWebService extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The fulfillment URI for receiving POST requests. + * It must use https protocol. + * + * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $uri = ''; + /** + * Optional. The user name for HTTP Basic authentication. + * + * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $username = ''; + /** + * Optional. The password for HTTP Basic authentication. + * + * Generated from protobuf field string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $password = ''; + /** + * Optional. The HTTP request headers to send together with fulfillment + * requests. + * + * Generated from protobuf field map request_headers = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $request_headers; + /** + * Optional. Indicates if generic web service is created through Cloud + * Functions integration. Defaults to false. + * is_cloud_function is deprecated. Cloud functions can be configured by + * its uri as a regular web service now. + * + * Generated from protobuf field bool is_cloud_function = 5 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * @deprecated + */ + protected $is_cloud_function = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $uri + * Required. The fulfillment URI for receiving POST requests. + * It must use https protocol. + * @type string $username + * Optional. The user name for HTTP Basic authentication. + * @type string $password + * Optional. The password for HTTP Basic authentication. + * @type array|\Google\Protobuf\Internal\MapField $request_headers + * Optional. The HTTP request headers to send together with fulfillment + * requests. + * @type bool $is_cloud_function + * Optional. Indicates if generic web service is created through Cloud + * Functions integration. Defaults to false. + * is_cloud_function is deprecated. Cloud functions can be configured by + * its uri as a regular web service now. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Fulfillment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The fulfillment URI for receiving POST requests. + * It must use https protocol. + * + * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * Required. The fulfillment URI for receiving POST requests. + * It must use https protocol. + * + * Generated from protobuf field string uri = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + + /** + * Optional. The user name for HTTP Basic authentication. + * + * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getUsername() + { + return $this->username; + } + + /** + * Optional. The user name for HTTP Basic authentication. + * + * Generated from protobuf field string username = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setUsername($var) + { + GPBUtil::checkString($var, True); + $this->username = $var; + + return $this; + } + + /** + * Optional. The password for HTTP Basic authentication. + * + * Generated from protobuf field string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPassword() + { + return $this->password; + } + + /** + * Optional. The password for HTTP Basic authentication. + * + * Generated from protobuf field string password = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPassword($var) + { + GPBUtil::checkString($var, True); + $this->password = $var; + + return $this; + } + + /** + * Optional. The HTTP request headers to send together with fulfillment + * requests. + * + * Generated from protobuf field map request_headers = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getRequestHeaders() + { + return $this->request_headers; + } + + /** + * Optional. The HTTP request headers to send together with fulfillment + * requests. + * + * Generated from protobuf field map request_headers = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setRequestHeaders($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->request_headers = $arr; + + return $this; + } + + /** + * Optional. Indicates if generic web service is created through Cloud + * Functions integration. Defaults to false. + * is_cloud_function is deprecated. Cloud functions can be configured by + * its uri as a regular web service now. + * + * Generated from protobuf field bool is_cloud_function = 5 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * @return bool + * @deprecated + */ + public function getIsCloudFunction() + { + if ($this->is_cloud_function !== false) { + @trigger_error('is_cloud_function is deprecated.', E_USER_DEPRECATED); + } + return $this->is_cloud_function; + } + + /** + * Optional. Indicates if generic web service is created through Cloud + * Functions integration. Defaults to false. + * is_cloud_function is deprecated. Cloud functions can be configured by + * its uri as a regular web service now. + * + * Generated from protobuf field bool is_cloud_function = 5 [deprecated = true, (.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + * @deprecated + */ + public function setIsCloudFunction($var) + { + @trigger_error('is_cloud_function is deprecated.', E_USER_DEPRECATED); + GPBUtil::checkBool($var); + $this->is_cloud_function = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/GcsDestination.php b/vendor/google/cloud-dialogflow/src/V2/GcsDestination.php new file mode 100644 index 0000000..db741ca --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GcsDestination.php @@ -0,0 +1,83 @@ +google.cloud.dialogflow.v2.GcsDestination + */ +class GcsDestination extends \Google\Protobuf\Internal\Message +{ + /** + * The Google Cloud Storage URIs for the output. A URI is of the + * form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. The requesting + * user must have "write-permission" to the bucket. + * + * Generated from protobuf field string uri = 1; + */ + protected $uri = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $uri + * The Google Cloud Storage URIs for the output. A URI is of the + * form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. The requesting + * user must have "write-permission" to the bucket. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Gcs::initOnce(); + parent::__construct($data); + } + + /** + * The Google Cloud Storage URIs for the output. A URI is of the + * form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. The requesting + * user must have "write-permission" to the bucket. + * + * Generated from protobuf field string uri = 1; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * The Google Cloud Storage URIs for the output. A URI is of the + * form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. The requesting + * user must have "write-permission" to the bucket. + * + * Generated from protobuf field string uri = 1; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GcsSources.php b/vendor/google/cloud-dialogflow/src/V2/GcsSources.php new file mode 100644 index 0000000..f4a6871 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GcsSources.php @@ -0,0 +1,75 @@ +google.cloud.dialogflow.v2.GcsSources + */ +class GcsSources extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Google Cloud Storage URIs for the inputs. A URI is of the form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. + * + * Generated from protobuf field repeated string uris = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $uris; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $uris + * Required. Google Cloud Storage URIs for the inputs. A URI is of the form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Gcs::initOnce(); + parent::__construct($data); + } + + /** + * Required. Google Cloud Storage URIs for the inputs. A URI is of the form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. + * + * Generated from protobuf field repeated string uris = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getUris() + { + return $this->uris; + } + + /** + * Required. Google Cloud Storage URIs for the inputs. A URI is of the form: + * `gs://bucket/object-prefix-or-name` + * Whether a prefix or name is used depends on the use case. + * + * Generated from protobuf field repeated string uris = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setUris($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->uris = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionRequest.php b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionRequest.php new file mode 100644 index 0000000..e484ae5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionRequest.php @@ -0,0 +1,281 @@ +google.cloud.dialogflow.v2.GenerateStatelessSuggestionRequest + */ +class GenerateStatelessSuggestionRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The parent resource to charge for the Suggestion's generation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. A section of ingested context information. The key is the name of + * the context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * Generated from protobuf field map context_references = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $context_references; + /** + * Optional. Context of the conversation, including transcripts. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationContext conversation_context = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $conversation_context = null; + /** + * Optional. A list of trigger events. Generator will be triggered only if + * it's trigger event is included here. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TriggerEvent trigger_events = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $trigger_events; + protected $generator_resource; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The parent resource to charge for the Suggestion's generation. + * Format: `projects//locations/`. + * @type \Google\Cloud\Dialogflow\V2\Generator $generator + * Uncreated generator. It should be a complete generator that includes all + * information about the generator. + * @type string $generator_name + * The resource name of the existing created generator. Format: + * `projects//locations//generators/` + * @type array|\Google\Protobuf\Internal\MapField $context_references + * Optional. A section of ingested context information. The key is the name of + * the context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * @type \Google\Cloud\Dialogflow\V2\ConversationContext $conversation_context + * Optional. Context of the conversation, including transcripts. + * @type array|\Google\Protobuf\Internal\RepeatedField $trigger_events + * Optional. A list of trigger events. Generator will be triggered only if + * it's trigger event is included here. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The parent resource to charge for the Suggestion's generation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The parent resource to charge for the Suggestion's generation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Uncreated generator. It should be a complete generator that includes all + * information about the generator. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 2; + * @return \Google\Cloud\Dialogflow\V2\Generator|null + */ + public function getGenerator() + { + return $this->readOneof(2); + } + + public function hasGenerator() + { + return $this->hasOneof(2); + } + + /** + * Uncreated generator. It should be a complete generator that includes all + * information about the generator. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 2; + * @param \Google\Cloud\Dialogflow\V2\Generator $var + * @return $this + */ + public function setGenerator($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Generator::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The resource name of the existing created generator. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string generator_name = 3; + * @return string + */ + public function getGeneratorName() + { + return $this->readOneof(3); + } + + public function hasGeneratorName() + { + return $this->hasOneof(3); + } + + /** + * The resource name of the existing created generator. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string generator_name = 3; + * @param string $var + * @return $this + */ + public function setGeneratorName($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Optional. A section of ingested context information. The key is the name of + * the context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * Generated from protobuf field map context_references = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getContextReferences() + { + return $this->context_references; + } + + /** + * Optional. A section of ingested context information. The key is the name of + * the context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * Generated from protobuf field map context_references = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setContextReferences($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference::class); + $this->context_references = $arr; + + return $this; + } + + /** + * Optional. Context of the conversation, including transcripts. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationContext conversation_context = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\ConversationContext|null + */ + public function getConversationContext() + { + return $this->conversation_context; + } + + public function hasConversationContext() + { + return isset($this->conversation_context); + } + + public function clearConversationContext() + { + unset($this->conversation_context); + } + + /** + * Optional. Context of the conversation, including transcripts. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationContext conversation_context = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\ConversationContext $var + * @return $this + */ + public function setConversationContext($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationContext::class); + $this->conversation_context = $var; + + return $this; + } + + /** + * Optional. A list of trigger events. Generator will be triggered only if + * it's trigger event is included here. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TriggerEvent trigger_events = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getTriggerEvents() + { + return $this->trigger_events; + } + + /** + * Optional. A list of trigger events. Generator will be triggered only if + * it's trigger event is included here. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TriggerEvent trigger_events = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setTriggerEvents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\TriggerEvent::class); + $this->trigger_events = $arr; + + return $this; + } + + /** + * @return string + */ + public function getGeneratorResource() + { + return $this->whichOneof("generator_resource"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionResponse.php b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionResponse.php new file mode 100644 index 0000000..304f86b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSuggestionResponse.php @@ -0,0 +1,78 @@ +google.cloud.dialogflow.v2.GenerateStatelessSuggestionResponse + */ +class GenerateStatelessSuggestionResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Generated suggestion for a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion generator_suggestion = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $generator_suggestion = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\GeneratorSuggestion $generator_suggestion + * Required. Generated suggestion for a conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. Generated suggestion for a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion generator_suggestion = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\GeneratorSuggestion|null + */ + public function getGeneratorSuggestion() + { + return $this->generator_suggestion; + } + + public function hasGeneratorSuggestion() + { + return isset($this->generator_suggestion); + } + + public function clearGeneratorSuggestion() + { + unset($this->generator_suggestion); + } + + /** + * Required. Generated suggestion for a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion generator_suggestion = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\GeneratorSuggestion $var + * @return $this + */ + public function setGeneratorSuggestion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GeneratorSuggestion::class); + $this->generator_suggestion = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest.php b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest.php new file mode 100644 index 0000000..444878d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest.php @@ -0,0 +1,222 @@ +google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest + */ +class GenerateStatelessSummaryRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation to suggest a summary for. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation stateless_conversation = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $stateless_conversation = null; + /** + * Required. A ConversationProfile containing information required for Summary + * generation. + * Required fields: {language_code, security_settings} + * Optional fields: {agent_assistant_config} + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_profile = null; + /** + * Optional. The name of the latest conversation message used as context for + * generating a Summary. If empty, the latest message of the conversation will + * be used. The format is specific to the user and the names of the messages + * provided. + * + * Generated from protobuf field string latest_message = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * + * Generated from protobuf field int32 max_context_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $max_context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryRequest\MinimalConversation $stateless_conversation + * Required. The conversation to suggest a summary for. + * @type \Google\Cloud\Dialogflow\V2\ConversationProfile $conversation_profile + * Required. A ConversationProfile containing information required for Summary + * generation. + * Required fields: {language_code, security_settings} + * Optional fields: {agent_assistant_config} + * @type string $latest_message + * Optional. The name of the latest conversation message used as context for + * generating a Summary. If empty, the latest message of the conversation will + * be used. The format is specific to the user and the names of the messages + * provided. + * @type int $max_context_size + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation to suggest a summary for. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation stateless_conversation = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryRequest\MinimalConversation|null + */ + public function getStatelessConversation() + { + return $this->stateless_conversation; + } + + public function hasStatelessConversation() + { + return isset($this->stateless_conversation); + } + + public function clearStatelessConversation() + { + unset($this->stateless_conversation); + } + + /** + * Required. The conversation to suggest a summary for. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation stateless_conversation = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryRequest\MinimalConversation $var + * @return $this + */ + public function setStatelessConversation($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryRequest\MinimalConversation::class); + $this->stateless_conversation = $var; + + return $this; + } + + /** + * Required. A ConversationProfile containing information required for Summary + * generation. + * Required fields: {language_code, security_settings} + * Optional fields: {agent_assistant_config} + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ConversationProfile|null + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + public function hasConversationProfile() + { + return isset($this->conversation_profile); + } + + public function clearConversationProfile() + { + unset($this->conversation_profile); + } + + /** + * Required. A ConversationProfile containing information required for Summary + * generation. + * Required fields: {language_code, security_settings} + * Optional fields: {agent_assistant_config} + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ConversationProfile $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationProfile::class); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message used as context for + * generating a Summary. If empty, the latest message of the conversation will + * be used. The format is specific to the user and the names of the messages + * provided. + * + * Generated from protobuf field string latest_message = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message used as context for + * generating a Summary. If empty, the latest message of the conversation will + * be used. The format is specific to the user and the names of the messages + * provided. + * + * Generated from protobuf field string latest_message = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * + * Generated from protobuf field int32 max_context_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getMaxContextSize() + { + return $this->max_context_size; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * + * Generated from protobuf field int32 max_context_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setMaxContextSize($var) + { + GPBUtil::checkInt32($var); + $this->max_context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest/MinimalConversation.php b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest/MinimalConversation.php new file mode 100644 index 0000000..a7b39d4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryRequest/MinimalConversation.php @@ -0,0 +1,123 @@ +google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.MinimalConversation + */ +class MinimalConversation extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The messages that the Summary will be generated from. It is + * expected that this message content is already redacted and does not + * contain any PII. Required fields: {content, language_code, participant, + * participant_role} Optional fields: {send_time} If send_time is not + * provided, then the messages must be provided in chronological order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Message messages = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + private $messages; + /** + * Required. The parent resource to charge for the Summary's generation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Message>|\Google\Protobuf\Internal\RepeatedField $messages + * Required. The messages that the Summary will be generated from. It is + * expected that this message content is already redacted and does not + * contain any PII. Required fields: {content, language_code, participant, + * participant_role} Optional fields: {send_time} If send_time is not + * provided, then the messages must be provided in chronological order. + * @type string $parent + * Required. The parent resource to charge for the Summary's generation. + * Format: `projects//locations/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The messages that the Summary will be generated from. It is + * expected that this message content is already redacted and does not + * contain any PII. Required fields: {content, language_code, participant, + * participant_role} Optional fields: {send_time} If send_time is not + * provided, then the messages must be provided in chronological order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Message messages = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMessages() + { + return $this->messages; + } + + /** + * Required. The messages that the Summary will be generated from. It is + * expected that this message content is already redacted and does not + * contain any PII. Required fields: {content, language_code, participant, + * participant_role} Optional fields: {send_time} If send_time is not + * provided, then the messages must be provided in chronological order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Message messages = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Message>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMessages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Message::class); + $this->messages = $arr; + + return $this; + } + + /** + * Required. The parent resource to charge for the Summary's generation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The parent resource to charge for the Summary's generation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse.php b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse.php new file mode 100644 index 0000000..5190f20 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse.php @@ -0,0 +1,174 @@ +google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse + */ +class GenerateStatelessSummaryResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Generated summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary summary = 1; + */ + protected $summary = null; + /** + * The name of the latest conversation message used as context for + * compiling suggestion. The format is specific to the user and the names of + * the messages provided. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [GenerateStatelessSummaryRequest.max_context_size][google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.max_context_size] + * field in the request if there weren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryResponse\Summary $summary + * Generated summary. + * @type string $latest_message + * The name of the latest conversation message used as context for + * compiling suggestion. The format is specific to the user and the names of + * the messages provided. + * @type int $context_size + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [GenerateStatelessSummaryRequest.max_context_size][google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.max_context_size] + * field in the request if there weren't that many messages in the + * conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Generated summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary summary = 1; + * @return \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryResponse\Summary|null + */ + public function getSummary() + { + return $this->summary; + } + + public function hasSummary() + { + return isset($this->summary); + } + + public function clearSummary() + { + unset($this->summary); + } + + /** + * Generated summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary summary = 1; + * @param \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryResponse\Summary $var + * @return $this + */ + public function setSummary($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryResponse\Summary::class); + $this->summary = $var; + + return $this; + } + + /** + * The name of the latest conversation message used as context for + * compiling suggestion. The format is specific to the user and the names of + * the messages provided. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used as context for + * compiling suggestion. The format is specific to the user and the names of + * the messages provided. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [GenerateStatelessSummaryRequest.max_context_size][google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.max_context_size] + * field in the request if there weren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [GenerateStatelessSummaryRequest.max_context_size][google.cloud.dialogflow.v2.GenerateStatelessSummaryRequest.max_context_size] + * field in the request if there weren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse/Summary.php b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse/Summary.php new file mode 100644 index 0000000..4fa4f68 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateStatelessSummaryResponse/Summary.php @@ -0,0 +1,148 @@ +google.cloud.dialogflow.v2.GenerateStatelessSummaryResponse.Summary + */ +class Summary extends \Google\Protobuf\Internal\Message +{ + /** + * The summary content that is concatenated into one string. + * + * Generated from protobuf field string text = 1; + */ + protected $text = ''; + /** + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * + * Generated from protobuf field map text_sections = 2; + */ + private $text_sections; + /** + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * + * Generated from protobuf field string baseline_model_version = 4; + */ + protected $baseline_model_version = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * The summary content that is concatenated into one string. + * @type array|\Google\Protobuf\Internal\MapField $text_sections + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * @type string $baseline_model_version + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * The summary content that is concatenated into one string. + * + * Generated from protobuf field string text = 1; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * The summary content that is concatenated into one string. + * + * Generated from protobuf field string text = 1; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * + * Generated from protobuf field map text_sections = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getTextSections() + { + return $this->text_sections; + } + + /** + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * + * Generated from protobuf field map text_sections = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setTextSections($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->text_sections = $arr; + + return $this; + } + + /** + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * + * Generated from protobuf field string baseline_model_version = 4; + * @return string + */ + public function getBaselineModelVersion() + { + return $this->baseline_model_version; + } + + /** + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * + * Generated from protobuf field string baseline_model_version = 4; + * @param string $var + * @return $this + */ + public function setBaselineModelVersion($var) + { + GPBUtil::checkString($var, True); + $this->baseline_model_version = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsRequest.php b/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsRequest.php new file mode 100644 index 0000000..144cea9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsRequest.php @@ -0,0 +1,183 @@ +google.cloud.dialogflow.v2.GenerateSuggestionsRequest + */ +class GenerateSuggestionsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation for which the suggestions are generated. Format: + * `projects//locations//conversations/`. + * The conversation must be created with a conversation profile which has + * generators configured in it to be able to get suggestions. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $conversation = ''; + /** + * Optional. The name of the latest conversation message for which the request + * is triggered. Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. A list of trigger events. Only generators configured in the + * conversation_profile whose trigger_event is listed here will be triggered. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TriggerEvent trigger_events = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $trigger_events; + + /** + * @param string $conversation Required. The conversation for which the suggestions are generated. Format: + * `projects//locations//conversations/`. + * + * The conversation must be created with a conversation profile which has + * generators configured in it to be able to get suggestions. Please see + * {@see ConversationsClient::conversationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GenerateSuggestionsRequest + * + * @experimental + */ + public static function build(string $conversation): self + { + return (new self()) + ->setConversation($conversation); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation + * Required. The conversation for which the suggestions are generated. Format: + * `projects//locations//conversations/`. + * The conversation must be created with a conversation profile which has + * generators configured in it to be able to get suggestions. + * @type string $latest_message + * Optional. The name of the latest conversation message for which the request + * is triggered. Format: `projects//locations//conversations//messages/`. + * @type array|\Google\Protobuf\Internal\RepeatedField $trigger_events + * Optional. A list of trigger events. Only generators configured in the + * conversation_profile whose trigger_event is listed here will be triggered. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation for which the suggestions are generated. Format: + * `projects//locations//conversations/`. + * The conversation must be created with a conversation profile which has + * generators configured in it to be able to get suggestions. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getConversation() + { + return $this->conversation; + } + + /** + * Required. The conversation for which the suggestions are generated. Format: + * `projects//locations//conversations/`. + * The conversation must be created with a conversation profile which has + * generators configured in it to be able to get suggestions. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkString($var, True); + $this->conversation = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message for which the request + * is triggered. Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message for which the request + * is triggered. Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. A list of trigger events. Only generators configured in the + * conversation_profile whose trigger_event is listed here will be triggered. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TriggerEvent trigger_events = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getTriggerEvents() + { + return $this->trigger_events; + } + + /** + * Optional. A list of trigger events. Only generators configured in the + * conversation_profile whose trigger_event is listed here will be triggered. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TriggerEvent trigger_events = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setTriggerEvents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\TriggerEvent::class); + $this->trigger_events = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse.php b/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse.php new file mode 100644 index 0000000..3905734 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse.php @@ -0,0 +1,114 @@ +google.cloud.dialogflow.v2.GenerateSuggestionsResponse + */ +class GenerateSuggestionsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The answers generated for the conversation based on context. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer generator_suggestion_answers = 1; + */ + private $generator_suggestion_answers; + /** + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + */ + protected $latest_message = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse\GeneratorSuggestionAnswer>|\Google\Protobuf\Internal\RepeatedField $generator_suggestion_answers + * The answers generated for the conversation based on context. + * @type string $latest_message + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The answers generated for the conversation based on context. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer generator_suggestion_answers = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getGeneratorSuggestionAnswers() + { + return $this->generator_suggestion_answers; + } + + /** + * The answers generated for the conversation based on context. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer generator_suggestion_answers = 1; + * @param array<\Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse\GeneratorSuggestionAnswer>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setGeneratorSuggestionAnswers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse\GeneratorSuggestionAnswer::class); + $this->generator_suggestion_answers = $arr; + + return $this; + } + + /** + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse/GeneratorSuggestionAnswer.php b/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse/GeneratorSuggestionAnswer.php new file mode 100644 index 0000000..c8826da --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GenerateSuggestionsResponse/GeneratorSuggestionAnswer.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.GenerateSuggestionsResponse.GeneratorSuggestionAnswer + */ +class GeneratorSuggestionAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * Suggestion details. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion generator_suggestion = 1; + */ + protected $generator_suggestion = null; + /** + * The name of the generator used to generate this suggestion. Format: + * `projects//locations//generators/`. + * + * Generated from protobuf field string source_generator = 2; + */ + protected $source_generator = ''; + /** + * Answer record that uniquely identifies the suggestion. This can be used + * to provide suggestion feedback. + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\GeneratorSuggestion $generator_suggestion + * Suggestion details. + * @type string $source_generator + * The name of the generator used to generate this suggestion. Format: + * `projects//locations//generators/`. + * @type string $answer_record + * Answer record that uniquely identifies the suggestion. This can be used + * to provide suggestion feedback. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Suggestion details. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion generator_suggestion = 1; + * @return \Google\Cloud\Dialogflow\V2\GeneratorSuggestion|null + */ + public function getGeneratorSuggestion() + { + return $this->generator_suggestion; + } + + public function hasGeneratorSuggestion() + { + return isset($this->generator_suggestion); + } + + public function clearGeneratorSuggestion() + { + unset($this->generator_suggestion); + } + + /** + * Suggestion details. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GeneratorSuggestion generator_suggestion = 1; + * @param \Google\Cloud\Dialogflow\V2\GeneratorSuggestion $var + * @return $this + */ + public function setGeneratorSuggestion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GeneratorSuggestion::class); + $this->generator_suggestion = $var; + + return $this; + } + + /** + * The name of the generator used to generate this suggestion. Format: + * `projects//locations//generators/`. + * + * Generated from protobuf field string source_generator = 2; + * @return string + */ + public function getSourceGenerator() + { + return $this->source_generator; + } + + /** + * The name of the generator used to generate this suggestion. Format: + * `projects//locations//generators/`. + * + * Generated from protobuf field string source_generator = 2; + * @param string $var + * @return $this + */ + public function setSourceGenerator($var) + { + GPBUtil::checkString($var, True); + $this->source_generator = $var; + + return $this; + } + + /** + * Answer record that uniquely identifies the suggestion. This can be used + * to provide suggestion feedback. + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * Answer record that uniquely identifies the suggestion. This can be used + * to provide suggestion feedback. + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Generator.php b/vendor/google/cloud-dialogflow/src/V2/Generator.php new file mode 100644 index 0000000..f487a35 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Generator.php @@ -0,0 +1,404 @@ +google.cloud.dialogflow.v2.Generator + */ +class Generator extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Identifier. The resource name of the generator. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER, (.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $name = ''; + /** + * Optional. Human readable description of the generator. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Optional. Inference parameters for this generator. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InferenceParameter inference_parameter = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $inference_parameter = null; + /** + * Optional. The trigger event of the generator. It defines when the generator + * is triggered in a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TriggerEvent trigger_event = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $trigger_event = 0; + /** + * Output only. Creation time of this generator. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. Update time of this generator. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $update_time = null; + protected $context; + protected $foundation_model; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. Identifier. The resource name of the generator. Format: + * `projects//locations//generators/` + * @type string $description + * Optional. Human readable description of the generator. + * @type \Google\Cloud\Dialogflow\V2\FreeFormContext $free_form_context + * Input of free from generator to LLM. + * @type \Google\Cloud\Dialogflow\V2\SummarizationContext $summarization_context + * Input of prebuilt Summarization feature. + * @type \Google\Cloud\Dialogflow\V2\InferenceParameter $inference_parameter + * Optional. Inference parameters for this generator. + * @type int $trigger_event + * Optional. The trigger event of the generator. It defines when the generator + * is triggered in a conversation. + * @type string $published_model + * Optional. The published Large Language Model name. + * * To use the latest model version, specify the model name without version + * number. Example: `text-bison` + * * To use a stable model version, specify the version number as well. + * Example: `text-bison@002`. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. Creation time of this generator. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. Update time of this generator. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Identifier. The resource name of the generator. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER, (.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. Identifier. The resource name of the generator. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = IDENTIFIER, (.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. Human readable description of the generator. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. Human readable description of the generator. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Input of free from generator to LLM. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.FreeFormContext free_form_context = 11; + * @return \Google\Cloud\Dialogflow\V2\FreeFormContext|null + */ + public function getFreeFormContext() + { + return $this->readOneof(11); + } + + public function hasFreeFormContext() + { + return $this->hasOneof(11); + } + + /** + * Input of free from generator to LLM. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.FreeFormContext free_form_context = 11; + * @param \Google\Cloud\Dialogflow\V2\FreeFormContext $var + * @return $this + */ + public function setFreeFormContext($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\FreeFormContext::class); + $this->writeOneof(11, $var); + + return $this; + } + + /** + * Input of prebuilt Summarization feature. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationContext summarization_context = 13; + * @return \Google\Cloud\Dialogflow\V2\SummarizationContext|null + */ + public function getSummarizationContext() + { + return $this->readOneof(13); + } + + public function hasSummarizationContext() + { + return $this->hasOneof(13); + } + + /** + * Input of prebuilt Summarization feature. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationContext summarization_context = 13; + * @param \Google\Cloud\Dialogflow\V2\SummarizationContext $var + * @return $this + */ + public function setSummarizationContext($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SummarizationContext::class); + $this->writeOneof(13, $var); + + return $this; + } + + /** + * Optional. Inference parameters for this generator. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InferenceParameter inference_parameter = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\InferenceParameter|null + */ + public function getInferenceParameter() + { + return $this->inference_parameter; + } + + public function hasInferenceParameter() + { + return isset($this->inference_parameter); + } + + public function clearInferenceParameter() + { + unset($this->inference_parameter); + } + + /** + * Optional. Inference parameters for this generator. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InferenceParameter inference_parameter = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\InferenceParameter $var + * @return $this + */ + public function setInferenceParameter($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InferenceParameter::class); + $this->inference_parameter = $var; + + return $this; + } + + /** + * Optional. The trigger event of the generator. It defines when the generator + * is triggered in a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TriggerEvent trigger_event = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getTriggerEvent() + { + return $this->trigger_event; + } + + /** + * Optional. The trigger event of the generator. It defines when the generator + * is triggered in a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TriggerEvent trigger_event = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setTriggerEvent($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\TriggerEvent::class); + $this->trigger_event = $var; + + return $this; + } + + /** + * Optional. The published Large Language Model name. + * * To use the latest model version, specify the model name without version + * number. Example: `text-bison` + * * To use a stable model version, specify the version number as well. + * Example: `text-bison@002`. + * + * Generated from protobuf field string published_model = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPublishedModel() + { + return $this->readOneof(15); + } + + public function hasPublishedModel() + { + return $this->hasOneof(15); + } + + /** + * Optional. The published Large Language Model name. + * * To use the latest model version, specify the model name without version + * number. Example: `text-bison` + * * To use a stable model version, specify the version number as well. + * Example: `text-bison@002`. + * + * Generated from protobuf field string published_model = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPublishedModel($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(15, $var); + + return $this; + } + + /** + * Output only. Creation time of this generator. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. Creation time of this generator. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. Update time of this generator. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. Update time of this generator. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 9 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * @return string + */ + public function getContext() + { + return $this->whichOneof("context"); + } + + /** + * @return string + */ + public function getFoundationModel() + { + return $this->whichOneof("foundation_model"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GeneratorSuggestion.php b/vendor/google/cloud-dialogflow/src/V2/GeneratorSuggestion.php new file mode 100644 index 0000000..2f2aa6c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GeneratorSuggestion.php @@ -0,0 +1,108 @@ +google.cloud.dialogflow.v2.GeneratorSuggestion + */ +class GeneratorSuggestion extends \Google\Protobuf\Internal\Message +{ + protected $suggestion; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\FreeFormSuggestion $free_form_suggestion + * Optional. Free form suggestion. + * @type \Google\Cloud\Dialogflow\V2\SummarySuggestion $summary_suggestion + * Optional. Suggested summary. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Free form suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.FreeFormSuggestion free_form_suggestion = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\FreeFormSuggestion|null + */ + public function getFreeFormSuggestion() + { + return $this->readOneof(1); + } + + public function hasFreeFormSuggestion() + { + return $this->hasOneof(1); + } + + /** + * Optional. Free form suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.FreeFormSuggestion free_form_suggestion = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\FreeFormSuggestion $var + * @return $this + */ + public function setFreeFormSuggestion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\FreeFormSuggestion::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Optional. Suggested summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarySuggestion summary_suggestion = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\SummarySuggestion|null + */ + public function getSummarySuggestion() + { + return $this->readOneof(2); + } + + public function hasSummarySuggestion() + { + return $this->hasOneof(2); + } + + /** + * Optional. Suggested summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarySuggestion summary_suggestion = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\SummarySuggestion $var + * @return $this + */ + public function setSummarySuggestion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SummarySuggestion::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * @return string + */ + public function getSuggestion() + { + return $this->whichOneof("suggestion"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetAgentRequest.php new file mode 100644 index 0000000..44a4bc8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetAgentRequest.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.GetAgentRequest + */ +class GetAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent to fetch is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + + /** + * @param string $parent Required. The project that the agent to fetch is associated with. + * Format: `projects/`. Please see + * {@see AgentsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetAgentRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent to fetch is associated with. + * Format: `projects/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent to fetch is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent to fetch is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetContextRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetContextRequest.php new file mode 100644 index 0000000..a41566f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetContextRequest.php @@ -0,0 +1,107 @@ +google.cloud.dialogflow.v2.GetContextRequest + */ +class GetContextRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the context. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the context. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see ContextsClient::contextName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetContextRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the context. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the context. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the context. Format: + * `projects//agent/sessions//contexts/` + * or `projects//agent/environments//users//sessions//contexts/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetConversationDatasetRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetConversationDatasetRequest.php new file mode 100644 index 0000000..73859a7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetConversationDatasetRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.GetConversationDatasetRequest + */ +class GetConversationDatasetRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation dataset to retrieve. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The conversation dataset to retrieve. Format: + * `projects//locations//conversationDatasets/` + * Please see {@see ConversationDatasetsClient::conversationDatasetName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetConversationDatasetRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation dataset to retrieve. Format: + * `projects//locations//conversationDatasets/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation dataset to retrieve. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation dataset to retrieve. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetConversationModelEvaluationRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetConversationModelEvaluationRequest.php new file mode 100644 index 0000000..0f8ebc8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetConversationModelEvaluationRequest.php @@ -0,0 +1,91 @@ +google.cloud.dialogflow.v2.GetConversationModelEvaluationRequest + */ +class GetConversationModelEvaluationRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model evaluation resource name. Format: + * `projects//conversationModels//evaluations/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + + /** + * @param string $name Required. The conversation model evaluation resource name. Format: + * `projects//conversationModels//evaluations/` + * + * @return \Google\Cloud\Dialogflow\V2\GetConversationModelEvaluationRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation model evaluation resource name. Format: + * `projects//conversationModels//evaluations/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model evaluation resource name. Format: + * `projects//conversationModels//evaluations/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation model evaluation resource name. Format: + * `projects//conversationModels//evaluations/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetConversationModelRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetConversationModelRequest.php new file mode 100644 index 0000000..675d2da --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetConversationModelRequest.php @@ -0,0 +1,86 @@ +google.cloud.dialogflow.v2.GetConversationModelRequest + */ +class GetConversationModelRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model to retrieve. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + + /** + * @param string $name Required. The conversation model to retrieve. Format: + * `projects//conversationModels/` + * + * @return \Google\Cloud\Dialogflow\V2\GetConversationModelRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation model to retrieve. Format: + * `projects//conversationModels/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model to retrieve. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation model to retrieve. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetConversationProfileRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetConversationProfileRequest.php new file mode 100644 index 0000000..4670cd3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetConversationProfileRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.GetConversationProfileRequest + */ +class GetConversationProfileRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The resource name of the conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The resource name of the conversation profile. + * Format: `projects//locations//conversationProfiles/`. Please see + * {@see ConversationProfilesClient::conversationProfileName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetConversationProfileRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The resource name of the conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The resource name of the conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The resource name of the conversation profile. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetConversationRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetConversationRequest.php new file mode 100644 index 0000000..7046ac4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetConversationRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.GetConversationRequest + */ +class GetConversationRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the conversation. Format: + * `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the conversation. Format: + * `projects//locations//conversations/`. Please see + * {@see ConversationsClient::conversationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetConversationRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the conversation. Format: + * `projects//locations//conversations/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the conversation. Format: + * `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the conversation. Format: + * `projects//locations//conversations/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetDocumentRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetDocumentRequest.php new file mode 100644 index 0000000..283f734 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetDocumentRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.GetDocumentRequest + */ +class GetDocumentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the document to retrieve. + * Format `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the document to retrieve. + * Format `projects//locations//knowledgeBases//documents/`. Please see + * {@see DocumentsClient::documentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetDocumentRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the document to retrieve. + * Format `projects//locations//knowledgeBases//documents/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the document to retrieve. + * Format `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the document to retrieve. + * Format `projects//locations//knowledgeBases//documents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetEncryptionSpecRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetEncryptionSpecRequest.php new file mode 100644 index 0000000..df230e6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetEncryptionSpecRequest.php @@ -0,0 +1,81 @@ +google.cloud.dialogflow.v2.GetEncryptionSpecRequest + */ +class GetEncryptionSpecRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the encryption spec resource to get. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the encryption spec resource to get. Please see + * {@see EncryptionSpecServiceClient::encryptionSpecName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetEncryptionSpecRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the encryption spec resource to get. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EncryptionSpec::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the encryption spec resource to get. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the encryption spec resource to get. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetEntityTypeRequest.php new file mode 100644 index 0000000..18edb8c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetEntityTypeRequest.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.GetEntityTypeRequest + */ +class GetEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the entity type. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + + /** + * @param string $name Required. The name of the entity type. + * Format: `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetEntityTypeRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * @param string $name Required. The name of the entity type. + * Format: `projects//agent/entityTypes/`. Please see + * {@see EntityTypesClient::entityTypeName()} for help formatting this field. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\GetEntityTypeRequest + * + * @experimental + */ + public static function buildFromNameLanguageCode(string $name, string $languageCode): self + { + return (new self()) + ->setName($name) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the entity type. + * Format: `projects//agent/entityTypes/`. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the entity type. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the entity type. + * Format: `projects//agent/entityTypes/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetEnvironmentHistoryRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetEnvironmentHistoryRequest.php new file mode 100644 index 0000000..8df0e18 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetEnvironmentHistoryRequest.php @@ -0,0 +1,160 @@ +google.cloud.dialogflow.v2.GetEnvironmentHistoryRequest + */ +class GetEnvironmentHistoryRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the environment to retrieve history for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the environment to retrieve history for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the environment to retrieve history for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the environment to retrieve history for. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetEnvironmentRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetEnvironmentRequest.php new file mode 100644 index 0000000..286b2cd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetEnvironmentRequest.php @@ -0,0 +1,88 @@ +google.cloud.dialogflow.v2.GetEnvironmentRequest + */ +class GetEnvironmentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the environment. + * Supported formats: + * - `projects//agent/environments/` + * - `projects//locations//agent/environments/` + * The environment ID for the default environment is `-`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetFulfillmentRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetFulfillmentRequest.php new file mode 100644 index 0000000..fa37a60 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetFulfillmentRequest.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.GetFulfillmentRequest + */ +class GetFulfillmentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the fulfillment. + * Format: `projects//agent/fulfillment`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the fulfillment. + * Format: `projects//agent/fulfillment`. Please see + * {@see FulfillmentsClient::fulfillmentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetFulfillmentRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the fulfillment. + * Format: `projects//agent/fulfillment`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Fulfillment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the fulfillment. + * Format: `projects//agent/fulfillment`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the fulfillment. + * Format: `projects//agent/fulfillment`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetGeneratorRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetGeneratorRequest.php new file mode 100644 index 0000000..3109cc7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetGeneratorRequest.php @@ -0,0 +1,86 @@ +google.cloud.dialogflow.v2.GetGeneratorRequest + */ +class GetGeneratorRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The generator resource name to retrieve. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The generator resource name to retrieve. Format: + * `projects//locations//generators/` + * Please see {@see GeneratorsClient::generatorName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetGeneratorRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The generator resource name to retrieve. Format: + * `projects//locations//generators/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. The generator resource name to retrieve. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The generator resource name to retrieve. Format: + * `projects//locations//generators/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetIntentRequest.php new file mode 100644 index 0000000..6767222 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetIntentRequest.php @@ -0,0 +1,192 @@ +google.cloud.dialogflow.v2.GetIntentRequest + */ +class GetIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $intent_view = 0; + + /** + * @param string $name Required. The name of the intent. + * Format: `projects//agent/intents/`. Please see + * {@see IntentsClient::intentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetIntentRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * @param string $name Required. The name of the intent. + * Format: `projects//agent/intents/`. Please see + * {@see IntentsClient::intentName()} for help formatting this field. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\GetIntentRequest + * + * @experimental + */ + public static function buildFromNameLanguageCode(string $name, string $languageCode): self + { + return (new self()) + ->setName($name) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the intent. + * Format: `projects//agent/intents/`. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type int $intent_view + * Optional. The resource view to apply to the returned intent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getIntentView() + { + return $this->intent_view; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setIntentView($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\IntentView::class); + $this->intent_view = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetKnowledgeBaseRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetKnowledgeBaseRequest.php new file mode 100644 index 0000000..94d7eda --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetKnowledgeBaseRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.GetKnowledgeBaseRequest + */ +class GetKnowledgeBaseRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the knowledge base to retrieve. + * Format `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the knowledge base to retrieve. + * Format `projects//locations//knowledgeBases/`. Please see + * {@see KnowledgeBasesClient::knowledgeBaseName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetKnowledgeBaseRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the knowledge base to retrieve. + * Format `projects//locations//knowledgeBases/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the knowledge base to retrieve. + * Format `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the knowledge base to retrieve. + * Format `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetParticipantRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetParticipantRequest.php new file mode 100644 index 0000000..b9ab9c6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetParticipantRequest.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.GetParticipantRequest + */ +class GetParticipantRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant. Format: + * `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the participant. Format: + * `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetParticipantRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the participant. Format: + * `projects//locations//conversations//participants/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant. Format: + * `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the participant. Format: + * `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetSessionEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetSessionEntityTypeRequest.php new file mode 100644 index 0000000..bcf3bf0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetSessionEntityTypeRequest.php @@ -0,0 +1,112 @@ +google.cloud.dialogflow.v2.GetSessionEntityTypeRequest + */ +class GetSessionEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the session entity type. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the session entity type. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see SessionEntityTypesClient::sessionEntityTypeName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetSessionEntityTypeRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the session entity type. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the session entity type. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the session entity type. Format: + * `projects//agent/sessions//entityTypes/` or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetValidationResultRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetValidationResultRequest.php new file mode 100644 index 0000000..67ee298 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetValidationResultRequest.php @@ -0,0 +1,122 @@ +google.cloud.dialogflow.v2.GetValidationResultRequest + */ +class GetValidationResultRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The language for which you want a validation result. If not + * specified, the agent's default language is used. [Many + * languages](https://cloud.google.com/dialogflow/docs/reference/language) + * are supported. Note: languages must be enabled in the agent before they can + * be used. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent is associated with. + * Format: `projects/`. + * @type string $language_code + * Optional. The language for which you want a validation result. If not + * specified, the agent's default language is used. [Many + * languages](https://cloud.google.com/dialogflow/docs/reference/language) + * are supported. Note: languages must be enabled in the agent before they can + * be used. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The language for which you want a validation result. If not + * specified, the agent's default language is used. [Many + * languages](https://cloud.google.com/dialogflow/docs/reference/language) + * are supported. Note: languages must be enabled in the agent before they can + * be used. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language for which you want a validation result. If not + * specified, the agent's default language is used. [Many + * languages](https://cloud.google.com/dialogflow/docs/reference/language) + * are supported. Note: languages must be enabled in the agent before they can + * be used. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/GetVersionRequest.php b/vendor/google/cloud-dialogflow/src/V2/GetVersionRequest.php new file mode 100644 index 0000000..19dad18 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/GetVersionRequest.php @@ -0,0 +1,103 @@ +google.cloud.dialogflow.v2.GetVersionRequest + */ +class GetVersionRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + + /** + * @param string $name Required. The name of the version. + * Supported formats: + * + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * Please see {@see VersionsClient::versionName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\GetVersionRequest + * + * @experimental + */ + public static function build(string $name): self + { + return (new self()) + ->setName($name); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig.php new file mode 100644 index 0000000..3a0c766 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig.php @@ -0,0 +1,217 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig + */ +class HumanAgentAssistantConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Pub/Sub topic on which to publish new agent assistant events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig notification_config = 2; + */ + protected $notification_config = null; + /** + * Configuration for agent assistance of human agent participant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig human_agent_suggestion_config = 3; + */ + protected $human_agent_suggestion_config = null; + /** + * Configuration for agent assistance of end user participant. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig end_user_suggestion_config = 4; + */ + protected $end_user_suggestion_config = null; + /** + * Configuration for message analysis. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig message_analysis_config = 5; + */ + protected $message_analysis_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\NotificationConfig $notification_config + * Pub/Sub topic on which to publish new agent assistant events. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig $human_agent_suggestion_config + * Configuration for agent assistance of human agent participant. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig $end_user_suggestion_config + * Configuration for agent assistance of end user participant. + * Currently, this feature is not general available, please contact Google + * to get access. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\MessageAnalysisConfig $message_analysis_config + * Configuration for message analysis. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Pub/Sub topic on which to publish new agent assistant events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig notification_config = 2; + * @return \Google\Cloud\Dialogflow\V2\NotificationConfig|null + */ + public function getNotificationConfig() + { + return $this->notification_config; + } + + public function hasNotificationConfig() + { + return isset($this->notification_config); + } + + public function clearNotificationConfig() + { + unset($this->notification_config); + } + + /** + * Pub/Sub topic on which to publish new agent assistant events. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig notification_config = 2; + * @param \Google\Cloud\Dialogflow\V2\NotificationConfig $var + * @return $this + */ + public function setNotificationConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\NotificationConfig::class); + $this->notification_config = $var; + + return $this; + } + + /** + * Configuration for agent assistance of human agent participant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig human_agent_suggestion_config = 3; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig|null + */ + public function getHumanAgentSuggestionConfig() + { + return $this->human_agent_suggestion_config; + } + + public function hasHumanAgentSuggestionConfig() + { + return isset($this->human_agent_suggestion_config); + } + + public function clearHumanAgentSuggestionConfig() + { + unset($this->human_agent_suggestion_config); + } + + /** + * Configuration for agent assistance of human agent participant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig human_agent_suggestion_config = 3; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig $var + * @return $this + */ + public function setHumanAgentSuggestionConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig::class); + $this->human_agent_suggestion_config = $var; + + return $this; + } + + /** + * Configuration for agent assistance of end user participant. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig end_user_suggestion_config = 4; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig|null + */ + public function getEndUserSuggestionConfig() + { + return $this->end_user_suggestion_config; + } + + public function hasEndUserSuggestionConfig() + { + return isset($this->end_user_suggestion_config); + } + + public function clearEndUserSuggestionConfig() + { + unset($this->end_user_suggestion_config); + } + + /** + * Configuration for agent assistance of end user participant. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig end_user_suggestion_config = 4; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig $var + * @return $this + */ + public function setEndUserSuggestionConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionConfig::class); + $this->end_user_suggestion_config = $var; + + return $this; + } + + /** + * Configuration for message analysis. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig message_analysis_config = 5; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\MessageAnalysisConfig|null + */ + public function getMessageAnalysisConfig() + { + return $this->message_analysis_config; + } + + public function hasMessageAnalysisConfig() + { + return isset($this->message_analysis_config); + } + + public function clearMessageAnalysisConfig() + { + unset($this->message_analysis_config); + } + + /** + * Configuration for message analysis. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig message_analysis_config = 5; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\MessageAnalysisConfig $var + * @return $this + */ + public function setMessageAnalysisConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\MessageAnalysisConfig::class); + $this->message_analysis_config = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationModelConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationModelConfig.php new file mode 100644 index 0000000..f5f5ad8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationModelConfig.php @@ -0,0 +1,136 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig + */ +class ConversationModelConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Conversation model resource name. Format: `projects//conversationModels/`. + * + * Generated from protobuf field string model = 1 [(.google.api.resource_reference) = { + */ + protected $model = ''; + /** + * Version of current baseline model. It will be ignored if + * [model][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.model] + * is set. Valid versions are: + * Article Suggestion baseline model: + * - 0.9 + * - 1.0 (default) + * Summarization baseline model: + * - 1.0 + * + * Generated from protobuf field string baseline_model_version = 8; + */ + protected $baseline_model_version = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $model + * Conversation model resource name. Format: `projects//conversationModels/`. + * @type string $baseline_model_version + * Version of current baseline model. It will be ignored if + * [model][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.model] + * is set. Valid versions are: + * Article Suggestion baseline model: + * - 0.9 + * - 1.0 (default) + * Summarization baseline model: + * - 1.0 + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Conversation model resource name. Format: `projects//conversationModels/`. + * + * Generated from protobuf field string model = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getModel() + { + return $this->model; + } + + /** + * Conversation model resource name. Format: `projects//conversationModels/`. + * + * Generated from protobuf field string model = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setModel($var) + { + GPBUtil::checkString($var, True); + $this->model = $var; + + return $this; + } + + /** + * Version of current baseline model. It will be ignored if + * [model][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.model] + * is set. Valid versions are: + * Article Suggestion baseline model: + * - 0.9 + * - 1.0 (default) + * Summarization baseline model: + * - 1.0 + * + * Generated from protobuf field string baseline_model_version = 8; + * @return string + */ + public function getBaselineModelVersion() + { + return $this->baseline_model_version; + } + + /** + * Version of current baseline model. It will be ignored if + * [model][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig.model] + * is set. Valid versions are: + * Article Suggestion baseline model: + * - 0.9 + * - 1.0 (default) + * Summarization baseline model: + * - 1.0 + * + * Generated from protobuf field string baseline_model_version = 8; + * @param string $var + * @return $this + */ + public function setBaselineModelVersion($var) + { + GPBUtil::checkString($var, True); + $this->baseline_model_version = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationProcessConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationProcessConfig.php new file mode 100644 index 0000000..34837b0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/ConversationProcessConfig.php @@ -0,0 +1,72 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig + */ +class ConversationProcessConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Number of recent non-small-talk sentences to use as context for article + * and FAQ suggestion + * + * Generated from protobuf field int32 recent_sentences_count = 2; + */ + protected $recent_sentences_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $recent_sentences_count + * Number of recent non-small-talk sentences to use as context for article + * and FAQ suggestion + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Number of recent non-small-talk sentences to use as context for article + * and FAQ suggestion + * + * Generated from protobuf field int32 recent_sentences_count = 2; + * @return int + */ + public function getRecentSentencesCount() + { + return $this->recent_sentences_count; + } + + /** + * Number of recent non-small-talk sentences to use as context for article + * and FAQ suggestion + * + * Generated from protobuf field int32 recent_sentences_count = 2; + * @param int $var + * @return $this + */ + public function setRecentSentencesCount($var) + { + GPBUtil::checkInt32($var); + $this->recent_sentences_count = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/MessageAnalysisConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/MessageAnalysisConfig.php new file mode 100644 index 0000000..6effbb7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/MessageAnalysisConfig.php @@ -0,0 +1,194 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.MessageAnalysisConfig + */ +class MessageAnalysisConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Enable entity extraction in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field bool enable_entity_extraction = 2; + */ + protected $enable_entity_extraction = false; + /** + * Enable sentiment analysis in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. Sentiment analysis inspects user input + * and identifies the prevailing subjective opinion, especially to determine + * a user's attitude as positive, negative, or neutral: + * https://cloud.google.com/natural-language/docs/basics#sentiment_analysis + * For + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] + * method, result will be in + * [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.message]. + * For + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * method, result will be in + * [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.AnalyzeContentResponse.message] + * For + * [Conversations.ListMessages][google.cloud.dialogflow.v2.Conversations.ListMessages] + * method, result will be in + * [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2.ListMessagesResponse.messages] + * If Pub/Sub notification is configured, result will be in + * [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2.ConversationEvent.new_message_payload]. + * + * Generated from protobuf field bool enable_sentiment_analysis = 3; + */ + protected $enable_sentiment_analysis = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $enable_entity_extraction + * Enable entity extraction in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. + * Currently, this feature is not general available, please contact Google + * to get access. + * @type bool $enable_sentiment_analysis + * Enable sentiment analysis in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. Sentiment analysis inspects user input + * and identifies the prevailing subjective opinion, especially to determine + * a user's attitude as positive, negative, or neutral: + * https://cloud.google.com/natural-language/docs/basics#sentiment_analysis + * For + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] + * method, result will be in + * [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.message]. + * For + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * method, result will be in + * [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.AnalyzeContentResponse.message] + * For + * [Conversations.ListMessages][google.cloud.dialogflow.v2.Conversations.ListMessages] + * method, result will be in + * [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2.ListMessagesResponse.messages] + * If Pub/Sub notification is configured, result will be in + * [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2.ConversationEvent.new_message_payload]. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Enable entity extraction in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field bool enable_entity_extraction = 2; + * @return bool + */ + public function getEnableEntityExtraction() + { + return $this->enable_entity_extraction; + } + + /** + * Enable entity extraction in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. + * Currently, this feature is not general available, please contact Google + * to get access. + * + * Generated from protobuf field bool enable_entity_extraction = 2; + * @param bool $var + * @return $this + */ + public function setEnableEntityExtraction($var) + { + GPBUtil::checkBool($var); + $this->enable_entity_extraction = $var; + + return $this; + } + + /** + * Enable sentiment analysis in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. Sentiment analysis inspects user input + * and identifies the prevailing subjective opinion, especially to determine + * a user's attitude as positive, negative, or neutral: + * https://cloud.google.com/natural-language/docs/basics#sentiment_analysis + * For + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] + * method, result will be in + * [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.message]. + * For + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * method, result will be in + * [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.AnalyzeContentResponse.message] + * For + * [Conversations.ListMessages][google.cloud.dialogflow.v2.Conversations.ListMessages] + * method, result will be in + * [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2.ListMessagesResponse.messages] + * If Pub/Sub notification is configured, result will be in + * [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2.ConversationEvent.new_message_payload]. + * + * Generated from protobuf field bool enable_sentiment_analysis = 3; + * @return bool + */ + public function getEnableSentimentAnalysis() + { + return $this->enable_sentiment_analysis; + } + + /** + * Enable sentiment analysis in conversation messages on [agent assist + * stage](https://cloud.google.com/dialogflow/priv/docs/contact-center/basics#stages). + * If unspecified, defaults to false. Sentiment analysis inspects user input + * and identifies the prevailing subjective opinion, especially to determine + * a user's attitude as positive, negative, or neutral: + * https://cloud.google.com/natural-language/docs/basics#sentiment_analysis + * For + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent] + * method, result will be in + * [StreamingAnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.message]. + * For + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * method, result will be in + * [AnalyzeContentResponse.message.SentimentAnalysisResult][google.cloud.dialogflow.v2.AnalyzeContentResponse.message] + * For + * [Conversations.ListMessages][google.cloud.dialogflow.v2.Conversations.ListMessages] + * method, result will be in + * [ListMessagesResponse.messages.SentimentAnalysisResult][google.cloud.dialogflow.v2.ListMessagesResponse.messages] + * If Pub/Sub notification is configured, result will be in + * [ConversationEvent.new_message_payload.SentimentAnalysisResult][google.cloud.dialogflow.v2.ConversationEvent.new_message_payload]. + * + * Generated from protobuf field bool enable_sentiment_analysis = 3; + * @param bool $var + * @return $this + */ + public function setEnableSentimentAnalysis($var) + { + GPBUtil::checkBool($var); + $this->enable_sentiment_analysis = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionConfig.php new file mode 100644 index 0000000..35137a8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionConfig.php @@ -0,0 +1,234 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig + */ +class SuggestionConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Configuration of different suggestion features. One feature can have only + * one config. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig feature_configs = 2; + */ + private $feature_configs; + /** + * If `group_suggestion_responses` is false, and there are multiple + * `feature_configs` in `event based suggestion` or + * StreamingAnalyzeContent, we will try to deliver suggestions to customers + * as soon as we get new suggestion. Different type of suggestions based on + * the same context will be in separate Pub/Sub event or + * `StreamingAnalyzeContentResponse`. + * If `group_suggestion_responses` set to true. All the suggestions to the + * same participant based on the same context will be grouped into a single + * Pub/Sub event or StreamingAnalyzeContentResponse. + * + * Generated from protobuf field bool group_suggestion_responses = 3; + */ + protected $group_suggestion_responses = false; + /** + * Optional. List of various generator resource names used in the + * conversation profile. + * + * Generated from protobuf field repeated string generators = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + private $generators; + /** + * Optional. When disable_high_latency_features_sync_delivery is true and + * using the AnalyzeContent API, we will not deliver the responses from high + * latency features in the API response. The + * human_agent_assistant_config.notification_config must be configured and + * enable_event_based_suggestion must be set to true to receive the + * responses from high latency features in Pub/Sub. High latency feature(s): + * KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool disable_high_latency_features_sync_delivery = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $disable_high_latency_features_sync_delivery = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig>|\Google\Protobuf\Internal\RepeatedField $feature_configs + * Configuration of different suggestion features. One feature can have only + * one config. + * @type bool $group_suggestion_responses + * If `group_suggestion_responses` is false, and there are multiple + * `feature_configs` in `event based suggestion` or + * StreamingAnalyzeContent, we will try to deliver suggestions to customers + * as soon as we get new suggestion. Different type of suggestions based on + * the same context will be in separate Pub/Sub event or + * `StreamingAnalyzeContentResponse`. + * If `group_suggestion_responses` set to true. All the suggestions to the + * same participant based on the same context will be grouped into a single + * Pub/Sub event or StreamingAnalyzeContentResponse. + * @type array|\Google\Protobuf\Internal\RepeatedField $generators + * Optional. List of various generator resource names used in the + * conversation profile. + * @type bool $disable_high_latency_features_sync_delivery + * Optional. When disable_high_latency_features_sync_delivery is true and + * using the AnalyzeContent API, we will not deliver the responses from high + * latency features in the API response. The + * human_agent_assistant_config.notification_config must be configured and + * enable_event_based_suggestion must be set to true to receive the + * responses from high latency features in Pub/Sub. High latency feature(s): + * KNOWLEDGE_ASSIST + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Configuration of different suggestion features. One feature can have only + * one config. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig feature_configs = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFeatureConfigs() + { + return $this->feature_configs; + } + + /** + * Configuration of different suggestion features. One feature can have only + * one config. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig feature_configs = 2; + * @param array<\Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFeatureConfigs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig::class); + $this->feature_configs = $arr; + + return $this; + } + + /** + * If `group_suggestion_responses` is false, and there are multiple + * `feature_configs` in `event based suggestion` or + * StreamingAnalyzeContent, we will try to deliver suggestions to customers + * as soon as we get new suggestion. Different type of suggestions based on + * the same context will be in separate Pub/Sub event or + * `StreamingAnalyzeContentResponse`. + * If `group_suggestion_responses` set to true. All the suggestions to the + * same participant based on the same context will be grouped into a single + * Pub/Sub event or StreamingAnalyzeContentResponse. + * + * Generated from protobuf field bool group_suggestion_responses = 3; + * @return bool + */ + public function getGroupSuggestionResponses() + { + return $this->group_suggestion_responses; + } + + /** + * If `group_suggestion_responses` is false, and there are multiple + * `feature_configs` in `event based suggestion` or + * StreamingAnalyzeContent, we will try to deliver suggestions to customers + * as soon as we get new suggestion. Different type of suggestions based on + * the same context will be in separate Pub/Sub event or + * `StreamingAnalyzeContentResponse`. + * If `group_suggestion_responses` set to true. All the suggestions to the + * same participant based on the same context will be grouped into a single + * Pub/Sub event or StreamingAnalyzeContentResponse. + * + * Generated from protobuf field bool group_suggestion_responses = 3; + * @param bool $var + * @return $this + */ + public function setGroupSuggestionResponses($var) + { + GPBUtil::checkBool($var); + $this->group_suggestion_responses = $var; + + return $this; + } + + /** + * Optional. List of various generator resource names used in the + * conversation profile. + * + * Generated from protobuf field repeated string generators = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getGenerators() + { + return $this->generators; + } + + /** + * Optional. List of various generator resource names used in the + * conversation profile. + * + * Generated from protobuf field repeated string generators = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setGenerators($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->generators = $arr; + + return $this; + } + + /** + * Optional. When disable_high_latency_features_sync_delivery is true and + * using the AnalyzeContent API, we will not deliver the responses from high + * latency features in the API response. The + * human_agent_assistant_config.notification_config must be configured and + * enable_event_based_suggestion must be set to true to receive the + * responses from high latency features in Pub/Sub. High latency feature(s): + * KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool disable_high_latency_features_sync_delivery = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getDisableHighLatencyFeaturesSyncDelivery() + { + return $this->disable_high_latency_features_sync_delivery; + } + + /** + * Optional. When disable_high_latency_features_sync_delivery is true and + * using the AnalyzeContent API, we will not deliver the responses from high + * latency features in the API response. The + * human_agent_assistant_config.notification_config must be configured and + * enable_event_based_suggestion must be set to true to receive the + * responses from high latency features in Pub/Sub. High latency feature(s): + * KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool disable_high_latency_features_sync_delivery = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setDisableHighLatencyFeaturesSyncDelivery($var) + { + GPBUtil::checkBool($var); + $this->disable_high_latency_features_sync_delivery = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionFeatureConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionFeatureConfig.php new file mode 100644 index 0000000..b710055 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionFeatureConfig.php @@ -0,0 +1,464 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig + */ +class SuggestionFeatureConfig extends \Google\Protobuf\Internal\Message +{ + /** + * The suggestion feature. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature suggestion_feature = 5; + */ + protected $suggestion_feature = null; + /** + * Automatically iterates all participants and tries to compile + * suggestions. + * Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, + * KNOWLEDGE_ASSIST. + * + * Generated from protobuf field bool enable_event_based_suggestion = 3; + */ + protected $enable_event_based_suggestion = false; + /** + * Optional. Disable the logging of search queries sent by human agents. It + * can prevent those queries from being stored at answer records. + * Supported features: KNOWLEDGE_SEARCH. + * + * Generated from protobuf field bool disable_agent_query_logging = 14 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $disable_agent_query_logging = false; + /** + * Optional. Enable query suggestion even if we can't find its answer. + * By default, queries are suggested only if we find its answer. + * Supported features: KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool enable_query_suggestion_when_no_answer = 15 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_query_suggestion_when_no_answer = false; + /** + * Optional. Enable including conversation context during query answer + * generation. Supported features: KNOWLEDGE_SEARCH. + * + * Generated from protobuf field bool enable_conversation_augmented_query = 16 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_conversation_augmented_query = false; + /** + * Optional. Enable query suggestion only. + * Supported features: KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool enable_query_suggestion_only = 17 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_query_suggestion_only = false; + /** + * Settings of suggestion trigger. + * Currently, only ARTICLE_SUGGESTION and FAQ will use this field. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings suggestion_trigger_settings = 10; + */ + protected $suggestion_trigger_settings = null; + /** + * Configs of query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig query_config = 6; + */ + protected $query_config = null; + /** + * Configs of custom conversation model. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig conversation_model_config = 7; + */ + protected $conversation_model_config = null; + /** + * Configs for processing conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig conversation_process_config = 8; + */ + protected $conversation_process_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\SuggestionFeature $suggestion_feature + * The suggestion feature. + * @type bool $enable_event_based_suggestion + * Automatically iterates all participants and tries to compile + * suggestions. + * Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, + * KNOWLEDGE_ASSIST. + * @type bool $disable_agent_query_logging + * Optional. Disable the logging of search queries sent by human agents. It + * can prevent those queries from being stored at answer records. + * Supported features: KNOWLEDGE_SEARCH. + * @type bool $enable_query_suggestion_when_no_answer + * Optional. Enable query suggestion even if we can't find its answer. + * By default, queries are suggested only if we find its answer. + * Supported features: KNOWLEDGE_ASSIST + * @type bool $enable_conversation_augmented_query + * Optional. Enable including conversation context during query answer + * generation. Supported features: KNOWLEDGE_SEARCH. + * @type bool $enable_query_suggestion_only + * Optional. Enable query suggestion only. + * Supported features: KNOWLEDGE_ASSIST + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionTriggerSettings $suggestion_trigger_settings + * Settings of suggestion trigger. + * Currently, only ARTICLE_SUGGESTION and FAQ will use this field. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig $query_config + * Configs of query. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationModelConfig $conversation_model_config + * Configs of custom conversation model. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationProcessConfig $conversation_process_config + * Configs for processing conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * The suggestion feature. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature suggestion_feature = 5; + * @return \Google\Cloud\Dialogflow\V2\SuggestionFeature|null + */ + public function getSuggestionFeature() + { + return $this->suggestion_feature; + } + + public function hasSuggestionFeature() + { + return isset($this->suggestion_feature); + } + + public function clearSuggestionFeature() + { + unset($this->suggestion_feature); + } + + /** + * The suggestion feature. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature suggestion_feature = 5; + * @param \Google\Cloud\Dialogflow\V2\SuggestionFeature $var + * @return $this + */ + public function setSuggestionFeature($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestionFeature::class); + $this->suggestion_feature = $var; + + return $this; + } + + /** + * Automatically iterates all participants and tries to compile + * suggestions. + * Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, + * KNOWLEDGE_ASSIST. + * + * Generated from protobuf field bool enable_event_based_suggestion = 3; + * @return bool + */ + public function getEnableEventBasedSuggestion() + { + return $this->enable_event_based_suggestion; + } + + /** + * Automatically iterates all participants and tries to compile + * suggestions. + * Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, + * KNOWLEDGE_ASSIST. + * + * Generated from protobuf field bool enable_event_based_suggestion = 3; + * @param bool $var + * @return $this + */ + public function setEnableEventBasedSuggestion($var) + { + GPBUtil::checkBool($var); + $this->enable_event_based_suggestion = $var; + + return $this; + } + + /** + * Optional. Disable the logging of search queries sent by human agents. It + * can prevent those queries from being stored at answer records. + * Supported features: KNOWLEDGE_SEARCH. + * + * Generated from protobuf field bool disable_agent_query_logging = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getDisableAgentQueryLogging() + { + return $this->disable_agent_query_logging; + } + + /** + * Optional. Disable the logging of search queries sent by human agents. It + * can prevent those queries from being stored at answer records. + * Supported features: KNOWLEDGE_SEARCH. + * + * Generated from protobuf field bool disable_agent_query_logging = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setDisableAgentQueryLogging($var) + { + GPBUtil::checkBool($var); + $this->disable_agent_query_logging = $var; + + return $this; + } + + /** + * Optional. Enable query suggestion even if we can't find its answer. + * By default, queries are suggested only if we find its answer. + * Supported features: KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool enable_query_suggestion_when_no_answer = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableQuerySuggestionWhenNoAnswer() + { + return $this->enable_query_suggestion_when_no_answer; + } + + /** + * Optional. Enable query suggestion even if we can't find its answer. + * By default, queries are suggested only if we find its answer. + * Supported features: KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool enable_query_suggestion_when_no_answer = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableQuerySuggestionWhenNoAnswer($var) + { + GPBUtil::checkBool($var); + $this->enable_query_suggestion_when_no_answer = $var; + + return $this; + } + + /** + * Optional. Enable including conversation context during query answer + * generation. Supported features: KNOWLEDGE_SEARCH. + * + * Generated from protobuf field bool enable_conversation_augmented_query = 16 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableConversationAugmentedQuery() + { + return $this->enable_conversation_augmented_query; + } + + /** + * Optional. Enable including conversation context during query answer + * generation. Supported features: KNOWLEDGE_SEARCH. + * + * Generated from protobuf field bool enable_conversation_augmented_query = 16 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableConversationAugmentedQuery($var) + { + GPBUtil::checkBool($var); + $this->enable_conversation_augmented_query = $var; + + return $this; + } + + /** + * Optional. Enable query suggestion only. + * Supported features: KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool enable_query_suggestion_only = 17 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableQuerySuggestionOnly() + { + return $this->enable_query_suggestion_only; + } + + /** + * Optional. Enable query suggestion only. + * Supported features: KNOWLEDGE_ASSIST + * + * Generated from protobuf field bool enable_query_suggestion_only = 17 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableQuerySuggestionOnly($var) + { + GPBUtil::checkBool($var); + $this->enable_query_suggestion_only = $var; + + return $this; + } + + /** + * Settings of suggestion trigger. + * Currently, only ARTICLE_SUGGESTION and FAQ will use this field. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings suggestion_trigger_settings = 10; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionTriggerSettings|null + */ + public function getSuggestionTriggerSettings() + { + return $this->suggestion_trigger_settings; + } + + public function hasSuggestionTriggerSettings() + { + return isset($this->suggestion_trigger_settings); + } + + public function clearSuggestionTriggerSettings() + { + unset($this->suggestion_trigger_settings); + } + + /** + * Settings of suggestion trigger. + * Currently, only ARTICLE_SUGGESTION and FAQ will use this field. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings suggestion_trigger_settings = 10; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionTriggerSettings $var + * @return $this + */ + public function setSuggestionTriggerSettings($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionTriggerSettings::class); + $this->suggestion_trigger_settings = $var; + + return $this; + } + + /** + * Configs of query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig query_config = 6; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig|null + */ + public function getQueryConfig() + { + return $this->query_config; + } + + public function hasQueryConfig() + { + return isset($this->query_config); + } + + public function clearQueryConfig() + { + unset($this->query_config); + } + + /** + * Configs of query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig query_config = 6; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig $var + * @return $this + */ + public function setQueryConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig::class); + $this->query_config = $var; + + return $this; + } + + /** + * Configs of custom conversation model. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig conversation_model_config = 7; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationModelConfig|null + */ + public function getConversationModelConfig() + { + return $this->conversation_model_config; + } + + public function hasConversationModelConfig() + { + return isset($this->conversation_model_config); + } + + public function clearConversationModelConfig() + { + unset($this->conversation_model_config); + } + + /** + * Configs of custom conversation model. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationModelConfig conversation_model_config = 7; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationModelConfig $var + * @return $this + */ + public function setConversationModelConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationModelConfig::class); + $this->conversation_model_config = $var; + + return $this; + } + + /** + * Configs for processing conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig conversation_process_config = 8; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationProcessConfig|null + */ + public function getConversationProcessConfig() + { + return $this->conversation_process_config; + } + + public function hasConversationProcessConfig() + { + return isset($this->conversation_process_config); + } + + public function clearConversationProcessConfig() + { + unset($this->conversation_process_config); + } + + /** + * Configs for processing conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.ConversationProcessConfig conversation_process_config = 8; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationProcessConfig $var + * @return $this + */ + public function setConversationProcessConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\ConversationProcessConfig::class); + $this->conversation_process_config = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig.php new file mode 100644 index 0000000..02e9b2b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig.php @@ -0,0 +1,410 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig + */ +class SuggestionQueryConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Maximum number of results to return. Currently, if unset, defaults to 10. + * And the max number is 20. + * + * Generated from protobuf field int32 max_results = 4; + */ + protected $max_results = 0; + /** + * Confidence threshold of query result. + * Agent Assist gives each suggestion a score in the range [0.0, 1.0], based + * on the relevance between the suggestion and the current conversation + * context. A score of 0.0 has no relevance, while a score of 1.0 has high + * relevance. Only suggestions with a score greater than or equal to the + * value of this field are included in the results. + * For a baseline model (the default), the recommended value is in the range + * [0.05, 0.1]. + * For a custom model, there is no recommended value. Tune this value by + * starting from a very low value and slowly increasing until you have + * desired results. + * If this field is not set, it defaults to 0.0, which means that all + * suggestions are returned. + * Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, + * KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION. + * + * Generated from protobuf field float confidence_threshold = 5; + */ + protected $confidence_threshold = 0.0; + /** + * Determines how recent conversation context is filtered when generating + * suggestions. If unspecified, no messages will be dropped. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings context_filter_settings = 7; + */ + protected $context_filter_settings = null; + /** + * Optional. The customized sections chosen to return when requesting a + * summary of a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections sections = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $sections = null; + /** + * Optional. The number of recent messages to include in the context. + * Supported features: KNOWLEDGE_ASSIST. + * + * Generated from protobuf field int32 context_size = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $context_size = 0; + protected $query_source; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\KnowledgeBaseQuerySource $knowledge_base_query_source + * Query from knowledgebase. It is used by: + * ARTICLE_SUGGESTION, FAQ. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DocumentQuerySource $document_query_source + * Query from knowledge base document. It is used by: + * SMART_REPLY, SMART_COMPOSE. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource $dialogflow_query_source + * Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST. + * @type int $max_results + * Maximum number of results to return. Currently, if unset, defaults to 10. + * And the max number is 20. + * @type float $confidence_threshold + * Confidence threshold of query result. + * Agent Assist gives each suggestion a score in the range [0.0, 1.0], based + * on the relevance between the suggestion and the current conversation + * context. A score of 0.0 has no relevance, while a score of 1.0 has high + * relevance. Only suggestions with a score greater than or equal to the + * value of this field are included in the results. + * For a baseline model (the default), the recommended value is in the range + * [0.05, 0.1]. + * For a custom model, there is no recommended value. Tune this value by + * starting from a very low value and slowly increasing until you have + * desired results. + * If this field is not set, it defaults to 0.0, which means that all + * suggestions are returned. + * Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, + * KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\ContextFilterSettings $context_filter_settings + * Determines how recent conversation context is filtered when generating + * suggestions. If unspecified, no messages will be dropped. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\Sections $sections + * Optional. The customized sections chosen to return when requesting a + * summary of a conversation. + * @type int $context_size + * Optional. The number of recent messages to include in the context. + * Supported features: KNOWLEDGE_ASSIST. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Query from knowledgebase. It is used by: + * ARTICLE_SUGGESTION, FAQ. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource knowledge_base_query_source = 1; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\KnowledgeBaseQuerySource|null + */ + public function getKnowledgeBaseQuerySource() + { + return $this->readOneof(1); + } + + public function hasKnowledgeBaseQuerySource() + { + return $this->hasOneof(1); + } + + /** + * Query from knowledgebase. It is used by: + * ARTICLE_SUGGESTION, FAQ. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource knowledge_base_query_source = 1; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\KnowledgeBaseQuerySource $var + * @return $this + */ + public function setKnowledgeBaseQuerySource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\KnowledgeBaseQuerySource::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Query from knowledge base document. It is used by: + * SMART_REPLY, SMART_COMPOSE. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource document_query_source = 2; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DocumentQuerySource|null + */ + public function getDocumentQuerySource() + { + return $this->readOneof(2); + } + + public function hasDocumentQuerySource() + { + return $this->hasOneof(2); + } + + /** + * Query from knowledge base document. It is used by: + * SMART_REPLY, SMART_COMPOSE. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource document_query_source = 2; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DocumentQuerySource $var + * @return $this + */ + public function setDocumentQuerySource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DocumentQuerySource::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource dialogflow_query_source = 3; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource|null + */ + public function getDialogflowQuerySource() + { + return $this->readOneof(3); + } + + public function hasDialogflowQuerySource() + { + return $this->hasOneof(3); + } + + /** + * Query from Dialogflow agent. It is used by DIALOGFLOW_ASSIST. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource dialogflow_query_source = 3; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource $var + * @return $this + */ + public function setDialogflowQuerySource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Maximum number of results to return. Currently, if unset, defaults to 10. + * And the max number is 20. + * + * Generated from protobuf field int32 max_results = 4; + * @return int + */ + public function getMaxResults() + { + return $this->max_results; + } + + /** + * Maximum number of results to return. Currently, if unset, defaults to 10. + * And the max number is 20. + * + * Generated from protobuf field int32 max_results = 4; + * @param int $var + * @return $this + */ + public function setMaxResults($var) + { + GPBUtil::checkInt32($var); + $this->max_results = $var; + + return $this; + } + + /** + * Confidence threshold of query result. + * Agent Assist gives each suggestion a score in the range [0.0, 1.0], based + * on the relevance between the suggestion and the current conversation + * context. A score of 0.0 has no relevance, while a score of 1.0 has high + * relevance. Only suggestions with a score greater than or equal to the + * value of this field are included in the results. + * For a baseline model (the default), the recommended value is in the range + * [0.05, 0.1]. + * For a custom model, there is no recommended value. Tune this value by + * starting from a very low value and slowly increasing until you have + * desired results. + * If this field is not set, it defaults to 0.0, which means that all + * suggestions are returned. + * Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, + * KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION. + * + * Generated from protobuf field float confidence_threshold = 5; + * @return float + */ + public function getConfidenceThreshold() + { + return $this->confidence_threshold; + } + + /** + * Confidence threshold of query result. + * Agent Assist gives each suggestion a score in the range [0.0, 1.0], based + * on the relevance between the suggestion and the current conversation + * context. A score of 0.0 has no relevance, while a score of 1.0 has high + * relevance. Only suggestions with a score greater than or equal to the + * value of this field are included in the results. + * For a baseline model (the default), the recommended value is in the range + * [0.05, 0.1]. + * For a custom model, there is no recommended value. Tune this value by + * starting from a very low value and slowly increasing until you have + * desired results. + * If this field is not set, it defaults to 0.0, which means that all + * suggestions are returned. + * Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, + * KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION. + * + * Generated from protobuf field float confidence_threshold = 5; + * @param float $var + * @return $this + */ + public function setConfidenceThreshold($var) + { + GPBUtil::checkFloat($var); + $this->confidence_threshold = $var; + + return $this; + } + + /** + * Determines how recent conversation context is filtered when generating + * suggestions. If unspecified, no messages will be dropped. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings context_filter_settings = 7; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\ContextFilterSettings|null + */ + public function getContextFilterSettings() + { + return $this->context_filter_settings; + } + + public function hasContextFilterSettings() + { + return isset($this->context_filter_settings); + } + + public function clearContextFilterSettings() + { + unset($this->context_filter_settings); + } + + /** + * Determines how recent conversation context is filtered when generating + * suggestions. If unspecified, no messages will be dropped. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings context_filter_settings = 7; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\ContextFilterSettings $var + * @return $this + */ + public function setContextFilterSettings($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\ContextFilterSettings::class); + $this->context_filter_settings = $var; + + return $this; + } + + /** + * Optional. The customized sections chosen to return when requesting a + * summary of a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections sections = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\Sections|null + */ + public function getSections() + { + return $this->sections; + } + + public function hasSections() + { + return isset($this->sections); + } + + public function clearSections() + { + unset($this->sections); + } + + /** + * Optional. The customized sections chosen to return when requesting a + * summary of a conversation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections sections = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\Sections $var + * @return $this + */ + public function setSections($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\Sections::class); + $this->sections = $var; + + return $this; + } + + /** + * Optional. The number of recent messages to include in the context. + * Supported features: KNOWLEDGE_ASSIST. + * + * Generated from protobuf field int32 context_size = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Optional. The number of recent messages to include in the context. + * Supported features: KNOWLEDGE_ASSIST. + * + * Generated from protobuf field int32 context_size = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + + /** + * @return string + */ + public function getQuerySource() + { + return $this->whichOneof("query_source"); + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/ContextFilterSettings.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/ContextFilterSettings.php new file mode 100644 index 0000000..a34da89 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/ContextFilterSettings.php @@ -0,0 +1,141 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.ContextFilterSettings + */ +class ContextFilterSettings extends \Google\Protobuf\Internal\Message +{ + /** + * If set to true, the last message from virtual agent (hand off message) + * and the message before it (trigger message of hand off) are dropped. + * + * Generated from protobuf field bool drop_handoff_messages = 1; + */ + protected $drop_handoff_messages = false; + /** + * If set to true, all messages from virtual agent are dropped. + * + * Generated from protobuf field bool drop_virtual_agent_messages = 2; + */ + protected $drop_virtual_agent_messages = false; + /** + * If set to true, all messages from ivr stage are dropped. + * + * Generated from protobuf field bool drop_ivr_messages = 3; + */ + protected $drop_ivr_messages = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $drop_handoff_messages + * If set to true, the last message from virtual agent (hand off message) + * and the message before it (trigger message of hand off) are dropped. + * @type bool $drop_virtual_agent_messages + * If set to true, all messages from virtual agent are dropped. + * @type bool $drop_ivr_messages + * If set to true, all messages from ivr stage are dropped. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * If set to true, the last message from virtual agent (hand off message) + * and the message before it (trigger message of hand off) are dropped. + * + * Generated from protobuf field bool drop_handoff_messages = 1; + * @return bool + */ + public function getDropHandoffMessages() + { + return $this->drop_handoff_messages; + } + + /** + * If set to true, the last message from virtual agent (hand off message) + * and the message before it (trigger message of hand off) are dropped. + * + * Generated from protobuf field bool drop_handoff_messages = 1; + * @param bool $var + * @return $this + */ + public function setDropHandoffMessages($var) + { + GPBUtil::checkBool($var); + $this->drop_handoff_messages = $var; + + return $this; + } + + /** + * If set to true, all messages from virtual agent are dropped. + * + * Generated from protobuf field bool drop_virtual_agent_messages = 2; + * @return bool + */ + public function getDropVirtualAgentMessages() + { + return $this->drop_virtual_agent_messages; + } + + /** + * If set to true, all messages from virtual agent are dropped. + * + * Generated from protobuf field bool drop_virtual_agent_messages = 2; + * @param bool $var + * @return $this + */ + public function setDropVirtualAgentMessages($var) + { + GPBUtil::checkBool($var); + $this->drop_virtual_agent_messages = $var; + + return $this; + } + + /** + * If set to true, all messages from ivr stage are dropped. + * + * Generated from protobuf field bool drop_ivr_messages = 3; + * @return bool + */ + public function getDropIvrMessages() + { + return $this->drop_ivr_messages; + } + + /** + * If set to true, all messages from ivr stage are dropped. + * + * Generated from protobuf field bool drop_ivr_messages = 3; + * @param bool $var + * @return $this + */ + public function setDropIvrMessages($var) + { + GPBUtil::checkBool($var); + $this->drop_ivr_messages = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource.php new file mode 100644 index 0000000..80eef85 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource.php @@ -0,0 +1,125 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource + */ +class DialogflowQuerySource extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of a Dialogflow virtual agent used for end user side + * intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in + * the same Dialogflow project. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $agent = ''; + /** + * Optional. The Dialogflow assist configuration for human agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig human_agent_side_config = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $human_agent_side_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $agent + * Required. The name of a Dialogflow virtual agent used for end user side + * intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in + * the same Dialogflow project. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource\HumanAgentSideConfig $human_agent_side_config + * Optional. The Dialogflow assist configuration for human agent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of a Dialogflow virtual agent used for end user side + * intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in + * the same Dialogflow project. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getAgent() + { + return $this->agent; + } + + /** + * Required. The name of a Dialogflow virtual agent used for end user side + * intent detection and suggestion. Format: `projects//locations//agent`. When multiple agents are allowed in + * the same Dialogflow project. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAgent($var) + { + GPBUtil::checkString($var, True); + $this->agent = $var; + + return $this; + } + + /** + * Optional. The Dialogflow assist configuration for human agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig human_agent_side_config = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource\HumanAgentSideConfig|null + */ + public function getHumanAgentSideConfig() + { + return $this->human_agent_side_config; + } + + public function hasHumanAgentSideConfig() + { + return isset($this->human_agent_side_config); + } + + public function clearHumanAgentSideConfig() + { + unset($this->human_agent_side_config); + } + + /** + * Optional. The Dialogflow assist configuration for human agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig human_agent_side_config = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource\HumanAgentSideConfig $var + * @return $this + */ + public function setHumanAgentSideConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\DialogflowQuerySource\HumanAgentSideConfig::class); + $this->human_agent_side_config = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource/HumanAgentSideConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource/HumanAgentSideConfig.php new file mode 100644 index 0000000..9ba40ab --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DialogflowQuerySource/HumanAgentSideConfig.php @@ -0,0 +1,77 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DialogflowQuerySource.HumanAgentSideConfig + */ +class HumanAgentSideConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The name of a dialogflow virtual agent used for intent + * detection and suggestion triggered by human agent. + * Format: `projects//locations//agent`. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $agent = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $agent + * Optional. The name of a dialogflow virtual agent used for intent + * detection and suggestion triggered by human agent. + * Format: `projects//locations//agent`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The name of a dialogflow virtual agent used for intent + * detection and suggestion triggered by human agent. + * Format: `projects//locations//agent`. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getAgent() + { + return $this->agent; + } + + /** + * Optional. The name of a dialogflow virtual agent used for intent + * detection and suggestion triggered by human agent. + * Format: `projects//locations//agent`. + * + * Generated from protobuf field string agent = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAgent($var) + { + GPBUtil::checkString($var, True); + $this->agent = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DocumentQuerySource.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DocumentQuerySource.php new file mode 100644 index 0000000..9de540b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/DocumentQuerySource.php @@ -0,0 +1,81 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.DocumentQuerySource + */ +class DocumentQuerySource extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Knowledge documents to query from. Format: + * `projects//locations//knowledgeBases//documents/`. + * Currently, at most 5 documents are supported. + * + * Generated from protobuf field repeated string documents = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + private $documents; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $documents + * Required. Knowledge documents to query from. Format: + * `projects//locations//knowledgeBases//documents/`. + * Currently, at most 5 documents are supported. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. Knowledge documents to query from. Format: + * `projects//locations//knowledgeBases//documents/`. + * Currently, at most 5 documents are supported. + * + * Generated from protobuf field repeated string documents = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDocuments() + { + return $this->documents; + } + + /** + * Required. Knowledge documents to query from. Format: + * `projects//locations//knowledgeBases//documents/`. + * Currently, at most 5 documents are supported. + * + * Generated from protobuf field repeated string documents = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDocuments($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->documents = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/KnowledgeBaseQuerySource.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/KnowledgeBaseQuerySource.php new file mode 100644 index 0000000..20e3bb4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/KnowledgeBaseQuerySource.php @@ -0,0 +1,81 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.KnowledgeBaseQuerySource + */ +class KnowledgeBaseQuerySource extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Knowledge bases to query. Format: + * `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge + * bases are supported. + * + * Generated from protobuf field repeated string knowledge_bases = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + private $knowledge_bases; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $knowledge_bases + * Required. Knowledge bases to query. Format: + * `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge + * bases are supported. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. Knowledge bases to query. Format: + * `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge + * bases are supported. + * + * Generated from protobuf field repeated string knowledge_bases = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getKnowledgeBases() + { + return $this->knowledge_bases; + } + + /** + * Required. Knowledge bases to query. Format: + * `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge + * bases are supported. + * + * Generated from protobuf field repeated string knowledge_bases = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setKnowledgeBases($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->knowledge_bases = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections.php new file mode 100644 index 0000000..6259164 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections.php @@ -0,0 +1,83 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections + */ +class Sections extends \Google\Protobuf\Internal\Message +{ + /** + * The selected sections chosen to return when requesting a summary of a + * conversation. A duplicate selected section will be treated as a single + * selected section. If section types are not provided, the default will + * be {SITUATION, ACTION, RESULT}. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType section_types = 1; + */ + private $section_types; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $section_types + * The selected sections chosen to return when requesting a summary of a + * conversation. A duplicate selected section will be treated as a single + * selected section. If section types are not provided, the default will + * be {SITUATION, ACTION, RESULT}. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * The selected sections chosen to return when requesting a summary of a + * conversation. A duplicate selected section will be treated as a single + * selected section. If section types are not provided, the default will + * be {SITUATION, ACTION, RESULT}. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType section_types = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSectionTypes() + { + return $this->section_types; + } + + /** + * The selected sections chosen to return when requesting a summary of a + * conversation. A duplicate selected section will be treated as a single + * selected section. If section types are not provided, the default will + * be {SITUATION, ACTION, RESULT}. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType section_types = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSectionTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionQueryConfig\Sections\SectionType::class); + $this->section_types = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections/SectionType.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections/SectionType.php new file mode 100644 index 0000000..ee81bee --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionQueryConfig/Sections/SectionType.php @@ -0,0 +1,101 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionQueryConfig.Sections.SectionType + */ +class SectionType +{ + /** + * Undefined section type, does not return anything. + * + * Generated from protobuf enum SECTION_TYPE_UNSPECIFIED = 0; + */ + const SECTION_TYPE_UNSPECIFIED = 0; + /** + * What the customer needs help with or has question about. + * Section name: "situation". + * + * Generated from protobuf enum SITUATION = 1; + */ + const SITUATION = 1; + /** + * What the agent does to help the customer. + * Section name: "action". + * + * Generated from protobuf enum ACTION = 2; + */ + const ACTION = 2; + /** + * Result of the customer service. A single word describing the result + * of the conversation. + * Section name: "resolution". + * + * Generated from protobuf enum RESOLUTION = 3; + */ + const RESOLUTION = 3; + /** + * Reason for cancellation if the customer requests for a cancellation. + * "N/A" otherwise. + * Section name: "reason_for_cancellation". + * + * Generated from protobuf enum REASON_FOR_CANCELLATION = 4; + */ + const REASON_FOR_CANCELLATION = 4; + /** + * "Unsatisfied" or "Satisfied" depending on the customer's feelings at + * the end of the conversation. + * Section name: "customer_satisfaction". + * + * Generated from protobuf enum CUSTOMER_SATISFACTION = 5; + */ + const CUSTOMER_SATISFACTION = 5; + /** + * Key entities extracted from the conversation, such as ticket number, + * order number, dollar amount, etc. + * Section names are prefixed by "entities/". + * + * Generated from protobuf enum ENTITIES = 6; + */ + const ENTITIES = 6; + + private static $valueToName = [ + self::SECTION_TYPE_UNSPECIFIED => 'SECTION_TYPE_UNSPECIFIED', + self::SITUATION => 'SITUATION', + self::ACTION => 'ACTION', + self::RESOLUTION => 'RESOLUTION', + self::REASON_FOR_CANCELLATION => 'REASON_FOR_CANCELLATION', + self::CUSTOMER_SATISFACTION => 'CUSTOMER_SATISFACTION', + self::ENTITIES => 'ENTITIES', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionTriggerSettings.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionTriggerSettings.php new file mode 100644 index 0000000..21332d6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantConfig/SuggestionTriggerSettings.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionTriggerSettings + */ +class SuggestionTriggerSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Do not trigger if last utterance is small talk. + * + * Generated from protobuf field bool no_smalltalk = 1; + */ + protected $no_smalltalk = false; + /** + * Only trigger suggestion if participant role of last utterance is + * END_USER. + * + * Generated from protobuf field bool only_end_user = 2; + */ + protected $only_end_user = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $no_smalltalk + * Do not trigger if last utterance is small talk. + * @type bool $only_end_user + * Only trigger suggestion if participant role of last utterance is + * END_USER. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Do not trigger if last utterance is small talk. + * + * Generated from protobuf field bool no_smalltalk = 1; + * @return bool + */ + public function getNoSmalltalk() + { + return $this->no_smalltalk; + } + + /** + * Do not trigger if last utterance is small talk. + * + * Generated from protobuf field bool no_smalltalk = 1; + * @param bool $var + * @return $this + */ + public function setNoSmalltalk($var) + { + GPBUtil::checkBool($var); + $this->no_smalltalk = $var; + + return $this; + } + + /** + * Only trigger suggestion if participant role of last utterance is + * END_USER. + * + * Generated from protobuf field bool only_end_user = 2; + * @return bool + */ + public function getOnlyEndUser() + { + return $this->only_end_user; + } + + /** + * Only trigger suggestion if participant role of last utterance is + * END_USER. + * + * Generated from protobuf field bool only_end_user = 2; + * @param bool $var + * @return $this + */ + public function setOnlyEndUser($var) + { + GPBUtil::checkBool($var); + $this->only_end_user = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantEvent.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantEvent.php new file mode 100644 index 0000000..61331a7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentAssistantEvent.php @@ -0,0 +1,148 @@ +google.cloud.dialogflow.v2.HumanAgentAssistantEvent + */ +class HumanAgentAssistantEvent extends \Google\Protobuf\Internal\Message +{ + /** + * The conversation this notification refers to. + * Format: `projects//conversations/`. + * + * Generated from protobuf field string conversation = 1; + */ + protected $conversation = ''; + /** + * The participant that the suggestion is compiled for. + * Format: `projects//conversations//participants/`. It will not be set in legacy workflow. + * + * Generated from protobuf field string participant = 3; + */ + protected $participant = ''; + /** + * The suggestion results payload that this notification refers to. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult suggestion_results = 5; + */ + private $suggestion_results; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation + * The conversation this notification refers to. + * Format: `projects//conversations/`. + * @type string $participant + * The participant that the suggestion is compiled for. + * Format: `projects//conversations//participants/`. It will not be set in legacy workflow. + * @type array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $suggestion_results + * The suggestion results payload that this notification refers to. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\HumanAgentAssistantEvent::initOnce(); + parent::__construct($data); + } + + /** + * The conversation this notification refers to. + * Format: `projects//conversations/`. + * + * Generated from protobuf field string conversation = 1; + * @return string + */ + public function getConversation() + { + return $this->conversation; + } + + /** + * The conversation this notification refers to. + * Format: `projects//conversations/`. + * + * Generated from protobuf field string conversation = 1; + * @param string $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkString($var, True); + $this->conversation = $var; + + return $this; + } + + /** + * The participant that the suggestion is compiled for. + * Format: `projects//conversations//participants/`. It will not be set in legacy workflow. + * + * Generated from protobuf field string participant = 3; + * @return string + */ + public function getParticipant() + { + return $this->participant; + } + + /** + * The participant that the suggestion is compiled for. + * Format: `projects//conversations//participants/`. It will not be set in legacy workflow. + * + * Generated from protobuf field string participant = 3; + * @param string $var + * @return $this + */ + public function setParticipant($var) + { + GPBUtil::checkString($var, True); + $this->participant = $var; + + return $this; + } + + /** + * The suggestion results payload that this notification refers to. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult suggestion_results = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSuggestionResults() + { + return $this->suggestion_results; + } + + /** + * The suggestion results payload that this notification refers to. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult suggestion_results = 5; + * @param array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSuggestionResults($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SuggestionResult::class); + $this->suggestion_results = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig.php new file mode 100644 index 0000000..643f358 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig.php @@ -0,0 +1,111 @@ +google.cloud.dialogflow.v2.HumanAgentHandoffConfig + */ +class HumanAgentHandoffConfig extends \Google\Protobuf\Internal\Message +{ + protected $agent_service; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\LivePersonConfig $live_person_config + * Uses [LivePerson](https://www.liveperson.com). + * @type \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\SalesforceLiveAgentConfig $salesforce_live_agent_config + * Uses Salesforce Live Agent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Uses [LivePerson](https://www.liveperson.com). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig live_person_config = 1; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\LivePersonConfig|null + */ + public function getLivePersonConfig() + { + return $this->readOneof(1); + } + + public function hasLivePersonConfig() + { + return $this->hasOneof(1); + } + + /** + * Uses [LivePerson](https://www.liveperson.com). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig live_person_config = 1; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\LivePersonConfig $var + * @return $this + */ + public function setLivePersonConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\LivePersonConfig::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Uses Salesforce Live Agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig salesforce_live_agent_config = 2; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\SalesforceLiveAgentConfig|null + */ + public function getSalesforceLiveAgentConfig() + { + return $this->readOneof(2); + } + + public function hasSalesforceLiveAgentConfig() + { + return $this->hasOneof(2); + } + + /** + * Uses Salesforce Live Agent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig salesforce_live_agent_config = 2; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\SalesforceLiveAgentConfig $var + * @return $this + */ + public function setSalesforceLiveAgentConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentHandoffConfig\SalesforceLiveAgentConfig::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * @return string + */ + public function getAgentService() + { + return $this->whichOneof("agent_service"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/LivePersonConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/LivePersonConfig.php new file mode 100644 index 0000000..ebff67d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/LivePersonConfig.php @@ -0,0 +1,72 @@ +google.cloud.dialogflow.v2.HumanAgentHandoffConfig.LivePersonConfig + */ +class LivePersonConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Account number of the LivePerson account to connect. This is + * the account number you input at the login page. + * + * Generated from protobuf field string account_number = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $account_number = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $account_number + * Required. Account number of the LivePerson account to connect. This is + * the account number you input at the login page. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. Account number of the LivePerson account to connect. This is + * the account number you input at the login page. + * + * Generated from protobuf field string account_number = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getAccountNumber() + { + return $this->account_number; + } + + /** + * Required. Account number of the LivePerson account to connect. This is + * the account number you input at the login page. + * + * Generated from protobuf field string account_number = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setAccountNumber($var) + { + GPBUtil::checkString($var, True); + $this->account_number = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/SalesforceLiveAgentConfig.php b/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/SalesforceLiveAgentConfig.php new file mode 100644 index 0000000..6e130be --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/HumanAgentHandoffConfig/SalesforceLiveAgentConfig.php @@ -0,0 +1,182 @@ +google.cloud.dialogflow.v2.HumanAgentHandoffConfig.SalesforceLiveAgentConfig + */ +class SalesforceLiveAgentConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The organization ID of the Salesforce account. + * + * Generated from protobuf field string organization_id = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $organization_id = ''; + /** + * Required. Live Agent deployment ID. + * + * Generated from protobuf field string deployment_id = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $deployment_id = ''; + /** + * Required. Live Agent chat button ID. + * + * Generated from protobuf field string button_id = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $button_id = ''; + /** + * Required. Domain of the Live Agent endpoint for this agent. You can find + * the endpoint URL in the `Live Agent settings` page. For example if URL + * has the form https://d.la4-c2-phx.salesforceliveagent.com/..., + * you should fill in d.la4-c2-phx.salesforceliveagent.com. + * + * Generated from protobuf field string endpoint_domain = 4 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $endpoint_domain = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $organization_id + * Required. The organization ID of the Salesforce account. + * @type string $deployment_id + * Required. Live Agent deployment ID. + * @type string $button_id + * Required. Live Agent chat button ID. + * @type string $endpoint_domain + * Required. Domain of the Live Agent endpoint for this agent. You can find + * the endpoint URL in the `Live Agent settings` page. For example if URL + * has the form https://d.la4-c2-phx.salesforceliveagent.com/..., + * you should fill in d.la4-c2-phx.salesforceliveagent.com. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The organization ID of the Salesforce account. + * + * Generated from protobuf field string organization_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getOrganizationId() + { + return $this->organization_id; + } + + /** + * Required. The organization ID of the Salesforce account. + * + * Generated from protobuf field string organization_id = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setOrganizationId($var) + { + GPBUtil::checkString($var, True); + $this->organization_id = $var; + + return $this; + } + + /** + * Required. Live Agent deployment ID. + * + * Generated from protobuf field string deployment_id = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDeploymentId() + { + return $this->deployment_id; + } + + /** + * Required. Live Agent deployment ID. + * + * Generated from protobuf field string deployment_id = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDeploymentId($var) + { + GPBUtil::checkString($var, True); + $this->deployment_id = $var; + + return $this; + } + + /** + * Required. Live Agent chat button ID. + * + * Generated from protobuf field string button_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getButtonId() + { + return $this->button_id; + } + + /** + * Required. Live Agent chat button ID. + * + * Generated from protobuf field string button_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setButtonId($var) + { + GPBUtil::checkString($var, True); + $this->button_id = $var; + + return $this; + } + + /** + * Required. Domain of the Live Agent endpoint for this agent. You can find + * the endpoint URL in the `Live Agent settings` page. For example if URL + * has the form https://d.la4-c2-phx.salesforceliveagent.com/..., + * you should fill in d.la4-c2-phx.salesforceliveagent.com. + * + * Generated from protobuf field string endpoint_domain = 4 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getEndpointDomain() + { + return $this->endpoint_domain; + } + + /** + * Required. Domain of the Live Agent endpoint for this agent. You can find + * the endpoint URL in the `Live Agent settings` page. For example if URL + * has the form https://d.la4-c2-phx.salesforceliveagent.com/..., + * you should fill in d.la4-c2-phx.salesforceliveagent.com. + * + * Generated from protobuf field string endpoint_domain = 4 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setEndpointDomain($var) + { + GPBUtil::checkString($var, True); + $this->endpoint_domain = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/ImportAgentRequest.php new file mode 100644 index 0000000..6c0b27e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportAgentRequest.php @@ -0,0 +1,165 @@ +google.cloud.dialogflow.v2.ImportAgentRequest + */ +class ImportAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent to import is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + protected $agent; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent to import is associated with. + * Format: `projects/`. + * @type string $agent_uri + * The URI to a Google Cloud Storage file containing the agent to import. + * Note: The URI must start with "gs://". + * Dialogflow performs a read operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have read permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * @type string $agent_content + * Zip compressed raw byte content for agent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent to import is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent to import is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The URI to a Google Cloud Storage file containing the agent to import. + * Note: The URI must start with "gs://". + * Dialogflow performs a read operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have read permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2; + * @return string + */ + public function getAgentUri() + { + return $this->readOneof(2); + } + + public function hasAgentUri() + { + return $this->hasOneof(2); + } + + /** + * The URI to a Google Cloud Storage file containing the agent to import. + * Note: The URI must start with "gs://". + * Dialogflow performs a read operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have read permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2; + * @param string $var + * @return $this + */ + public function setAgentUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Zip compressed raw byte content for agent. + * + * Generated from protobuf field bytes agent_content = 3; + * @return string + */ + public function getAgentContent() + { + return $this->readOneof(3); + } + + public function hasAgentContent() + { + return $this->hasOneof(3); + } + + /** + * Zip compressed raw byte content for agent. + * + * Generated from protobuf field bytes agent_content = 3; + * @param string $var + * @return $this + */ + public function setAgentContent($var) + { + GPBUtil::checkString($var, False); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * @return string + */ + public function getAgent() + { + return $this->whichOneof("agent"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationMetadata.php new file mode 100644 index 0000000..fd0fdee --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationMetadata.php @@ -0,0 +1,163 @@ +google.cloud.dialogflow.v2.ImportConversationDataOperationMetadata + */ +class ImportConversationDataOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + */ + protected $conversation_dataset = ''; + /** + * Partial failures are failures that don't fail the whole long running + * operation, e.g. single files that couldn't be read. + * + * Generated from protobuf field repeated .google.rpc.Status partial_failures = 2; + */ + private $partial_failures; + /** + * Timestamp when import conversation data request was created. The time is + * measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_dataset + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * @type array<\Google\Rpc\Status>|\Google\Protobuf\Internal\RepeatedField $partial_failures + * Partial failures are failures that don't fail the whole long running + * operation, e.g. single files that couldn't be read. + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp when import conversation data request was created. The time is + * measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getConversationDataset() + { + return $this->conversation_dataset; + } + + /** + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversationDataset($var) + { + GPBUtil::checkString($var, True); + $this->conversation_dataset = $var; + + return $this; + } + + /** + * Partial failures are failures that don't fail the whole long running + * operation, e.g. single files that couldn't be read. + * + * Generated from protobuf field repeated .google.rpc.Status partial_failures = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPartialFailures() + { + return $this->partial_failures; + } + + /** + * Partial failures are failures that don't fail the whole long running + * operation, e.g. single files that couldn't be read. + * + * Generated from protobuf field repeated .google.rpc.Status partial_failures = 2; + * @param array<\Google\Rpc\Status>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPartialFailures($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\Status::class); + $this->partial_failures = $arr; + + return $this; + } + + /** + * Timestamp when import conversation data request was created. The time is + * measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp when import conversation data request was created. The time is + * measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationResponse.php b/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationResponse.php new file mode 100644 index 0000000..9e946c0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataOperationResponse.php @@ -0,0 +1,111 @@ +google.cloud.dialogflow.v2.ImportConversationDataOperationResponse + */ +class ImportConversationDataOperationResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + */ + protected $conversation_dataset = ''; + /** + * Number of conversations imported successfully. + * + * Generated from protobuf field int32 import_count = 3; + */ + protected $import_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_dataset + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * @type int $import_count + * Number of conversations imported successfully. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + * @return string + */ + public function getConversationDataset() + { + return $this->conversation_dataset; + } + + /** + * The resource name of the imported conversation dataset. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string conversation_dataset = 1 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversationDataset($var) + { + GPBUtil::checkString($var, True); + $this->conversation_dataset = $var; + + return $this; + } + + /** + * Number of conversations imported successfully. + * + * Generated from protobuf field int32 import_count = 3; + * @return int + */ + public function getImportCount() + { + return $this->import_count; + } + + /** + * Number of conversations imported successfully. + * + * Generated from protobuf field int32 import_count = 3; + * @param int $var + * @return $this + */ + public function setImportCount($var) + { + GPBUtil::checkInt32($var); + $this->import_count = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataRequest.php b/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataRequest.php new file mode 100644 index 0000000..4dbfc91 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportConversationDataRequest.php @@ -0,0 +1,120 @@ +google.cloud.dialogflow.v2.ImportConversationDataRequest + */ +class ImportConversationDataRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Dataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * Required. Configuration describing where to import data from. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputConfig input_config = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $input_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. Dataset resource name. Format: + * `projects//locations//conversationDatasets/` + * @type \Google\Cloud\Dialogflow\V2\InputConfig $input_config + * Required. Configuration describing where to import data from. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Required. Dataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. Dataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. Configuration describing where to import data from. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputConfig input_config = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\InputConfig|null + */ + public function getInputConfig() + { + return $this->input_config; + } + + public function hasInputConfig() + { + return isset($this->input_config); + } + + public function clearInputConfig() + { + unset($this->input_config); + } + + /** + * Required. Configuration describing where to import data from. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputConfig input_config = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\InputConfig $var + * @return $this + */ + public function setInputConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InputConfig::class); + $this->input_config = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportDocumentTemplate.php b/vendor/google/cloud-dialogflow/src/V2/ImportDocumentTemplate.php new file mode 100644 index 0000000..674d014 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportDocumentTemplate.php @@ -0,0 +1,147 @@ +google.cloud.dialogflow.v2.ImportDocumentTemplate + */ +class ImportDocumentTemplate extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The MIME type of the document. + * + * Generated from protobuf field string mime_type = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $mime_type = ''; + /** + * Required. The knowledge type of document content. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document.KnowledgeType knowledge_types = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $knowledge_types; + /** + * Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * + * Generated from protobuf field map metadata = 3; + */ + private $metadata; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $mime_type + * Required. The MIME type of the document. + * @type array|\Google\Protobuf\Internal\RepeatedField $knowledge_types + * Required. The knowledge type of document content. + * @type array|\Google\Protobuf\Internal\MapField $metadata + * Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The MIME type of the document. + * + * Generated from protobuf field string mime_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getMimeType() + { + return $this->mime_type; + } + + /** + * Required. The MIME type of the document. + * + * Generated from protobuf field string mime_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setMimeType($var) + { + GPBUtil::checkString($var, True); + $this->mime_type = $var; + + return $this; + } + + /** + * Required. The knowledge type of document content. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document.KnowledgeType knowledge_types = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getKnowledgeTypes() + { + return $this->knowledge_types; + } + + /** + * Required. The knowledge type of document content. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document.KnowledgeType knowledge_types = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setKnowledgeTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\Document\KnowledgeType::class); + $this->knowledge_types = $arr; + + return $this; + } + + /** + * Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * + * Generated from protobuf field map metadata = 3; + * @return \Google\Protobuf\Internal\MapField + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * Metadata for the document. The metadata supports arbitrary + * key-value pairs. Suggested use cases include storing a document's title, + * an external URL distinct from the document's content_uri, etc. + * The max size of a `key` or a `value` of the metadata is 1024 bytes. + * + * Generated from protobuf field map metadata = 3; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setMetadata($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->metadata = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportDocumentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ImportDocumentsRequest.php new file mode 100644 index 0000000..a0ead26 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportDocumentsRequest.php @@ -0,0 +1,212 @@ +google.cloud.dialogflow.v2.ImportDocumentsRequest + */ +class ImportDocumentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The knowledge base to import documents into. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Required. Document template used for importing all the documents. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ImportDocumentTemplate document_template = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $document_template = null; + /** + * Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * + * Generated from protobuf field bool import_gcs_custom_metadata = 4; + */ + protected $import_gcs_custom_metadata = false; + protected $source; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The knowledge base to import documents into. + * Format: `projects//locations//knowledgeBases/`. + * @type \Google\Cloud\Dialogflow\V2\GcsSources $gcs_source + * Optional. The Google Cloud Storage location for the documents. + * The path can include a wildcard. + * These URIs may have the forms + * `gs:///`. + * `gs:////*.`. + * @type \Google\Cloud\Dialogflow\V2\ImportDocumentTemplate $document_template + * Required. Document template used for importing all the documents. + * @type bool $import_gcs_custom_metadata + * Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The knowledge base to import documents into. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The knowledge base to import documents into. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The Google Cloud Storage location for the documents. + * The path can include a wildcard. + * These URIs may have the forms + * `gs:///`. + * `gs:////*.`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsSources gcs_source = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\GcsSources|null + */ + public function getGcsSource() + { + return $this->readOneof(2); + } + + public function hasGcsSource() + { + return $this->hasOneof(2); + } + + /** + * Optional. The Google Cloud Storage location for the documents. + * The path can include a wildcard. + * These URIs may have the forms + * `gs:///`. + * `gs:////*.`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsSources gcs_source = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\GcsSources $var + * @return $this + */ + public function setGcsSource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GcsSources::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Required. Document template used for importing all the documents. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ImportDocumentTemplate document_template = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ImportDocumentTemplate|null + */ + public function getDocumentTemplate() + { + return $this->document_template; + } + + public function hasDocumentTemplate() + { + return isset($this->document_template); + } + + public function clearDocumentTemplate() + { + unset($this->document_template); + } + + /** + * Required. Document template used for importing all the documents. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ImportDocumentTemplate document_template = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ImportDocumentTemplate $var + * @return $this + */ + public function setDocumentTemplate($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ImportDocumentTemplate::class); + $this->document_template = $var; + + return $this; + } + + /** + * Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * + * Generated from protobuf field bool import_gcs_custom_metadata = 4; + * @return bool + */ + public function getImportGcsCustomMetadata() + { + return $this->import_gcs_custom_metadata; + } + + /** + * Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * + * Generated from protobuf field bool import_gcs_custom_metadata = 4; + * @param bool $var + * @return $this + */ + public function setImportGcsCustomMetadata($var) + { + GPBUtil::checkBool($var); + $this->import_gcs_custom_metadata = $var; + + return $this; + } + + /** + * @return string + */ + public function getSource() + { + return $this->whichOneof("source"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ImportDocumentsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ImportDocumentsResponse.php new file mode 100644 index 0000000..98f7b7a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ImportDocumentsResponse.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.ImportDocumentsResponse + */ +class ImportDocumentsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Includes details about skipped documents or any other warnings. + * + * Generated from protobuf field repeated .google.rpc.Status warnings = 1; + */ + private $warnings; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Rpc\Status>|\Google\Protobuf\Internal\RepeatedField $warnings + * Includes details about skipped documents or any other warnings. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Includes details about skipped documents or any other warnings. + * + * Generated from protobuf field repeated .google.rpc.Status warnings = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getWarnings() + { + return $this->warnings; + } + + /** + * Includes details about skipped documents or any other warnings. + * + * Generated from protobuf field repeated .google.rpc.Status warnings = 1; + * @param array<\Google\Rpc\Status>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setWarnings($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\Status::class); + $this->warnings = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InferenceParameter.php b/vendor/google/cloud-dialogflow/src/V2/InferenceParameter.php new file mode 100644 index 0000000..20c1554 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InferenceParameter.php @@ -0,0 +1,277 @@ +google.cloud.dialogflow.v2.InferenceParameter + */ +class InferenceParameter extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Maximum number of the output tokens for the generator. + * + * Generated from protobuf field optional int32 max_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $max_output_tokens = null; + /** + * Optional. Controls the randomness of LLM predictions. + * Low temperature = less random. High temperature = more random. + * If unset (or 0), uses a default value of 0. + * + * Generated from protobuf field optional double temperature = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $temperature = null; + /** + * Optional. Top-k changes how the model selects tokens for output. A top-k of + * 1 means the selected token is the most probable among all tokens in the + * model's vocabulary (also called greedy decoding), while a top-k of 3 means + * that the next token is selected from among the 3 most probable tokens + * (using temperature). For each token selection step, the top K tokens with + * the highest probabilities are sampled. Then tokens are further filtered + * based on topP with the final token selected using temperature sampling. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [1, 40], default to 40. + * + * Generated from protobuf field optional int32 top_k = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $top_k = null; + /** + * Optional. Top-p changes how the model selects tokens for output. Tokens are + * selected from most K (see topK parameter) probable to least until the sum + * of their probabilities equals the top-p value. For example, if tokens A, B, + * and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, + * then the model will select either A or B as the next token (using + * temperature) and doesn't consider C. The default top-p value is 0.95. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [0.0, 1.0], default to 0.95. + * + * Generated from protobuf field optional double top_p = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $top_p = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $max_output_tokens + * Optional. Maximum number of the output tokens for the generator. + * @type float $temperature + * Optional. Controls the randomness of LLM predictions. + * Low temperature = less random. High temperature = more random. + * If unset (or 0), uses a default value of 0. + * @type int $top_k + * Optional. Top-k changes how the model selects tokens for output. A top-k of + * 1 means the selected token is the most probable among all tokens in the + * model's vocabulary (also called greedy decoding), while a top-k of 3 means + * that the next token is selected from among the 3 most probable tokens + * (using temperature). For each token selection step, the top K tokens with + * the highest probabilities are sampled. Then tokens are further filtered + * based on topP with the final token selected using temperature sampling. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [1, 40], default to 40. + * @type float $top_p + * Optional. Top-p changes how the model selects tokens for output. Tokens are + * selected from most K (see topK parameter) probable to least until the sum + * of their probabilities equals the top-p value. For example, if tokens A, B, + * and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, + * then the model will select either A or B as the next token (using + * temperature) and doesn't consider C. The default top-p value is 0.95. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [0.0, 1.0], default to 0.95. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Maximum number of the output tokens for the generator. + * + * Generated from protobuf field optional int32 max_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getMaxOutputTokens() + { + return isset($this->max_output_tokens) ? $this->max_output_tokens : 0; + } + + public function hasMaxOutputTokens() + { + return isset($this->max_output_tokens); + } + + public function clearMaxOutputTokens() + { + unset($this->max_output_tokens); + } + + /** + * Optional. Maximum number of the output tokens for the generator. + * + * Generated from protobuf field optional int32 max_output_tokens = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setMaxOutputTokens($var) + { + GPBUtil::checkInt32($var); + $this->max_output_tokens = $var; + + return $this; + } + + /** + * Optional. Controls the randomness of LLM predictions. + * Low temperature = less random. High temperature = more random. + * If unset (or 0), uses a default value of 0. + * + * Generated from protobuf field optional double temperature = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getTemperature() + { + return isset($this->temperature) ? $this->temperature : 0.0; + } + + public function hasTemperature() + { + return isset($this->temperature); + } + + public function clearTemperature() + { + unset($this->temperature); + } + + /** + * Optional. Controls the randomness of LLM predictions. + * Low temperature = less random. High temperature = more random. + * If unset (or 0), uses a default value of 0. + * + * Generated from protobuf field optional double temperature = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setTemperature($var) + { + GPBUtil::checkDouble($var); + $this->temperature = $var; + + return $this; + } + + /** + * Optional. Top-k changes how the model selects tokens for output. A top-k of + * 1 means the selected token is the most probable among all tokens in the + * model's vocabulary (also called greedy decoding), while a top-k of 3 means + * that the next token is selected from among the 3 most probable tokens + * (using temperature). For each token selection step, the top K tokens with + * the highest probabilities are sampled. Then tokens are further filtered + * based on topP with the final token selected using temperature sampling. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [1, 40], default to 40. + * + * Generated from protobuf field optional int32 top_k = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getTopK() + { + return isset($this->top_k) ? $this->top_k : 0; + } + + public function hasTopK() + { + return isset($this->top_k); + } + + public function clearTopK() + { + unset($this->top_k); + } + + /** + * Optional. Top-k changes how the model selects tokens for output. A top-k of + * 1 means the selected token is the most probable among all tokens in the + * model's vocabulary (also called greedy decoding), while a top-k of 3 means + * that the next token is selected from among the 3 most probable tokens + * (using temperature). For each token selection step, the top K tokens with + * the highest probabilities are sampled. Then tokens are further filtered + * based on topP with the final token selected using temperature sampling. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [1, 40], default to 40. + * + * Generated from protobuf field optional int32 top_k = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setTopK($var) + { + GPBUtil::checkInt32($var); + $this->top_k = $var; + + return $this; + } + + /** + * Optional. Top-p changes how the model selects tokens for output. Tokens are + * selected from most K (see topK parameter) probable to least until the sum + * of their probabilities equals the top-p value. For example, if tokens A, B, + * and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, + * then the model will select either A or B as the next token (using + * temperature) and doesn't consider C. The default top-p value is 0.95. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [0.0, 1.0], default to 0.95. + * + * Generated from protobuf field optional double top_p = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getTopP() + { + return isset($this->top_p) ? $this->top_p : 0.0; + } + + public function hasTopP() + { + return isset($this->top_p); + } + + public function clearTopP() + { + unset($this->top_p); + } + + /** + * Optional. Top-p changes how the model selects tokens for output. Tokens are + * selected from most K (see topK parameter) probable to least until the sum + * of their probabilities equals the top-p value. For example, if tokens A, B, + * and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, + * then the model will select either A or B as the next token (using + * temperature) and doesn't consider C. The default top-p value is 0.95. + * Specify a lower value for less random responses and a higher value for more + * random responses. Acceptable value is [0.0, 1.0], default to 0.95. + * + * Generated from protobuf field optional double top_p = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setTopP($var) + { + GPBUtil::checkDouble($var); + $this->top_p = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesRequest.php b/vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesRequest.php new file mode 100644 index 0000000..d9dd367 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesRequest.php @@ -0,0 +1,142 @@ +google.cloud.dialogflow.v2.IngestContextReferencesRequest + */ +class IngestContextReferencesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Resource identifier of the conversation to ingest context + * information for. Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $conversation = ''; + /** + * Required. The context references to ingest. The key is the name of the + * context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * Generated from protobuf field map context_references = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $context_references; + + /** + * @param string $conversation Required. Resource identifier of the conversation to ingest context + * information for. Format: `projects//locations//conversations/`. Please see + * {@see ConversationsClient::conversationName()} for help formatting this field. + * @param array $contextReferences Required. The context references to ingest. The key is the name of the + * context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * @return \Google\Cloud\Dialogflow\V2\IngestContextReferencesRequest + * + * @experimental + */ + public static function build(string $conversation, array $contextReferences): self + { + return (new self()) + ->setConversation($conversation) + ->setContextReferences($contextReferences); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation + * Required. Resource identifier of the conversation to ingest context + * information for. Format: `projects//locations//conversations/`. + * @type array|\Google\Protobuf\Internal\MapField $context_references + * Required. The context references to ingest. The key is the name of the + * context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. Resource identifier of the conversation to ingest context + * information for. Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getConversation() + { + return $this->conversation; + } + + /** + * Required. Resource identifier of the conversation to ingest context + * information for. Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkString($var, True); + $this->conversation = $var; + + return $this; + } + + /** + * Required. The context references to ingest. The key is the name of the + * context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * Generated from protobuf field map context_references = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getContextReferences() + { + return $this->context_references; + } + + /** + * Required. The context references to ingest. The key is the name of the + * context reference and the value contains the contents of the context + * reference. The key is used to incorporate ingested context references to + * enhance the generator. + * + * Generated from protobuf field map context_references = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setContextReferences($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference::class); + $this->context_references = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesResponse.php b/vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesResponse.php new file mode 100644 index 0000000..646c3a2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/IngestContextReferencesResponse.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.IngestContextReferencesResponse + */ +class IngestContextReferencesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * All context references ingested. + * + * Generated from protobuf field map ingested_context_references = 1; + */ + private $ingested_context_references; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\MapField $ingested_context_references + * All context references ingested. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * All context references ingested. + * + * Generated from protobuf field map ingested_context_references = 1; + * @return \Google\Protobuf\Internal\MapField + */ + public function getIngestedContextReferences() + { + return $this->ingested_context_references; + } + + /** + * All context references ingested. + * + * Generated from protobuf field map ingested_context_references = 1; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setIngestedContextReferences($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation\ContextReference::class); + $this->ingested_context_references = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecMetadata.php b/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecMetadata.php new file mode 100644 index 0000000..388d113 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecMetadata.php @@ -0,0 +1,77 @@ +google.cloud.dialogflow.v2.InitializeEncryptionSpecMetadata + */ +class InitializeEncryptionSpecMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The original request for initialization. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest request = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $request = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecRequest $request + * Output only. The original request for initialization. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EncryptionSpec::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The original request for initialization. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest request = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecRequest|null + */ + public function getRequest() + { + return $this->request; + } + + public function hasRequest() + { + return isset($this->request); + } + + public function clearRequest() + { + unset($this->request); + } + + /** + * Output only. The original request for initialization. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest request = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecRequest $var + * @return $this + */ + public function setRequest($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecRequest::class); + $this->request = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecRequest.php b/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecRequest.php new file mode 100644 index 0000000..f639eea --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecRequest.php @@ -0,0 +1,105 @@ +google.cloud.dialogflow.v2.InitializeEncryptionSpecRequest + */ +class InitializeEncryptionSpecRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The encryption spec used for CMEK encryption. It is required that + * the kms key is in the same region as the endpoint. The same key will be + * used for all provisioned resources, if encryption is available. If the + * kms_key_name is left empty, no encryption will be enforced. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EncryptionSpec encryption_spec = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $encryption_spec = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\EncryptionSpec $encryptionSpec Required. The encryption spec used for CMEK encryption. It is required that + * the kms key is in the same region as the endpoint. The same key will be + * used for all provisioned resources, if encryption is available. If the + * kms_key_name is left empty, no encryption will be enforced. + * + * @return \Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\EncryptionSpec $encryptionSpec): self + { + return (new self()) + ->setEncryptionSpec($encryptionSpec); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\EncryptionSpec $encryption_spec + * Required. The encryption spec used for CMEK encryption. It is required that + * the kms key is in the same region as the endpoint. The same key will be + * used for all provisioned resources, if encryption is available. If the + * kms_key_name is left empty, no encryption will be enforced. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EncryptionSpec::initOnce(); + parent::__construct($data); + } + + /** + * Required. The encryption spec used for CMEK encryption. It is required that + * the kms key is in the same region as the endpoint. The same key will be + * used for all provisioned resources, if encryption is available. If the + * kms_key_name is left empty, no encryption will be enforced. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EncryptionSpec encryption_spec = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\EncryptionSpec|null + */ + public function getEncryptionSpec() + { + return $this->encryption_spec; + } + + public function hasEncryptionSpec() + { + return isset($this->encryption_spec); + } + + public function clearEncryptionSpec() + { + unset($this->encryption_spec); + } + + /** + * Required. The encryption spec used for CMEK encryption. It is required that + * the kms key is in the same region as the endpoint. The same key will be + * used for all provisioned resources, if encryption is available. If the + * kms_key_name is left empty, no encryption will be enforced. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EncryptionSpec encryption_spec = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\EncryptionSpec $var + * @return $this + */ + public function setEncryptionSpec($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EncryptionSpec::class); + $this->encryption_spec = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecResponse.php b/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecResponse.php new file mode 100644 index 0000000..c4ba7c5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InitializeEncryptionSpecResponse.php @@ -0,0 +1,33 @@ +google.cloud.dialogflow.v2.InitializeEncryptionSpecResponse + */ +class InitializeEncryptionSpecResponse extends \Google\Protobuf\Internal\Message +{ + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EncryptionSpec::initOnce(); + parent::__construct($data); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InputAudioConfig.php b/vendor/google/cloud-dialogflow/src/V2/InputAudioConfig.php new file mode 100644 index 0000000..5e77d67 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InputAudioConfig.php @@ -0,0 +1,652 @@ +google.cloud.dialogflow.v2.InputAudioConfig + */ +class InputAudioConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Audio encoding of the audio content to process. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioEncoding audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $audio_encoding = 0; + /** + * Required. Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * + * Generated from protobuf field int32 sample_rate_hertz = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $sample_rate_hertz = 0; + /** + * Required. The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $language_code = ''; + /** + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * + * Generated from protobuf field bool enable_word_info = 13; + */ + protected $enable_word_info = false; + /** + * A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * This field is deprecated. Please use [`speech_contexts`]() instead. If you + * specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will + * treat the [`phrase_hints`]() as a single additional [`SpeechContext`](). + * + * Generated from protobuf field repeated string phrase_hints = 4 [deprecated = true]; + * @deprecated + */ + private $phrase_hints; + /** + * Context information to assist speech recognition. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SpeechContext speech_contexts = 11; + */ + private $speech_contexts; + /** + * Optional. Which Speech model to select for the given request. + * For more information, see + * [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models). + * + * Generated from protobuf field string model = 7; + */ + protected $model = ''; + /** + * Which variant of the [Speech + * model][google.cloud.dialogflow.v2.InputAudioConfig.model] to use. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechModelVariant model_variant = 10; + */ + protected $model_variant = 0; + /** + * If `false` (default), recognition does not cease until the + * client closes the stream. + * If `true`, the recognizer will detect a single spoken utterance in input + * audio. Recognition ceases when it detects the audio's voice has + * stopped or paused. In this case, once a detected intent is received, the + * client should close the stream and start a new request with a new stream as + * needed. + * Note: This setting is relevant only for streaming methods. + * Note: When specified, InputAudioConfig.single_utterance takes precedence + * over StreamingDetectIntentRequest.single_utterance. + * + * Generated from protobuf field bool single_utterance = 8; + */ + protected $single_utterance = false; + /** + * Only used in + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * and + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent]. + * If `false` and recognition doesn't return any result, trigger + * `NO_SPEECH_RECOGNIZED` event to Dialogflow agent. + * + * Generated from protobuf field bool disable_no_speech_recognized_event = 14; + */ + protected $disable_no_speech_recognized_event = false; + /** + * Enable automatic punctuation option at the speech backend. + * + * Generated from protobuf field bool enable_automatic_punctuation = 17; + */ + protected $enable_automatic_punctuation = false; + /** + * A collection of phrase set resources to use for speech adaptation. + * + * Generated from protobuf field repeated string phrase_sets = 20 [(.google.api.resource_reference) = { + */ + private $phrase_sets; + /** + * If `true`, the request will opt out for STT conformer model migration. + * This field will be deprecated once force migration takes place in June + * 2024. Please refer to [Dialogflow ES Speech model + * migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + * + * Generated from protobuf field bool opt_out_conformer_model_migration = 26; + */ + protected $opt_out_conformer_model_migration = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $audio_encoding + * Required. Audio encoding of the audio content to process. + * @type int $sample_rate_hertz + * Required. Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * @type string $language_code + * Required. The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * @type bool $enable_word_info + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * @type array|\Google\Protobuf\Internal\RepeatedField $phrase_hints + * A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * This field is deprecated. Please use [`speech_contexts`]() instead. If you + * specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will + * treat the [`phrase_hints`]() as a single additional [`SpeechContext`](). + * @type array<\Google\Cloud\Dialogflow\V2\SpeechContext>|\Google\Protobuf\Internal\RepeatedField $speech_contexts + * Context information to assist speech recognition. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * @type string $model + * Optional. Which Speech model to select for the given request. + * For more information, see + * [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models). + * @type int $model_variant + * Which variant of the [Speech + * model][google.cloud.dialogflow.v2.InputAudioConfig.model] to use. + * @type bool $single_utterance + * If `false` (default), recognition does not cease until the + * client closes the stream. + * If `true`, the recognizer will detect a single spoken utterance in input + * audio. Recognition ceases when it detects the audio's voice has + * stopped or paused. In this case, once a detected intent is received, the + * client should close the stream and start a new request with a new stream as + * needed. + * Note: This setting is relevant only for streaming methods. + * Note: When specified, InputAudioConfig.single_utterance takes precedence + * over StreamingDetectIntentRequest.single_utterance. + * @type bool $disable_no_speech_recognized_event + * Only used in + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * and + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent]. + * If `false` and recognition doesn't return any result, trigger + * `NO_SPEECH_RECOGNIZED` event to Dialogflow agent. + * @type bool $enable_automatic_punctuation + * Enable automatic punctuation option at the speech backend. + * @type array|\Google\Protobuf\Internal\RepeatedField $phrase_sets + * A collection of phrase set resources to use for speech adaptation. + * @type bool $opt_out_conformer_model_migration + * If `true`, the request will opt out for STT conformer model migration. + * This field will be deprecated once force migration takes place in June + * 2024. Please refer to [Dialogflow ES Speech model + * migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * Required. Audio encoding of the audio content to process. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioEncoding audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getAudioEncoding() + { + return $this->audio_encoding; + } + + /** + * Required. Audio encoding of the audio content to process. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioEncoding audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setAudioEncoding($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AudioEncoding::class); + $this->audio_encoding = $var; + + return $this; + } + + /** + * Required. Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * + * Generated from protobuf field int32 sample_rate_hertz = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getSampleRateHertz() + { + return $this->sample_rate_hertz; + } + + /** + * Required. Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * + * Generated from protobuf field int32 sample_rate_hertz = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setSampleRateHertz($var) + { + GPBUtil::checkInt32($var); + $this->sample_rate_hertz = $var; + + return $this; + } + + /** + * Required. The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Required. The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * + * Generated from protobuf field bool enable_word_info = 13; + * @return bool + */ + public function getEnableWordInfo() + { + return $this->enable_word_info; + } + + /** + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * + * Generated from protobuf field bool enable_word_info = 13; + * @param bool $var + * @return $this + */ + public function setEnableWordInfo($var) + { + GPBUtil::checkBool($var); + $this->enable_word_info = $var; + + return $this; + } + + /** + * A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * This field is deprecated. Please use [`speech_contexts`]() instead. If you + * specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will + * treat the [`phrase_hints`]() as a single additional [`SpeechContext`](). + * + * Generated from protobuf field repeated string phrase_hints = 4 [deprecated = true]; + * @return \Google\Protobuf\Internal\RepeatedField + * @deprecated + */ + public function getPhraseHints() + { + if ($this->phrase_hints->count() !== 0) { + @trigger_error('phrase_hints is deprecated.', E_USER_DEPRECATED); + } + return $this->phrase_hints; + } + + /** + * A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * This field is deprecated. Please use [`speech_contexts`]() instead. If you + * specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will + * treat the [`phrase_hints`]() as a single additional [`SpeechContext`](). + * + * Generated from protobuf field repeated string phrase_hints = 4 [deprecated = true]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + * @deprecated + */ + public function setPhraseHints($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + if (count($arr) !== 0) { + @trigger_error('phrase_hints is deprecated.', E_USER_DEPRECATED); + } + $this->phrase_hints = $arr; + + return $this; + } + + /** + * Context information to assist speech recognition. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SpeechContext speech_contexts = 11; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSpeechContexts() + { + return $this->speech_contexts; + } + + /** + * Context information to assist speech recognition. + * See [the Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) + * for more details. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SpeechContext speech_contexts = 11; + * @param array<\Google\Cloud\Dialogflow\V2\SpeechContext>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSpeechContexts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SpeechContext::class); + $this->speech_contexts = $arr; + + return $this; + } + + /** + * Optional. Which Speech model to select for the given request. + * For more information, see + * [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models). + * + * Generated from protobuf field string model = 7; + * @return string + */ + public function getModel() + { + return $this->model; + } + + /** + * Optional. Which Speech model to select for the given request. + * For more information, see + * [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models). + * + * Generated from protobuf field string model = 7; + * @param string $var + * @return $this + */ + public function setModel($var) + { + GPBUtil::checkString($var, True); + $this->model = $var; + + return $this; + } + + /** + * Which variant of the [Speech + * model][google.cloud.dialogflow.v2.InputAudioConfig.model] to use. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechModelVariant model_variant = 10; + * @return int + */ + public function getModelVariant() + { + return $this->model_variant; + } + + /** + * Which variant of the [Speech + * model][google.cloud.dialogflow.v2.InputAudioConfig.model] to use. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechModelVariant model_variant = 10; + * @param int $var + * @return $this + */ + public function setModelVariant($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SpeechModelVariant::class); + $this->model_variant = $var; + + return $this; + } + + /** + * If `false` (default), recognition does not cease until the + * client closes the stream. + * If `true`, the recognizer will detect a single spoken utterance in input + * audio. Recognition ceases when it detects the audio's voice has + * stopped or paused. In this case, once a detected intent is received, the + * client should close the stream and start a new request with a new stream as + * needed. + * Note: This setting is relevant only for streaming methods. + * Note: When specified, InputAudioConfig.single_utterance takes precedence + * over StreamingDetectIntentRequest.single_utterance. + * + * Generated from protobuf field bool single_utterance = 8; + * @return bool + */ + public function getSingleUtterance() + { + return $this->single_utterance; + } + + /** + * If `false` (default), recognition does not cease until the + * client closes the stream. + * If `true`, the recognizer will detect a single spoken utterance in input + * audio. Recognition ceases when it detects the audio's voice has + * stopped or paused. In this case, once a detected intent is received, the + * client should close the stream and start a new request with a new stream as + * needed. + * Note: This setting is relevant only for streaming methods. + * Note: When specified, InputAudioConfig.single_utterance takes precedence + * over StreamingDetectIntentRequest.single_utterance. + * + * Generated from protobuf field bool single_utterance = 8; + * @param bool $var + * @return $this + */ + public function setSingleUtterance($var) + { + GPBUtil::checkBool($var); + $this->single_utterance = $var; + + return $this; + } + + /** + * Only used in + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * and + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent]. + * If `false` and recognition doesn't return any result, trigger + * `NO_SPEECH_RECOGNIZED` event to Dialogflow agent. + * + * Generated from protobuf field bool disable_no_speech_recognized_event = 14; + * @return bool + */ + public function getDisableNoSpeechRecognizedEvent() + { + return $this->disable_no_speech_recognized_event; + } + + /** + * Only used in + * [Participants.AnalyzeContent][google.cloud.dialogflow.v2.Participants.AnalyzeContent] + * and + * [Participants.StreamingAnalyzeContent][google.cloud.dialogflow.v2.Participants.StreamingAnalyzeContent]. + * If `false` and recognition doesn't return any result, trigger + * `NO_SPEECH_RECOGNIZED` event to Dialogflow agent. + * + * Generated from protobuf field bool disable_no_speech_recognized_event = 14; + * @param bool $var + * @return $this + */ + public function setDisableNoSpeechRecognizedEvent($var) + { + GPBUtil::checkBool($var); + $this->disable_no_speech_recognized_event = $var; + + return $this; + } + + /** + * Enable automatic punctuation option at the speech backend. + * + * Generated from protobuf field bool enable_automatic_punctuation = 17; + * @return bool + */ + public function getEnableAutomaticPunctuation() + { + return $this->enable_automatic_punctuation; + } + + /** + * Enable automatic punctuation option at the speech backend. + * + * Generated from protobuf field bool enable_automatic_punctuation = 17; + * @param bool $var + * @return $this + */ + public function setEnableAutomaticPunctuation($var) + { + GPBUtil::checkBool($var); + $this->enable_automatic_punctuation = $var; + + return $this; + } + + /** + * A collection of phrase set resources to use for speech adaptation. + * + * Generated from protobuf field repeated string phrase_sets = 20 [(.google.api.resource_reference) = { + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPhraseSets() + { + return $this->phrase_sets; + } + + /** + * A collection of phrase set resources to use for speech adaptation. + * + * Generated from protobuf field repeated string phrase_sets = 20 [(.google.api.resource_reference) = { + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPhraseSets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->phrase_sets = $arr; + + return $this; + } + + /** + * If `true`, the request will opt out for STT conformer model migration. + * This field will be deprecated once force migration takes place in June + * 2024. Please refer to [Dialogflow ES Speech model + * migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + * + * Generated from protobuf field bool opt_out_conformer_model_migration = 26; + * @return bool + */ + public function getOptOutConformerModelMigration() + { + return $this->opt_out_conformer_model_migration; + } + + /** + * If `true`, the request will opt out for STT conformer model migration. + * This field will be deprecated once force migration takes place in June + * 2024. Please refer to [Dialogflow ES Speech model + * migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + * + * Generated from protobuf field bool opt_out_conformer_model_migration = 26; + * @param bool $var + * @return $this + */ + public function setOptOutConformerModelMigration($var) + { + GPBUtil::checkBool($var); + $this->opt_out_conformer_model_migration = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InputConfig.php b/vendor/google/cloud-dialogflow/src/V2/InputConfig.php new file mode 100644 index 0000000..eb1a430 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InputConfig.php @@ -0,0 +1,82 @@ +google.cloud.dialogflow.v2.InputConfig + */ +class InputConfig extends \Google\Protobuf\Internal\Message +{ + protected $source; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\GcsSources $gcs_source + * The Cloud Storage URI has the form gs:////agent*.json. Wildcards are allowed and will be expanded into all + * matched JSON files, which will be read as one conversation per file. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * The Cloud Storage URI has the form gs:////agent*.json. Wildcards are allowed and will be expanded into all + * matched JSON files, which will be read as one conversation per file. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsSources gcs_source = 1; + * @return \Google\Cloud\Dialogflow\V2\GcsSources|null + */ + public function getGcsSource() + { + return $this->readOneof(1); + } + + public function hasGcsSource() + { + return $this->hasOneof(1); + } + + /** + * The Cloud Storage URI has the form gs:////agent*.json. Wildcards are allowed and will be expanded into all + * matched JSON files, which will be read as one conversation per file. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GcsSources gcs_source = 1; + * @param \Google\Cloud\Dialogflow\V2\GcsSources $var + * @return $this + */ + public function setGcsSource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GcsSources::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * @return string + */ + public function getSource() + { + return $this->whichOneof("source"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InputDataset.php b/vendor/google/cloud-dialogflow/src/V2/InputDataset.php new file mode 100644 index 0000000..28917cd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InputDataset.php @@ -0,0 +1,76 @@ +google.cloud.dialogflow.v2.InputDataset + */ +class InputDataset extends \Google\Protobuf\Internal\Message +{ + /** + * Required. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string dataset = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $dataset = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $dataset + * Required. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string dataset = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getDataset() + { + return $this->dataset; + } + + /** + * Required. ConversationDataset resource name. Format: + * `projects//locations//conversationDatasets/` + * + * Generated from protobuf field string dataset = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setDataset($var) + { + GPBUtil::checkString($var, True); + $this->dataset = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/InputTextConfig.php b/vendor/google/cloud-dialogflow/src/V2/InputTextConfig.php new file mode 100644 index 0000000..13adbca --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/InputTextConfig.php @@ -0,0 +1,75 @@ +google.cloud.dialogflow.v2.InputTextConfig + */ +class InputTextConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $language_code + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent.php b/vendor/google/cloud-dialogflow/src/V2/Intent.php new file mode 100644 index 0000000..2fdd458 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent.php @@ -0,0 +1,904 @@ +google.cloud.dialogflow.v2.Intent + */ +class Intent extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The unique identifier of this intent. + * Required for + * [Intents.UpdateIntent][google.cloud.dialogflow.v2.Intents.UpdateIntent] and + * [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents] + * methods. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $name = ''; + /** + * Required. The name of this intent. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Optional. Indicates whether webhooks are enabled for the intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.WebhookState webhook_state = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $webhook_state = 0; + /** + * Optional. The priority of this intent. Higher numbers represent higher + * priorities. + * - If the supplied value is unspecified or 0, the service + * translates the value to 500,000, which corresponds to the + * `Normal` priority in the console. + * - If the supplied value is negative, the intent is ignored + * in runtime detect intent requests. + * + * Generated from protobuf field int32 priority = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $priority = 0; + /** + * Optional. Indicates whether this is a fallback intent. + * + * Generated from protobuf field bool is_fallback = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $is_fallback = false; + /** + * Optional. Indicates whether Machine Learning is disabled for the intent. + * Note: If `ml_disabled` setting is set to true, then this intent is not + * taken into account during inference in `ML ONLY` match mode. Also, + * auto-markup in the UI is turned off. + * + * Generated from protobuf field bool ml_disabled = 19 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $ml_disabled = false; + /** + * Optional. Indicates that a live agent should be brought in to handle the + * interaction with the user. In most cases, when you set this flag to true, + * you would also want to set end_interaction to true as well. Default is + * false. + * + * Generated from protobuf field bool live_agent_handoff = 20 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $live_agent_handoff = false; + /** + * Optional. Indicates that this intent ends an interaction. Some integrations + * (e.g., Actions on Google or Dialogflow phone gateway) use this information + * to close interaction with an end user. Default is false. + * + * Generated from protobuf field bool end_interaction = 21 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $end_interaction = false; + /** + * Optional. The list of context names required for this intent to be + * triggered. + * Format: `projects//agent/sessions/-/contexts/`. + * + * Generated from protobuf field repeated string input_context_names = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $input_context_names; + /** + * Optional. The collection of event names that trigger the intent. + * If the collection of input contexts is not empty, all of the contexts must + * be present in the active user session for an event to trigger this intent. + * Event names are limited to 150 characters. + * + * Generated from protobuf field repeated string events = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $events; + /** + * Optional. The collection of examples that the agent is + * trained on. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.TrainingPhrase training_phrases = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $training_phrases; + /** + * Optional. The name of the action associated with the intent. + * Note: The action name must not contain whitespaces. + * + * Generated from protobuf field string action = 10 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $action = ''; + /** + * Optional. The collection of contexts that are activated when the intent + * is matched. Context messages in this collection should not set the + * parameters field. Setting the `lifespan_count` to 0 will reset the context + * when the intent is matched. + * Format: `projects//agent/sessions/-/contexts/`. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 11 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $output_contexts; + /** + * Optional. Indicates whether to delete all contexts in the current + * session when this intent is matched. + * + * Generated from protobuf field bool reset_contexts = 12 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $reset_contexts = false; + /** + * Optional. The collection of parameters associated with the intent. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Parameter parameters = 13 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $parameters; + /** + * Optional. The collection of rich messages corresponding to the + * `Response` field in the Dialogflow console. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message messages = 14 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $messages; + /** + * Optional. The list of platforms for which the first responses will be + * copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform). + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Platform default_response_platforms = 15 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $default_response_platforms; + /** + * Output only. + * Read-only. The unique identifier of the root intent in the chain of + * followup intents. It identifies the correct followup intents chain for + * this intent. We populate this field only in the output. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string root_followup_intent_name = 16 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $root_followup_intent_name = ''; + /** + * Read-only after creation. The unique identifier of the parent intent in the + * chain of followup intents. You can set this field when creating an intent, + * for example with + * [CreateIntent][google.cloud.dialogflow.v2.Intents.CreateIntent] or + * [BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents], + * in order to make this intent a followup intent. + * It identifies the parent followup intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string parent_followup_intent_name = 17; + */ + protected $parent_followup_intent_name = ''; + /** + * Output only. Read-only. Information about all followup intents that have + * this intent as a direct or indirect parent. We populate this field only in + * the output. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.FollowupIntentInfo followup_intent_info = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $followup_intent_info; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The unique identifier of this intent. + * Required for + * [Intents.UpdateIntent][google.cloud.dialogflow.v2.Intents.UpdateIntent] and + * [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents] + * methods. + * Format: `projects//agent/intents/`. + * @type string $display_name + * Required. The name of this intent. + * @type int $webhook_state + * Optional. Indicates whether webhooks are enabled for the intent. + * @type int $priority + * Optional. The priority of this intent. Higher numbers represent higher + * priorities. + * - If the supplied value is unspecified or 0, the service + * translates the value to 500,000, which corresponds to the + * `Normal` priority in the console. + * - If the supplied value is negative, the intent is ignored + * in runtime detect intent requests. + * @type bool $is_fallback + * Optional. Indicates whether this is a fallback intent. + * @type bool $ml_disabled + * Optional. Indicates whether Machine Learning is disabled for the intent. + * Note: If `ml_disabled` setting is set to true, then this intent is not + * taken into account during inference in `ML ONLY` match mode. Also, + * auto-markup in the UI is turned off. + * @type bool $live_agent_handoff + * Optional. Indicates that a live agent should be brought in to handle the + * interaction with the user. In most cases, when you set this flag to true, + * you would also want to set end_interaction to true as well. Default is + * false. + * @type bool $end_interaction + * Optional. Indicates that this intent ends an interaction. Some integrations + * (e.g., Actions on Google or Dialogflow phone gateway) use this information + * to close interaction with an end user. Default is false. + * @type array|\Google\Protobuf\Internal\RepeatedField $input_context_names + * Optional. The list of context names required for this intent to be + * triggered. + * Format: `projects//agent/sessions/-/contexts/`. + * @type array|\Google\Protobuf\Internal\RepeatedField $events + * Optional. The collection of event names that trigger the intent. + * If the collection of input contexts is not empty, all of the contexts must + * be present in the active user session for an event to trigger this intent. + * Event names are limited to 150 characters. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase>|\Google\Protobuf\Internal\RepeatedField $training_phrases + * Optional. The collection of examples that the agent is + * trained on. + * @type string $action + * Optional. The name of the action associated with the intent. + * Note: The action name must not contain whitespaces. + * @type array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $output_contexts + * Optional. The collection of contexts that are activated when the intent + * is matched. Context messages in this collection should not set the + * parameters field. Setting the `lifespan_count` to 0 will reset the context + * when the intent is matched. + * Format: `projects//agent/sessions/-/contexts/`. + * @type bool $reset_contexts + * Optional. Indicates whether to delete all contexts in the current + * session when this intent is matched. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Parameter>|\Google\Protobuf\Internal\RepeatedField $parameters + * Optional. The collection of parameters associated with the intent. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message>|\Google\Protobuf\Internal\RepeatedField $messages + * Optional. The collection of rich messages corresponding to the + * `Response` field in the Dialogflow console. + * @type array|\Google\Protobuf\Internal\RepeatedField $default_response_platforms + * Optional. The list of platforms for which the first responses will be + * copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform). + * @type string $root_followup_intent_name + * Output only. + * Read-only. The unique identifier of the root intent in the chain of + * followup intents. It identifies the correct followup intents chain for + * this intent. We populate this field only in the output. + * Format: `projects//agent/intents/`. + * @type string $parent_followup_intent_name + * Read-only after creation. The unique identifier of the parent intent in the + * chain of followup intents. You can set this field when creating an intent, + * for example with + * [CreateIntent][google.cloud.dialogflow.v2.Intents.CreateIntent] or + * [BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents], + * in order to make this intent a followup intent. + * It identifies the parent followup intent. + * Format: `projects//agent/intents/`. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\FollowupIntentInfo>|\Google\Protobuf\Internal\RepeatedField $followup_intent_info + * Output only. Read-only. Information about all followup intents that have + * this intent as a direct or indirect parent. We populate this field only in + * the output. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The unique identifier of this intent. + * Required for + * [Intents.UpdateIntent][google.cloud.dialogflow.v2.Intents.UpdateIntent] and + * [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents] + * methods. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The unique identifier of this intent. + * Required for + * [Intents.UpdateIntent][google.cloud.dialogflow.v2.Intents.UpdateIntent] and + * [Intents.BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents] + * methods. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The name of this intent. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The name of this intent. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Optional. Indicates whether webhooks are enabled for the intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.WebhookState webhook_state = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getWebhookState() + { + return $this->webhook_state; + } + + /** + * Optional. Indicates whether webhooks are enabled for the intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.WebhookState webhook_state = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setWebhookState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\WebhookState::class); + $this->webhook_state = $var; + + return $this; + } + + /** + * Optional. The priority of this intent. Higher numbers represent higher + * priorities. + * - If the supplied value is unspecified or 0, the service + * translates the value to 500,000, which corresponds to the + * `Normal` priority in the console. + * - If the supplied value is negative, the intent is ignored + * in runtime detect intent requests. + * + * Generated from protobuf field int32 priority = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPriority() + { + return $this->priority; + } + + /** + * Optional. The priority of this intent. Higher numbers represent higher + * priorities. + * - If the supplied value is unspecified or 0, the service + * translates the value to 500,000, which corresponds to the + * `Normal` priority in the console. + * - If the supplied value is negative, the intent is ignored + * in runtime detect intent requests. + * + * Generated from protobuf field int32 priority = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPriority($var) + { + GPBUtil::checkInt32($var); + $this->priority = $var; + + return $this; + } + + /** + * Optional. Indicates whether this is a fallback intent. + * + * Generated from protobuf field bool is_fallback = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getIsFallback() + { + return $this->is_fallback; + } + + /** + * Optional. Indicates whether this is a fallback intent. + * + * Generated from protobuf field bool is_fallback = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setIsFallback($var) + { + GPBUtil::checkBool($var); + $this->is_fallback = $var; + + return $this; + } + + /** + * Optional. Indicates whether Machine Learning is disabled for the intent. + * Note: If `ml_disabled` setting is set to true, then this intent is not + * taken into account during inference in `ML ONLY` match mode. Also, + * auto-markup in the UI is turned off. + * + * Generated from protobuf field bool ml_disabled = 19 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getMlDisabled() + { + return $this->ml_disabled; + } + + /** + * Optional. Indicates whether Machine Learning is disabled for the intent. + * Note: If `ml_disabled` setting is set to true, then this intent is not + * taken into account during inference in `ML ONLY` match mode. Also, + * auto-markup in the UI is turned off. + * + * Generated from protobuf field bool ml_disabled = 19 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setMlDisabled($var) + { + GPBUtil::checkBool($var); + $this->ml_disabled = $var; + + return $this; + } + + /** + * Optional. Indicates that a live agent should be brought in to handle the + * interaction with the user. In most cases, when you set this flag to true, + * you would also want to set end_interaction to true as well. Default is + * false. + * + * Generated from protobuf field bool live_agent_handoff = 20 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getLiveAgentHandoff() + { + return $this->live_agent_handoff; + } + + /** + * Optional. Indicates that a live agent should be brought in to handle the + * interaction with the user. In most cases, when you set this flag to true, + * you would also want to set end_interaction to true as well. Default is + * false. + * + * Generated from protobuf field bool live_agent_handoff = 20 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setLiveAgentHandoff($var) + { + GPBUtil::checkBool($var); + $this->live_agent_handoff = $var; + + return $this; + } + + /** + * Optional. Indicates that this intent ends an interaction. Some integrations + * (e.g., Actions on Google or Dialogflow phone gateway) use this information + * to close interaction with an end user. Default is false. + * + * Generated from protobuf field bool end_interaction = 21 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEndInteraction() + { + return $this->end_interaction; + } + + /** + * Optional. Indicates that this intent ends an interaction. Some integrations + * (e.g., Actions on Google or Dialogflow phone gateway) use this information + * to close interaction with an end user. Default is false. + * + * Generated from protobuf field bool end_interaction = 21 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEndInteraction($var) + { + GPBUtil::checkBool($var); + $this->end_interaction = $var; + + return $this; + } + + /** + * Optional. The list of context names required for this intent to be + * triggered. + * Format: `projects//agent/sessions/-/contexts/`. + * + * Generated from protobuf field repeated string input_context_names = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getInputContextNames() + { + return $this->input_context_names; + } + + /** + * Optional. The list of context names required for this intent to be + * triggered. + * Format: `projects//agent/sessions/-/contexts/`. + * + * Generated from protobuf field repeated string input_context_names = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setInputContextNames($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->input_context_names = $arr; + + return $this; + } + + /** + * Optional. The collection of event names that trigger the intent. + * If the collection of input contexts is not empty, all of the contexts must + * be present in the active user session for an event to trigger this intent. + * Event names are limited to 150 characters. + * + * Generated from protobuf field repeated string events = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEvents() + { + return $this->events; + } + + /** + * Optional. The collection of event names that trigger the intent. + * If the collection of input contexts is not empty, all of the contexts must + * be present in the active user session for an event to trigger this intent. + * Event names are limited to 150 characters. + * + * Generated from protobuf field repeated string events = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEvents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->events = $arr; + + return $this; + } + + /** + * Optional. The collection of examples that the agent is + * trained on. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.TrainingPhrase training_phrases = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getTrainingPhrases() + { + return $this->training_phrases; + } + + /** + * Optional. The collection of examples that the agent is + * trained on. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.TrainingPhrase training_phrases = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setTrainingPhrases($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase::class); + $this->training_phrases = $arr; + + return $this; + } + + /** + * Optional. The name of the action associated with the intent. + * Note: The action name must not contain whitespaces. + * + * Generated from protobuf field string action = 10 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getAction() + { + return $this->action; + } + + /** + * Optional. The name of the action associated with the intent. + * Note: The action name must not contain whitespaces. + * + * Generated from protobuf field string action = 10 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setAction($var) + { + GPBUtil::checkString($var, True); + $this->action = $var; + + return $this; + } + + /** + * Optional. The collection of contexts that are activated when the intent + * is matched. Context messages in this collection should not set the + * parameters field. Setting the `lifespan_count` to 0 will reset the context + * when the intent is matched. + * Format: `projects//agent/sessions/-/contexts/`. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getOutputContexts() + { + return $this->output_contexts; + } + + /** + * Optional. The collection of contexts that are activated when the intent + * is matched. Context messages in this collection should not set the + * parameters field. Setting the `lifespan_count` to 0 will reset the context + * when the intent is matched. + * Format: `projects//agent/sessions/-/contexts/`. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setOutputContexts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Context::class); + $this->output_contexts = $arr; + + return $this; + } + + /** + * Optional. Indicates whether to delete all contexts in the current + * session when this intent is matched. + * + * Generated from protobuf field bool reset_contexts = 12 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getResetContexts() + { + return $this->reset_contexts; + } + + /** + * Optional. Indicates whether to delete all contexts in the current + * session when this intent is matched. + * + * Generated from protobuf field bool reset_contexts = 12 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setResetContexts($var) + { + GPBUtil::checkBool($var); + $this->reset_contexts = $var; + + return $this; + } + + /** + * Optional. The collection of parameters associated with the intent. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Parameter parameters = 13 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getParameters() + { + return $this->parameters; + } + + /** + * Optional. The collection of parameters associated with the intent. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Parameter parameters = 13 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Parameter>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setParameters($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Parameter::class); + $this->parameters = $arr; + + return $this; + } + + /** + * Optional. The collection of rich messages corresponding to the + * `Response` field in the Dialogflow console. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message messages = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMessages() + { + return $this->messages; + } + + /** + * Optional. The collection of rich messages corresponding to the + * `Response` field in the Dialogflow console. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message messages = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMessages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message::class); + $this->messages = $arr; + + return $this; + } + + /** + * Optional. The list of platforms for which the first responses will be + * copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform). + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Platform default_response_platforms = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDefaultResponsePlatforms() + { + return $this->default_response_platforms; + } + + /** + * Optional. The list of platforms for which the first responses will be + * copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform). + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Platform default_response_platforms = 15 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDefaultResponsePlatforms($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\Intent\Message\Platform::class); + $this->default_response_platforms = $arr; + + return $this; + } + + /** + * Output only. + * Read-only. The unique identifier of the root intent in the chain of + * followup intents. It identifies the correct followup intents chain for + * this intent. We populate this field only in the output. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string root_followup_intent_name = 16 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getRootFollowupIntentName() + { + return $this->root_followup_intent_name; + } + + /** + * Output only. + * Read-only. The unique identifier of the root intent in the chain of + * followup intents. It identifies the correct followup intents chain for + * this intent. We populate this field only in the output. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string root_followup_intent_name = 16 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setRootFollowupIntentName($var) + { + GPBUtil::checkString($var, True); + $this->root_followup_intent_name = $var; + + return $this; + } + + /** + * Read-only after creation. The unique identifier of the parent intent in the + * chain of followup intents. You can set this field when creating an intent, + * for example with + * [CreateIntent][google.cloud.dialogflow.v2.Intents.CreateIntent] or + * [BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents], + * in order to make this intent a followup intent. + * It identifies the parent followup intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string parent_followup_intent_name = 17; + * @return string + */ + public function getParentFollowupIntentName() + { + return $this->parent_followup_intent_name; + } + + /** + * Read-only after creation. The unique identifier of the parent intent in the + * chain of followup intents. You can set this field when creating an intent, + * for example with + * [CreateIntent][google.cloud.dialogflow.v2.Intents.CreateIntent] or + * [BatchUpdateIntents][google.cloud.dialogflow.v2.Intents.BatchUpdateIntents], + * in order to make this intent a followup intent. + * It identifies the parent followup intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string parent_followup_intent_name = 17; + * @param string $var + * @return $this + */ + public function setParentFollowupIntentName($var) + { + GPBUtil::checkString($var, True); + $this->parent_followup_intent_name = $var; + + return $this; + } + + /** + * Output only. Read-only. Information about all followup intents that have + * this intent as a direct or indirect parent. We populate this field only in + * the output. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.FollowupIntentInfo followup_intent_info = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFollowupIntentInfo() + { + return $this->followup_intent_info; + } + + /** + * Output only. Read-only. Information about all followup intents that have + * this intent as a direct or indirect parent. We populate this field only in + * the output. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.FollowupIntentInfo followup_intent_info = 18 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\FollowupIntentInfo>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFollowupIntentInfo($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\FollowupIntentInfo::class); + $this->followup_intent_info = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/FollowupIntentInfo.php b/vendor/google/cloud-dialogflow/src/V2/Intent/FollowupIntentInfo.php new file mode 100644 index 0000000..22defb9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/FollowupIntentInfo.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.Intent.FollowupIntentInfo + */ +class FollowupIntentInfo extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of the followup intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string followup_intent_name = 1; + */ + protected $followup_intent_name = ''; + /** + * The unique identifier of the followup intent's parent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string parent_followup_intent_name = 2; + */ + protected $parent_followup_intent_name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $followup_intent_name + * The unique identifier of the followup intent. + * Format: `projects//agent/intents/`. + * @type string $parent_followup_intent_name + * The unique identifier of the followup intent's parent. + * Format: `projects//agent/intents/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of the followup intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string followup_intent_name = 1; + * @return string + */ + public function getFollowupIntentName() + { + return $this->followup_intent_name; + } + + /** + * The unique identifier of the followup intent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string followup_intent_name = 1; + * @param string $var + * @return $this + */ + public function setFollowupIntentName($var) + { + GPBUtil::checkString($var, True); + $this->followup_intent_name = $var; + + return $this; + } + + /** + * The unique identifier of the followup intent's parent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string parent_followup_intent_name = 2; + * @return string + */ + public function getParentFollowupIntentName() + { + return $this->parent_followup_intent_name; + } + + /** + * The unique identifier of the followup intent's parent. + * Format: `projects//agent/intents/`. + * + * Generated from protobuf field string parent_followup_intent_name = 2; + * @param string $var + * @return $this + */ + public function setParentFollowupIntentName($var) + { + GPBUtil::checkString($var, True); + $this->parent_followup_intent_name = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message.php new file mode 100644 index 0000000..de77ccf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message.php @@ -0,0 +1,543 @@ +google.cloud.dialogflow.v2.Intent.Message + */ +class Message extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The platform that this message is intended for. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Platform platform = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $platform = 0; + protected $message; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Text $text + * The text response. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $image + * The image response. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\QuickReplies $quick_replies + * The quick replies response. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Card $card + * The card response. + * @type \Google\Protobuf\Struct $payload + * A custom platform-specific response. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponses $simple_responses + * The voice and text-only responses for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard $basic_card + * The basic card response for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Suggestions $suggestions + * The suggestion chips for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\LinkOutSuggestion $link_out_suggestion + * The link out suggestion chip for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect $list_select + * The list card response for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect $carousel_select + * The carousel card response for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard $browse_carousel_card + * Browse carousel card for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\TableCard $table_card + * Table card for Actions on Google. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent $media_content + * The media content card for Actions on Google. + * @type int $platform + * Optional. The platform that this message is intended for. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * The text response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Text text = 1; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Text|null + */ + public function getText() + { + return $this->readOneof(1); + } + + public function hasText() + { + return $this->hasOneof(1); + } + + /** + * The text response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Text text = 1; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Text $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Text::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * The image response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 2; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getImage() + { + return $this->readOneof(2); + } + + public function hasImage() + { + return $this->hasOneof(2); + } + + /** + * The image response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 2; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The quick replies response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.QuickReplies quick_replies = 3; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\QuickReplies|null + */ + public function getQuickReplies() + { + return $this->readOneof(3); + } + + public function hasQuickReplies() + { + return $this->hasOneof(3); + } + + /** + * The quick replies response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.QuickReplies quick_replies = 3; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\QuickReplies $var + * @return $this + */ + public function setQuickReplies($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\QuickReplies::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * The card response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Card card = 4; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Card|null + */ + public function getCard() + { + return $this->readOneof(4); + } + + public function hasCard() + { + return $this->hasOneof(4); + } + + /** + * The card response. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Card card = 4; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Card $var + * @return $this + */ + public function setCard($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Card::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * A custom platform-specific response. + * + * Generated from protobuf field .google.protobuf.Struct payload = 5; + * @return \Google\Protobuf\Struct|null + */ + public function getPayload() + { + return $this->readOneof(5); + } + + public function hasPayload() + { + return $this->hasOneof(5); + } + + /** + * A custom platform-specific response. + * + * Generated from protobuf field .google.protobuf.Struct payload = 5; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setPayload($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * The voice and text-only responses for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SimpleResponses simple_responses = 7; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponses|null + */ + public function getSimpleResponses() + { + return $this->readOneof(7); + } + + public function hasSimpleResponses() + { + return $this->hasOneof(7); + } + + /** + * The voice and text-only responses for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SimpleResponses simple_responses = 7; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponses $var + * @return $this + */ + public function setSimpleResponses($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponses::class); + $this->writeOneof(7, $var); + + return $this; + } + + /** + * The basic card response for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BasicCard basic_card = 8; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard|null + */ + public function getBasicCard() + { + return $this->readOneof(8); + } + + public function hasBasicCard() + { + return $this->hasOneof(8); + } + + /** + * The basic card response for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BasicCard basic_card = 8; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard $var + * @return $this + */ + public function setBasicCard($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard::class); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * The suggestion chips for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Suggestions suggestions = 9; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Suggestions|null + */ + public function getSuggestions() + { + return $this->readOneof(9); + } + + public function hasSuggestions() + { + return $this->hasOneof(9); + } + + /** + * The suggestion chips for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Suggestions suggestions = 9; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Suggestions $var + * @return $this + */ + public function setSuggestions($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Suggestions::class); + $this->writeOneof(9, $var); + + return $this; + } + + /** + * The link out suggestion chip for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion link_out_suggestion = 10; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\LinkOutSuggestion|null + */ + public function getLinkOutSuggestion() + { + return $this->readOneof(10); + } + + public function hasLinkOutSuggestion() + { + return $this->hasOneof(10); + } + + /** + * The link out suggestion chip for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion link_out_suggestion = 10; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\LinkOutSuggestion $var + * @return $this + */ + public function setLinkOutSuggestion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\LinkOutSuggestion::class); + $this->writeOneof(10, $var); + + return $this; + } + + /** + * The list card response for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.ListSelect list_select = 11; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect|null + */ + public function getListSelect() + { + return $this->readOneof(11); + } + + public function hasListSelect() + { + return $this->hasOneof(11); + } + + /** + * The list card response for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.ListSelect list_select = 11; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect $var + * @return $this + */ + public function setListSelect($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect::class); + $this->writeOneof(11, $var); + + return $this; + } + + /** + * The carousel card response for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.CarouselSelect carousel_select = 12; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect|null + */ + public function getCarouselSelect() + { + return $this->readOneof(12); + } + + public function hasCarouselSelect() + { + return $this->hasOneof(12); + } + + /** + * The carousel card response for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.CarouselSelect carousel_select = 12; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect $var + * @return $this + */ + public function setCarouselSelect($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect::class); + $this->writeOneof(12, $var); + + return $this; + } + + /** + * Browse carousel card for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard browse_carousel_card = 22; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard|null + */ + public function getBrowseCarouselCard() + { + return $this->readOneof(22); + } + + public function hasBrowseCarouselCard() + { + return $this->hasOneof(22); + } + + /** + * Browse carousel card for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard browse_carousel_card = 22; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard $var + * @return $this + */ + public function setBrowseCarouselCard($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard::class); + $this->writeOneof(22, $var); + + return $this; + } + + /** + * Table card for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.TableCard table_card = 23; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\TableCard|null + */ + public function getTableCard() + { + return $this->readOneof(23); + } + + public function hasTableCard() + { + return $this->hasOneof(23); + } + + /** + * Table card for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.TableCard table_card = 23; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\TableCard $var + * @return $this + */ + public function setTableCard($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\TableCard::class); + $this->writeOneof(23, $var); + + return $this; + } + + /** + * The media content card for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.MediaContent media_content = 24; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent|null + */ + public function getMediaContent() + { + return $this->readOneof(24); + } + + public function hasMediaContent() + { + return $this->hasOneof(24); + } + + /** + * The media content card for Actions on Google. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.MediaContent media_content = 24; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent $var + * @return $this + */ + public function setMediaContent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent::class); + $this->writeOneof(24, $var); + + return $this; + } + + /** + * Optional. The platform that this message is intended for. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Platform platform = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPlatform() + { + return $this->platform; + } + + /** + * Optional. The platform that this message is intended for. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Platform platform = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPlatform($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Platform::class); + $this->platform = $var; + + return $this; + } + + /** + * @return string + */ + public function getMessage() + { + return $this->whichOneof("message"); + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard.php new file mode 100644 index 0000000..34071e4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard.php @@ -0,0 +1,214 @@ +google.cloud.dialogflow.v2.Intent.Message.BasicCard + */ +class BasicCard extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The title of the card. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $title = ''; + /** + * Optional. The subtitle of the card. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $subtitle = ''; + /** + * Required, unless image is present. The body text of the card. + * + * Generated from protobuf field string formatted_text = 3; + */ + protected $formatted_text = ''; + /** + * Optional. The image for the card. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image = null; + /** + * Optional. The collection of card buttons. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button buttons = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $buttons; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Optional. The title of the card. + * @type string $subtitle + * Optional. The subtitle of the card. + * @type string $formatted_text + * Required, unless image is present. The body text of the card. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $image + * Optional. The image for the card. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button>|\Google\Protobuf\Internal\RepeatedField $buttons + * Optional. The collection of card buttons. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The title of the card. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Optional. The title of the card. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. The subtitle of the card. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getSubtitle() + { + return $this->subtitle; + } + + /** + * Optional. The subtitle of the card. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setSubtitle($var) + { + GPBUtil::checkString($var, True); + $this->subtitle = $var; + + return $this; + } + + /** + * Required, unless image is present. The body text of the card. + * + * Generated from protobuf field string formatted_text = 3; + * @return string + */ + public function getFormattedText() + { + return $this->formatted_text; + } + + /** + * Required, unless image is present. The body text of the card. + * + * Generated from protobuf field string formatted_text = 3; + * @param string $var + * @return $this + */ + public function setFormattedText($var) + { + GPBUtil::checkString($var, True); + $this->formatted_text = $var; + + return $this; + } + + /** + * Optional. The image for the card. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getImage() + { + return $this->image; + } + + public function hasImage() + { + return isset($this->image); + } + + public function clearImage() + { + unset($this->image); + } + + /** + * Optional. The image for the card. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->image = $var; + + return $this; + } + + /** + * Optional. The collection of card buttons. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button buttons = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getButtons() + { + return $this->buttons; + } + + /** + * Optional. The collection of card buttons. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button buttons = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setButtons($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button::class); + $this->buttons = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button.php new file mode 100644 index 0000000..ce96de4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button.php @@ -0,0 +1,112 @@ +google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button + */ +class Button extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The title of the button. + * + * Generated from protobuf field string title = 1; + */ + protected $title = ''; + /** + * Required. Action to take when a user taps on the button. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction open_uri_action = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $open_uri_action = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Required. The title of the button. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button\OpenUriAction $open_uri_action + * Required. Action to take when a user taps on the button. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The title of the button. + * + * Generated from protobuf field string title = 1; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Required. The title of the button. + * + * Generated from protobuf field string title = 1; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Required. Action to take when a user taps on the button. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction open_uri_action = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button\OpenUriAction|null + */ + public function getOpenUriAction() + { + return $this->open_uri_action; + } + + public function hasOpenUriAction() + { + return isset($this->open_uri_action); + } + + public function clearOpenUriAction() + { + unset($this->open_uri_action); + } + + /** + * Required. Action to take when a user taps on the button. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction open_uri_action = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button\OpenUriAction $var + * @return $this + */ + public function setOpenUriAction($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button\OpenUriAction::class); + $this->open_uri_action = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button/OpenUriAction.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button/OpenUriAction.php new file mode 100644 index 0000000..1783254 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BasicCard/Button/OpenUriAction.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button.OpenUriAction + */ +class OpenUriAction extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The HTTP or HTTPS scheme URI. + * + * Generated from protobuf field string uri = 1; + */ + protected $uri = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $uri + * Required. The HTTP or HTTPS scheme URI. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The HTTP or HTTPS scheme URI. + * + * Generated from protobuf field string uri = 1; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * Required. The HTTP or HTTPS scheme URI. + * + * Generated from protobuf field string uri = 1; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard.php new file mode 100644 index 0000000..0e4422a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard.php @@ -0,0 +1,111 @@ +google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard + */ +class BrowseCarouselCard extends \Google\Protobuf\Internal\Message +{ + /** + * Required. List of items in the Browse Carousel Card. Minimum of two + * items, maximum of ten. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem items = 1; + */ + private $items; + /** + * Optional. Settings for displaying the image. Applies to every image in + * [items][google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.items]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions image_display_options = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image_display_options = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem>|\Google\Protobuf\Internal\RepeatedField $items + * Required. List of items in the Browse Carousel Card. Minimum of two + * items, maximum of ten. + * @type int $image_display_options + * Optional. Settings for displaying the image. Applies to every image in + * [items][google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.items]. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. List of items in the Browse Carousel Card. Minimum of two + * items, maximum of ten. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem items = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getItems() + { + return $this->items; + } + + /** + * Required. List of items in the Browse Carousel Card. Minimum of two + * items, maximum of ten. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem items = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setItems($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem::class); + $this->items = $arr; + + return $this; + } + + /** + * Optional. Settings for displaying the image. Applies to every image in + * [items][google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.items]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions image_display_options = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getImageDisplayOptions() + { + return $this->image_display_options; + } + + /** + * Optional. Settings for displaying the image. Applies to every image in + * [items][google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.items]. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions image_display_options = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setImageDisplayOptions($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\ImageDisplayOptions::class); + $this->image_display_options = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem.php new file mode 100644 index 0000000..5e885fb --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem.php @@ -0,0 +1,232 @@ +google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem + */ +class BrowseCarouselCardItem extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Action to present to the user. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction open_uri_action = 1; + */ + protected $open_uri_action = null; + /** + * Required. Title of the carousel item. Maximum of two lines of text. + * + * Generated from protobuf field string title = 2; + */ + protected $title = ''; + /** + * Optional. Description of the carousel item. Maximum of four lines of + * text. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Optional. Hero image for the carousel item. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image = null; + /** + * Optional. Text that appears at the bottom of the Browse Carousel + * Card. Maximum of one line of text. + * + * Generated from protobuf field string footer = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $footer = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem\OpenUrlAction $open_uri_action + * Required. Action to present to the user. + * @type string $title + * Required. Title of the carousel item. Maximum of two lines of text. + * @type string $description + * Optional. Description of the carousel item. Maximum of four lines of + * text. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $image + * Optional. Hero image for the carousel item. + * @type string $footer + * Optional. Text that appears at the bottom of the Browse Carousel + * Card. Maximum of one line of text. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Action to present to the user. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction open_uri_action = 1; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem\OpenUrlAction|null + */ + public function getOpenUriAction() + { + return $this->open_uri_action; + } + + public function hasOpenUriAction() + { + return isset($this->open_uri_action); + } + + public function clearOpenUriAction() + { + unset($this->open_uri_action); + } + + /** + * Required. Action to present to the user. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction open_uri_action = 1; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem\OpenUrlAction $var + * @return $this + */ + public function setOpenUriAction($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem\OpenUrlAction::class); + $this->open_uri_action = $var; + + return $this; + } + + /** + * Required. Title of the carousel item. Maximum of two lines of text. + * + * Generated from protobuf field string title = 2; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Required. Title of the carousel item. Maximum of two lines of text. + * + * Generated from protobuf field string title = 2; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. Description of the carousel item. Maximum of four lines of + * text. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. Description of the carousel item. Maximum of four lines of + * text. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. Hero image for the carousel item. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getImage() + { + return $this->image; + } + + public function hasImage() + { + return isset($this->image); + } + + public function clearImage() + { + unset($this->image); + } + + /** + * Optional. Hero image for the carousel item. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->image = $var; + + return $this; + } + + /** + * Optional. Text that appears at the bottom of the Browse Carousel + * Card. Maximum of one line of text. + * + * Generated from protobuf field string footer = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFooter() + { + return $this->footer; + } + + /** + * Optional. Text that appears at the bottom of the Browse Carousel + * Card. Maximum of one line of text. + * + * Generated from protobuf field string footer = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFooter($var) + { + GPBUtil::checkString($var, True); + $this->footer = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction.php new file mode 100644 index 0000000..980ce4e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction + */ +class OpenUrlAction extends \Google\Protobuf\Internal\Message +{ + /** + * Required. URL + * + * Generated from protobuf field string url = 1; + */ + protected $url = ''; + /** + * Optional. Specifies the type of viewer that is used when opening + * the URL. Defaults to opening via web browser. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint url_type_hint = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $url_type_hint = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $url + * Required. URL + * @type int $url_type_hint + * Optional. Specifies the type of viewer that is used when opening + * the URL. Defaults to opening via web browser. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. URL + * + * Generated from protobuf field string url = 1; + * @return string + */ + public function getUrl() + { + return $this->url; + } + + /** + * Required. URL + * + * Generated from protobuf field string url = 1; + * @param string $var + * @return $this + */ + public function setUrl($var) + { + GPBUtil::checkString($var, True); + $this->url = $var; + + return $this; + } + + /** + * Optional. Specifies the type of viewer that is used when opening + * the URL. Defaults to opening via web browser. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint url_type_hint = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getUrlTypeHint() + { + return $this->url_type_hint; + } + + /** + * Optional. Specifies the type of viewer that is used when opening + * the URL. Defaults to opening via web browser. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint url_type_hint = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setUrlTypeHint($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\Message\BrowseCarouselCard\BrowseCarouselCardItem\OpenUrlAction\UrlTypeHint::class); + $this->url_type_hint = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction/UrlTypeHint.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction/UrlTypeHint.php new file mode 100644 index 0000000..582b623 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/BrowseCarouselCardItem/OpenUrlAction/UrlTypeHint.php @@ -0,0 +1,63 @@ +google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.BrowseCarouselCardItem.OpenUrlAction.UrlTypeHint + */ +class UrlTypeHint +{ + /** + * Unspecified + * + * Generated from protobuf enum URL_TYPE_HINT_UNSPECIFIED = 0; + */ + const URL_TYPE_HINT_UNSPECIFIED = 0; + /** + * Url would be an amp action + * + * Generated from protobuf enum AMP_ACTION = 1; + */ + const AMP_ACTION = 1; + /** + * URL that points directly to AMP content, or to a canonical URL + * which refers to AMP content via . + * + * Generated from protobuf enum AMP_CONTENT = 2; + */ + const AMP_CONTENT = 2; + + private static $valueToName = [ + self::URL_TYPE_HINT_UNSPECIFIED => 'URL_TYPE_HINT_UNSPECIFIED', + self::AMP_ACTION => 'AMP_ACTION', + self::AMP_CONTENT => 'AMP_CONTENT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/ImageDisplayOptions.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/ImageDisplayOptions.php new file mode 100644 index 0000000..4537c64 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/BrowseCarouselCard/ImageDisplayOptions.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.Intent.Message.BrowseCarouselCard.ImageDisplayOptions + */ +class ImageDisplayOptions +{ + /** + * Fill the gaps between the image and the image container with gray + * bars. + * + * Generated from protobuf enum IMAGE_DISPLAY_OPTIONS_UNSPECIFIED = 0; + */ + const IMAGE_DISPLAY_OPTIONS_UNSPECIFIED = 0; + /** + * Fill the gaps between the image and the image container with gray + * bars. + * + * Generated from protobuf enum GRAY = 1; + */ + const GRAY = 1; + /** + * Fill the gaps between the image and the image container with white + * bars. + * + * Generated from protobuf enum WHITE = 2; + */ + const WHITE = 2; + /** + * Image is scaled such that the image width and height match or exceed + * the container dimensions. This may crop the top and bottom of the + * image if the scaled image height is greater than the container + * height, or crop the left and right of the image if the scaled image + * width is greater than the container width. This is similar to "Zoom + * Mode" on a widescreen TV when playing a 4:3 video. + * + * Generated from protobuf enum CROPPED = 3; + */ + const CROPPED = 3; + /** + * Pad the gaps between image and image frame with a blurred copy of the + * same image. + * + * Generated from protobuf enum BLURRED_BACKGROUND = 4; + */ + const BLURRED_BACKGROUND = 4; + + private static $valueToName = [ + self::IMAGE_DISPLAY_OPTIONS_UNSPECIFIED => 'IMAGE_DISPLAY_OPTIONS_UNSPECIFIED', + self::GRAY => 'GRAY', + self::WHITE => 'WHITE', + self::CROPPED => 'CROPPED', + self::BLURRED_BACKGROUND => 'BLURRED_BACKGROUND', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card.php new file mode 100644 index 0000000..74c1e50 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card.php @@ -0,0 +1,170 @@ +google.cloud.dialogflow.v2.Intent.Message.Card + */ +class Card extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The title of the card. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $title = ''; + /** + * Optional. The subtitle of the card. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $subtitle = ''; + /** + * Optional. The public URI to an image file for the card. + * + * Generated from protobuf field string image_uri = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image_uri = ''; + /** + * Optional. The collection of card buttons. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Card.Button buttons = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $buttons; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Optional. The title of the card. + * @type string $subtitle + * Optional. The subtitle of the card. + * @type string $image_uri + * Optional. The public URI to an image file for the card. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\Card\Button>|\Google\Protobuf\Internal\RepeatedField $buttons + * Optional. The collection of card buttons. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The title of the card. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Optional. The title of the card. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. The subtitle of the card. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getSubtitle() + { + return $this->subtitle; + } + + /** + * Optional. The subtitle of the card. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setSubtitle($var) + { + GPBUtil::checkString($var, True); + $this->subtitle = $var; + + return $this; + } + + /** + * Optional. The public URI to an image file for the card. + * + * Generated from protobuf field string image_uri = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getImageUri() + { + return $this->image_uri; + } + + /** + * Optional. The public URI to an image file for the card. + * + * Generated from protobuf field string image_uri = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setImageUri($var) + { + GPBUtil::checkString($var, True); + $this->image_uri = $var; + + return $this; + } + + /** + * Optional. The collection of card buttons. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Card.Button buttons = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getButtons() + { + return $this->buttons; + } + + /** + * Optional. The collection of card buttons. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Card.Button buttons = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\Card\Button>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setButtons($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\Card\Button::class); + $this->buttons = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card/Button.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card/Button.php new file mode 100644 index 0000000..6f5b404 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Card/Button.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.Intent.Message.Card.Button + */ +class Button extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The text to show on the button. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $text = ''; + /** + * Optional. The text to send back to the Dialogflow API or a URI to + * open. + * + * Generated from protobuf field string postback = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $postback = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * Optional. The text to show on the button. + * @type string $postback + * Optional. The text to send back to the Dialogflow API or a URI to + * open. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The text to show on the button. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Optional. The text to show on the button. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * Optional. The text to send back to the Dialogflow API or a URI to + * open. + * + * Generated from protobuf field string postback = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPostback() + { + return $this->postback; + } + + /** + * Optional. The text to send back to the Dialogflow API or a URI to + * open. + * + * Generated from protobuf field string postback = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPostback($var) + { + GPBUtil::checkString($var, True); + $this->postback = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect.php new file mode 100644 index 0000000..e38307d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.Intent.Message.CarouselSelect + */ +class CarouselSelect extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Carousel items. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item items = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + private $items; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect\Item>|\Google\Protobuf\Internal\RepeatedField $items + * Required. Carousel items. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Carousel items. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item items = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getItems() + { + return $this->items; + } + + /** + * Required. Carousel items. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item items = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect\Item>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setItems($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\CarouselSelect\Item::class); + $this->items = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect/Item.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect/Item.php new file mode 100644 index 0000000..aeb5aa5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/CarouselSelect/Item.php @@ -0,0 +1,190 @@ +google.cloud.dialogflow.v2.Intent.Message.CarouselSelect.Item + */ +class Item extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Additional info about the option item. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo info = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $info = null; + /** + * Required. Title of the carousel item. + * + * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $title = ''; + /** + * Optional. The body text of the card. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Optional. The image to display. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo $info + * Required. Additional info about the option item. + * @type string $title + * Required. Title of the carousel item. + * @type string $description + * Optional. The body text of the card. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $image + * Optional. The image to display. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Additional info about the option item. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo info = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo|null + */ + public function getInfo() + { + return $this->info; + } + + public function hasInfo() + { + return isset($this->info); + } + + public function clearInfo() + { + unset($this->info); + } + + /** + * Required. Additional info about the option item. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo info = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo $var + * @return $this + */ + public function setInfo($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo::class); + $this->info = $var; + + return $this; + } + + /** + * Required. Title of the carousel item. + * + * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Required. Title of the carousel item. + * + * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. The body text of the card. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. The body text of the card. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. The image to display. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getImage() + { + return $this->image; + } + + public function hasImage() + { + return isset($this->image); + } + + public function clearImage() + { + unset($this->image); + } + + /** + * Optional. The image to display. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->image = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties.php new file mode 100644 index 0000000..6a7b269 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties.php @@ -0,0 +1,103 @@ +google.cloud.dialogflow.v2.Intent.Message.ColumnProperties + */ +class ColumnProperties extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Column heading. + * + * Generated from protobuf field string header = 1; + */ + protected $header = ''; + /** + * Optional. Defines text alignment for all cells in this column. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment horizontal_alignment = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $horizontal_alignment = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $header + * Required. Column heading. + * @type int $horizontal_alignment + * Optional. Defines text alignment for all cells in this column. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Column heading. + * + * Generated from protobuf field string header = 1; + * @return string + */ + public function getHeader() + { + return $this->header; + } + + /** + * Required. Column heading. + * + * Generated from protobuf field string header = 1; + * @param string $var + * @return $this + */ + public function setHeader($var) + { + GPBUtil::checkString($var, True); + $this->header = $var; + + return $this; + } + + /** + * Optional. Defines text alignment for all cells in this column. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment horizontal_alignment = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getHorizontalAlignment() + { + return $this->horizontal_alignment; + } + + /** + * Optional. Defines text alignment for all cells in this column. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment horizontal_alignment = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setHorizontalAlignment($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\Message\ColumnProperties\HorizontalAlignment::class); + $this->horizontal_alignment = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties/HorizontalAlignment.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties/HorizontalAlignment.php new file mode 100644 index 0000000..b26ae3a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ColumnProperties/HorizontalAlignment.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.Intent.Message.ColumnProperties.HorizontalAlignment + */ +class HorizontalAlignment +{ + /** + * Text is aligned to the leading edge of the column. + * + * Generated from protobuf enum HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0; + */ + const HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0; + /** + * Text is aligned to the leading edge of the column. + * + * Generated from protobuf enum LEADING = 1; + */ + const LEADING = 1; + /** + * Text is centered in the column. + * + * Generated from protobuf enum CENTER = 2; + */ + const CENTER = 2; + /** + * Text is aligned to the trailing edge of the column. + * + * Generated from protobuf enum TRAILING = 3; + */ + const TRAILING = 3; + + private static $valueToName = [ + self::HORIZONTAL_ALIGNMENT_UNSPECIFIED => 'HORIZONTAL_ALIGNMENT_UNSPECIFIED', + self::LEADING => 'LEADING', + self::CENTER => 'CENTER', + self::TRAILING => 'TRAILING', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Image.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Image.php new file mode 100644 index 0000000..b205be4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Image.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.Intent.Message.Image + */ +class Image extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The public URI to an image file. + * + * Generated from protobuf field string image_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image_uri = ''; + /** + * Optional. A text description of the image to be used for accessibility, + * e.g., screen readers. + * + * Generated from protobuf field string accessibility_text = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $accessibility_text = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $image_uri + * Optional. The public URI to an image file. + * @type string $accessibility_text + * Optional. A text description of the image to be used for accessibility, + * e.g., screen readers. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The public URI to an image file. + * + * Generated from protobuf field string image_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getImageUri() + { + return $this->image_uri; + } + + /** + * Optional. The public URI to an image file. + * + * Generated from protobuf field string image_uri = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setImageUri($var) + { + GPBUtil::checkString($var, True); + $this->image_uri = $var; + + return $this; + } + + /** + * Optional. A text description of the image to be used for accessibility, + * e.g., screen readers. + * + * Generated from protobuf field string accessibility_text = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getAccessibilityText() + { + return $this->accessibility_text; + } + + /** + * Optional. A text description of the image to be used for accessibility, + * e.g., screen readers. + * + * Generated from protobuf field string accessibility_text = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setAccessibilityText($var) + { + GPBUtil::checkString($var, True); + $this->accessibility_text = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/LinkOutSuggestion.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/LinkOutSuggestion.php new file mode 100644 index 0000000..95de65f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/LinkOutSuggestion.php @@ -0,0 +1,107 @@ +google.cloud.dialogflow.v2.Intent.Message.LinkOutSuggestion + */ +class LinkOutSuggestion extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the app or site this chip is linking to. + * + * Generated from protobuf field string destination_name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $destination_name = ''; + /** + * Required. The URI of the app or site to open when the user taps the + * suggestion chip. + * + * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $uri = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $destination_name + * Required. The name of the app or site this chip is linking to. + * @type string $uri + * Required. The URI of the app or site to open when the user taps the + * suggestion chip. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the app or site this chip is linking to. + * + * Generated from protobuf field string destination_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDestinationName() + { + return $this->destination_name; + } + + /** + * Required. The name of the app or site this chip is linking to. + * + * Generated from protobuf field string destination_name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDestinationName($var) + { + GPBUtil::checkString($var, True); + $this->destination_name = $var; + + return $this; + } + + /** + * Required. The URI of the app or site to open when the user taps the + * suggestion chip. + * + * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * Required. The URI of the app or site to open when the user taps the + * suggestion chip. + * + * Generated from protobuf field string uri = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect.php new file mode 100644 index 0000000..a684280 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect.php @@ -0,0 +1,136 @@ +google.cloud.dialogflow.v2.Intent.Message.ListSelect + */ +class ListSelect extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The overall title of the list. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $title = ''; + /** + * Required. List items. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item items = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $items; + /** + * Optional. Subtitle of the list. + * + * Generated from protobuf field string subtitle = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $subtitle = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Optional. The overall title of the list. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect\Item>|\Google\Protobuf\Internal\RepeatedField $items + * Required. List items. + * @type string $subtitle + * Optional. Subtitle of the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The overall title of the list. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Optional. The overall title of the list. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Required. List items. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item items = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getItems() + { + return $this->items; + } + + /** + * Required. List items. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item items = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect\Item>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setItems($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\ListSelect\Item::class); + $this->items = $arr; + + return $this; + } + + /** + * Optional. Subtitle of the list. + * + * Generated from protobuf field string subtitle = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getSubtitle() + { + return $this->subtitle; + } + + /** + * Optional. Subtitle of the list. + * + * Generated from protobuf field string subtitle = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setSubtitle($var) + { + GPBUtil::checkString($var, True); + $this->subtitle = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect/Item.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect/Item.php new file mode 100644 index 0000000..b3486d9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/ListSelect/Item.php @@ -0,0 +1,190 @@ +google.cloud.dialogflow.v2.Intent.Message.ListSelect.Item + */ +class Item extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Additional information about this option. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo info = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $info = null; + /** + * Required. The title of the list item. + * + * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $title = ''; + /** + * Optional. The main text describing the item. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Optional. The image to display. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo $info + * Required. Additional information about this option. + * @type string $title + * Required. The title of the list item. + * @type string $description + * Optional. The main text describing the item. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $image + * Optional. The image to display. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Additional information about this option. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo info = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo|null + */ + public function getInfo() + { + return $this->info; + } + + public function hasInfo() + { + return isset($this->info); + } + + public function clearInfo() + { + unset($this->info); + } + + /** + * Required. Additional information about this option. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo info = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo $var + * @return $this + */ + public function setInfo($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\SelectItemInfo::class); + $this->info = $var; + + return $this; + } + + /** + * Required. The title of the list item. + * + * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Required. The title of the list item. + * + * Generated from protobuf field string title = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. The main text describing the item. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. The main text describing the item. + * + * Generated from protobuf field string description = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. The image to display. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getImage() + { + return $this->image; + } + + public function hasImage() + { + return isset($this->image); + } + + public function clearImage() + { + unset($this->image); + } + + /** + * Optional. The image to display. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->image = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent.php new file mode 100644 index 0000000..783ad40 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.Intent.Message.MediaContent + */ +class MediaContent extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. What type of media is the content (ie "audio"). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType media_type = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $media_type = 0; + /** + * Required. List of media objects. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject media_objects = 2; + */ + private $media_objects; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $media_type + * Optional. What type of media is the content (ie "audio"). + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent\ResponseMediaObject>|\Google\Protobuf\Internal\RepeatedField $media_objects + * Required. List of media objects. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. What type of media is the content (ie "audio"). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType media_type = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getMediaType() + { + return $this->media_type; + } + + /** + * Optional. What type of media is the content (ie "audio"). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType media_type = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setMediaType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent\ResponseMediaType::class); + $this->media_type = $var; + + return $this; + } + + /** + * Required. List of media objects. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject media_objects = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMediaObjects() + { + return $this->media_objects; + } + + /** + * Required. List of media objects. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject media_objects = 2; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent\ResponseMediaObject>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMediaObjects($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\MediaContent\ResponseMediaObject::class); + $this->media_objects = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaObject.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaObject.php new file mode 100644 index 0000000..6a47d26 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaObject.php @@ -0,0 +1,211 @@ +google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaObject + */ +class ResponseMediaObject extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Name of media card. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Optional. Description of media card. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Required. Url where the media is stored. + * + * Generated from protobuf field string content_url = 5; + */ + protected $content_url = ''; + protected $image; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. Name of media card. + * @type string $description + * Optional. Description of media card. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $large_image + * Optional. Image to display above media content. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $icon + * Optional. Icon to display above media content. + * @type string $content_url + * Required. Url where the media is stored. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Name of media card. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. Name of media card. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. Description of media card. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. Description of media card. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. Image to display above media content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image large_image = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getLargeImage() + { + return $this->readOneof(3); + } + + public function hasLargeImage() + { + return $this->hasOneof(3); + } + + /** + * Optional. Image to display above media content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image large_image = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setLargeImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Optional. Icon to display above media content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image icon = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getIcon() + { + return $this->readOneof(4); + } + + public function hasIcon() + { + return $this->hasOneof(4); + } + + /** + * Optional. Icon to display above media content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image icon = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setIcon($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Required. Url where the media is stored. + * + * Generated from protobuf field string content_url = 5; + * @return string + */ + public function getContentUrl() + { + return $this->content_url; + } + + /** + * Required. Url where the media is stored. + * + * Generated from protobuf field string content_url = 5; + * @param string $var + * @return $this + */ + public function setContentUrl($var) + { + GPBUtil::checkString($var, True); + $this->content_url = $var; + + return $this; + } + + /** + * @return string + */ + public function getImage() + { + return $this->whichOneof("image"); + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaType.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaType.php new file mode 100644 index 0000000..3b1f45a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/MediaContent/ResponseMediaType.php @@ -0,0 +1,55 @@ +google.cloud.dialogflow.v2.Intent.Message.MediaContent.ResponseMediaType + */ +class ResponseMediaType +{ + /** + * Unspecified. + * + * Generated from protobuf enum RESPONSE_MEDIA_TYPE_UNSPECIFIED = 0; + */ + const RESPONSE_MEDIA_TYPE_UNSPECIFIED = 0; + /** + * Response media type is audio. + * + * Generated from protobuf enum AUDIO = 1; + */ + const AUDIO = 1; + + private static $valueToName = [ + self::RESPONSE_MEDIA_TYPE_UNSPECIFIED => 'RESPONSE_MEDIA_TYPE_UNSPECIFIED', + self::AUDIO => 'AUDIO', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Platform.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Platform.php new file mode 100644 index 0000000..99f5e3c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Platform.php @@ -0,0 +1,114 @@ +google.cloud.dialogflow.v2.Intent.Message.Platform + */ +class Platform +{ + /** + * Default platform. + * + * Generated from protobuf enum PLATFORM_UNSPECIFIED = 0; + */ + const PLATFORM_UNSPECIFIED = 0; + /** + * Facebook. + * + * Generated from protobuf enum FACEBOOK = 1; + */ + const FACEBOOK = 1; + /** + * Slack. + * + * Generated from protobuf enum SLACK = 2; + */ + const SLACK = 2; + /** + * Telegram. + * + * Generated from protobuf enum TELEGRAM = 3; + */ + const TELEGRAM = 3; + /** + * Kik. + * + * Generated from protobuf enum KIK = 4; + */ + const KIK = 4; + /** + * Skype. + * + * Generated from protobuf enum SKYPE = 5; + */ + const SKYPE = 5; + /** + * Line. + * + * Generated from protobuf enum LINE = 6; + */ + const LINE = 6; + /** + * Viber. + * + * Generated from protobuf enum VIBER = 7; + */ + const VIBER = 7; + /** + * Google Assistant + * See [Dialogflow webhook + * format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json) + * + * Generated from protobuf enum ACTIONS_ON_GOOGLE = 8; + */ + const ACTIONS_ON_GOOGLE = 8; + /** + * Google Hangouts. + * + * Generated from protobuf enum GOOGLE_HANGOUTS = 11; + */ + const GOOGLE_HANGOUTS = 11; + + private static $valueToName = [ + self::PLATFORM_UNSPECIFIED => 'PLATFORM_UNSPECIFIED', + self::FACEBOOK => 'FACEBOOK', + self::SLACK => 'SLACK', + self::TELEGRAM => 'TELEGRAM', + self::KIK => 'KIK', + self::SKYPE => 'SKYPE', + self::LINE => 'LINE', + self::VIBER => 'VIBER', + self::ACTIONS_ON_GOOGLE => 'ACTIONS_ON_GOOGLE', + self::GOOGLE_HANGOUTS => 'GOOGLE_HANGOUTS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/QuickReplies.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/QuickReplies.php new file mode 100644 index 0000000..fab1f5d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/QuickReplies.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.Intent.Message.QuickReplies + */ +class QuickReplies extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The title of the collection of quick replies. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $title = ''; + /** + * Optional. The collection of quick replies. + * + * Generated from protobuf field repeated string quick_replies = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $quick_replies; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Optional. The title of the collection of quick replies. + * @type array|\Google\Protobuf\Internal\RepeatedField $quick_replies + * Optional. The collection of quick replies. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The title of the collection of quick replies. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Optional. The title of the collection of quick replies. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. The collection of quick replies. + * + * Generated from protobuf field repeated string quick_replies = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getQuickReplies() + { + return $this->quick_replies; + } + + /** + * Optional. The collection of quick replies. + * + * Generated from protobuf field repeated string quick_replies = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setQuickReplies($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->quick_replies = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SelectItemInfo.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SelectItemInfo.php new file mode 100644 index 0000000..4fd924c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SelectItemInfo.php @@ -0,0 +1,111 @@ +google.cloud.dialogflow.v2.Intent.Message.SelectItemInfo + */ +class SelectItemInfo extends \Google\Protobuf\Internal\Message +{ + /** + * Required. A unique key that will be sent back to the agent if this + * response is given. + * + * Generated from protobuf field string key = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $key = ''; + /** + * Optional. A list of synonyms that can also be used to trigger this + * item in dialog. + * + * Generated from protobuf field repeated string synonyms = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $synonyms; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $key + * Required. A unique key that will be sent back to the agent if this + * response is given. + * @type array|\Google\Protobuf\Internal\RepeatedField $synonyms + * Optional. A list of synonyms that can also be used to trigger this + * item in dialog. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. A unique key that will be sent back to the agent if this + * response is given. + * + * Generated from protobuf field string key = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getKey() + { + return $this->key; + } + + /** + * Required. A unique key that will be sent back to the agent if this + * response is given. + * + * Generated from protobuf field string key = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setKey($var) + { + GPBUtil::checkString($var, True); + $this->key = $var; + + return $this; + } + + /** + * Optional. A list of synonyms that can also be used to trigger this + * item in dialog. + * + * Generated from protobuf field repeated string synonyms = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSynonyms() + { + return $this->synonyms; + } + + /** + * Optional. A list of synonyms that can also be used to trigger this + * item in dialog. + * + * Generated from protobuf field repeated string synonyms = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSynonyms($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->synonyms = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponse.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponse.php new file mode 100644 index 0000000..58a0574 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponse.php @@ -0,0 +1,148 @@ +google.cloud.dialogflow.v2.Intent.Message.SimpleResponse + */ +class SimpleResponse extends \Google\Protobuf\Internal\Message +{ + /** + * One of text_to_speech or ssml must be provided. The plain text of the + * speech output. Mutually exclusive with ssml. + * + * Generated from protobuf field string text_to_speech = 1; + */ + protected $text_to_speech = ''; + /** + * One of text_to_speech or ssml must be provided. Structured spoken + * response to the user in the SSML format. Mutually exclusive with + * text_to_speech. + * + * Generated from protobuf field string ssml = 2; + */ + protected $ssml = ''; + /** + * Optional. The text to display. + * + * Generated from protobuf field string display_text = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $display_text = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text_to_speech + * One of text_to_speech or ssml must be provided. The plain text of the + * speech output. Mutually exclusive with ssml. + * @type string $ssml + * One of text_to_speech or ssml must be provided. Structured spoken + * response to the user in the SSML format. Mutually exclusive with + * text_to_speech. + * @type string $display_text + * Optional. The text to display. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * One of text_to_speech or ssml must be provided. The plain text of the + * speech output. Mutually exclusive with ssml. + * + * Generated from protobuf field string text_to_speech = 1; + * @return string + */ + public function getTextToSpeech() + { + return $this->text_to_speech; + } + + /** + * One of text_to_speech or ssml must be provided. The plain text of the + * speech output. Mutually exclusive with ssml. + * + * Generated from protobuf field string text_to_speech = 1; + * @param string $var + * @return $this + */ + public function setTextToSpeech($var) + { + GPBUtil::checkString($var, True); + $this->text_to_speech = $var; + + return $this; + } + + /** + * One of text_to_speech or ssml must be provided. Structured spoken + * response to the user in the SSML format. Mutually exclusive with + * text_to_speech. + * + * Generated from protobuf field string ssml = 2; + * @return string + */ + public function getSsml() + { + return $this->ssml; + } + + /** + * One of text_to_speech or ssml must be provided. Structured spoken + * response to the user in the SSML format. Mutually exclusive with + * text_to_speech. + * + * Generated from protobuf field string ssml = 2; + * @param string $var + * @return $this + */ + public function setSsml($var) + { + GPBUtil::checkString($var, True); + $this->ssml = $var; + + return $this; + } + + /** + * Optional. The text to display. + * + * Generated from protobuf field string display_text = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDisplayText() + { + return $this->display_text; + } + + /** + * Optional. The text to display. + * + * Generated from protobuf field string display_text = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDisplayText($var) + { + GPBUtil::checkString($var, True); + $this->display_text = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponses.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponses.php new file mode 100644 index 0000000..c2b44da --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/SimpleResponses.php @@ -0,0 +1,71 @@ +google.cloud.dialogflow.v2.Intent.Message.SimpleResponses + */ +class SimpleResponses extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The list of simple responses. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.SimpleResponse simple_responses = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + private $simple_responses; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponse>|\Google\Protobuf\Internal\RepeatedField $simple_responses + * Required. The list of simple responses. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The list of simple responses. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.SimpleResponse simple_responses = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSimpleResponses() + { + return $this->simple_responses; + } + + /** + * Required. The list of simple responses. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.SimpleResponse simple_responses = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponse>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSimpleResponses($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\SimpleResponse::class); + $this->simple_responses = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestion.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestion.php new file mode 100644 index 0000000..f60117c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestion.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.Intent.Message.Suggestion + */ +class Suggestion extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The text shown the in the suggestion chip. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $title = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Required. The text shown the in the suggestion chip. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The text shown the in the suggestion chip. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Required. The text shown the in the suggestion chip. + * + * Generated from protobuf field string title = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestions.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestions.php new file mode 100644 index 0000000..96575a9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Suggestions.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.Intent.Message.Suggestions + */ +class Suggestions extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The list of suggested replies. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Suggestion suggestions = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + private $suggestions; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\Suggestion>|\Google\Protobuf\Internal\RepeatedField $suggestions + * Required. The list of suggested replies. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The list of suggested replies. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Suggestion suggestions = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSuggestions() + { + return $this->suggestions; + } + + /** + * Required. The list of suggested replies. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.Suggestion suggestions = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\Suggestion>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSuggestions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\Suggestion::class); + $this->suggestions = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCard.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCard.php new file mode 100644 index 0000000..936a8ed --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCard.php @@ -0,0 +1,248 @@ +google.cloud.dialogflow.v2.Intent.Message.TableCard + */ +class TableCard extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Title of the card. + * + * Generated from protobuf field string title = 1; + */ + protected $title = ''; + /** + * Optional. Subtitle to the title. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $subtitle = ''; + /** + * Optional. Image which should be displayed on the card. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $image = null; + /** + * Optional. Display properties for the columns in this table. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.ColumnProperties column_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $column_properties; + /** + * Optional. Rows in this table of data. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.TableCardRow rows = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $rows; + /** + * Optional. List of buttons for the card. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button buttons = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $buttons; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * Required. Title of the card. + * @type string $subtitle + * Optional. Subtitle to the title. + * @type \Google\Cloud\Dialogflow\V2\Intent\Message\Image $image + * Optional. Image which should be displayed on the card. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\ColumnProperties>|\Google\Protobuf\Internal\RepeatedField $column_properties + * Optional. Display properties for the columns in this table. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\TableCardRow>|\Google\Protobuf\Internal\RepeatedField $rows + * Optional. Rows in this table of data. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button>|\Google\Protobuf\Internal\RepeatedField $buttons + * Optional. List of buttons for the card. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Title of the card. + * + * Generated from protobuf field string title = 1; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Required. Title of the card. + * + * Generated from protobuf field string title = 1; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. Subtitle to the title. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getSubtitle() + { + return $this->subtitle; + } + + /** + * Optional. Subtitle to the title. + * + * Generated from protobuf field string subtitle = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setSubtitle($var) + { + GPBUtil::checkString($var, True); + $this->subtitle = $var; + + return $this; + } + + /** + * Optional. Image which should be displayed on the card. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\Intent\Message\Image|null + */ + public function getImage() + { + return $this->image; + } + + public function hasImage() + { + return isset($this->image); + } + + public function clearImage() + { + unset($this->image); + } + + /** + * Optional. Image which should be displayed on the card. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.Message.Image image = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\Intent\Message\Image $var + * @return $this + */ + public function setImage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent\Message\Image::class); + $this->image = $var; + + return $this; + } + + /** + * Optional. Display properties for the columns in this table. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.ColumnProperties column_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getColumnProperties() + { + return $this->column_properties; + } + + /** + * Optional. Display properties for the columns in this table. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.ColumnProperties column_properties = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\ColumnProperties>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setColumnProperties($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\ColumnProperties::class); + $this->column_properties = $arr; + + return $this; + } + + /** + * Optional. Rows in this table of data. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.TableCardRow rows = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRows() + { + return $this->rows; + } + + /** + * Optional. Rows in this table of data. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.TableCardRow rows = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\TableCardRow>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRows($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\TableCardRow::class); + $this->rows = $arr; + + return $this; + } + + /** + * Optional. List of buttons for the card. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button buttons = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getButtons() + { + return $this->buttons; + } + + /** + * Optional. List of buttons for the card. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.BasicCard.Button buttons = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setButtons($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\BasicCard\Button::class); + $this->buttons = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardCell.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardCell.php new file mode 100644 index 0000000..1136895 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardCell.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.Intent.Message.TableCardCell + */ +class TableCardCell extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Text in this cell. + * + * Generated from protobuf field string text = 1; + */ + protected $text = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * Required. Text in this cell. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. Text in this cell. + * + * Generated from protobuf field string text = 1; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Required. Text in this cell. + * + * Generated from protobuf field string text = 1; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardRow.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardRow.php new file mode 100644 index 0000000..3d7e229 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/TableCardRow.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.Intent.Message.TableCardRow + */ +class TableCardRow extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. List of cells that make up this row. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.TableCardCell cells = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $cells; + /** + * Optional. Whether to add a visual divider after this row. + * + * Generated from protobuf field bool divider_after = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $divider_after = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message\TableCardCell>|\Google\Protobuf\Internal\RepeatedField $cells + * Optional. List of cells that make up this row. + * @type bool $divider_after + * Optional. Whether to add a visual divider after this row. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. List of cells that make up this row. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.TableCardCell cells = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getCells() + { + return $this->cells; + } + + /** + * Optional. List of cells that make up this row. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message.TableCardCell cells = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message\TableCardCell>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setCells($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message\TableCardCell::class); + $this->cells = $arr; + + return $this; + } + + /** + * Optional. Whether to add a visual divider after this row. + * + * Generated from protobuf field bool divider_after = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getDividerAfter() + { + return $this->divider_after; + } + + /** + * Optional. Whether to add a visual divider after this row. + * + * Generated from protobuf field bool divider_after = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setDividerAfter($var) + { + GPBUtil::checkBool($var); + $this->divider_after = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Text.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Text.php new file mode 100644 index 0000000..6ce5f64 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Message/Text.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.Intent.Message.Text + */ +class Text extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The collection of the agent's responses. + * + * Generated from protobuf field repeated string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $text; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $text + * Optional. The collection of the agent's responses. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The collection of the agent's responses. + * + * Generated from protobuf field repeated string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getText() + { + return $this->text; + } + + /** + * Optional. The collection of the agent's responses. + * + * Generated from protobuf field repeated string text = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setText($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->text = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/Parameter.php b/vendor/google/cloud-dialogflow/src/V2/Intent/Parameter.php new file mode 100644 index 0000000..1488ddb --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/Parameter.php @@ -0,0 +1,358 @@ +google.cloud.dialogflow.v2.Intent.Parameter + */ +class Parameter extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of this parameter. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Required. The name of the parameter. + * + * Generated from protobuf field string display_name = 2; + */ + protected $display_name = ''; + /** + * Optional. The definition of the parameter value. It can be: + * - a constant string, + * - a parameter value defined as `$parameter_name`, + * - an original parameter value defined as `$parameter_name.original`, + * - a parameter value from some context defined as + * `#context_name.parameter_name`. + * + * Generated from protobuf field string value = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $value = ''; + /** + * Optional. The default value to use when the `value` yields an empty + * result. + * Default values can be extracted from contexts by using the following + * syntax: `#context_name.parameter_name`. + * + * Generated from protobuf field string default_value = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $default_value = ''; + /** + * Optional. The name of the entity type, prefixed with `@`, that + * describes values of the parameter. If the parameter is + * required, this must be provided. + * + * Generated from protobuf field string entity_type_display_name = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $entity_type_display_name = ''; + /** + * Optional. Indicates whether the parameter is required. That is, + * whether the intent cannot be completed without collecting the parameter + * value. + * + * Generated from protobuf field bool mandatory = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $mandatory = false; + /** + * Optional. The collection of prompts that the agent can present to the + * user in order to collect a value for the parameter. + * + * Generated from protobuf field repeated string prompts = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $prompts; + /** + * Optional. Indicates whether the parameter represents a list of values. + * + * Generated from protobuf field bool is_list = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $is_list = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The unique identifier of this parameter. + * @type string $display_name + * Required. The name of the parameter. + * @type string $value + * Optional. The definition of the parameter value. It can be: + * - a constant string, + * - a parameter value defined as `$parameter_name`, + * - an original parameter value defined as `$parameter_name.original`, + * - a parameter value from some context defined as + * `#context_name.parameter_name`. + * @type string $default_value + * Optional. The default value to use when the `value` yields an empty + * result. + * Default values can be extracted from contexts by using the following + * syntax: `#context_name.parameter_name`. + * @type string $entity_type_display_name + * Optional. The name of the entity type, prefixed with `@`, that + * describes values of the parameter. If the parameter is + * required, this must be provided. + * @type bool $mandatory + * Optional. Indicates whether the parameter is required. That is, + * whether the intent cannot be completed without collecting the parameter + * value. + * @type array|\Google\Protobuf\Internal\RepeatedField $prompts + * Optional. The collection of prompts that the agent can present to the + * user in order to collect a value for the parameter. + * @type bool $is_list + * Optional. Indicates whether the parameter represents a list of values. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of this parameter. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The unique identifier of this parameter. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The name of the parameter. + * + * Generated from protobuf field string display_name = 2; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The name of the parameter. + * + * Generated from protobuf field string display_name = 2; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Optional. The definition of the parameter value. It can be: + * - a constant string, + * - a parameter value defined as `$parameter_name`, + * - an original parameter value defined as `$parameter_name.original`, + * - a parameter value from some context defined as + * `#context_name.parameter_name`. + * + * Generated from protobuf field string value = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * Optional. The definition of the parameter value. It can be: + * - a constant string, + * - a parameter value defined as `$parameter_name`, + * - an original parameter value defined as `$parameter_name.original`, + * - a parameter value from some context defined as + * `#context_name.parameter_name`. + * + * Generated from protobuf field string value = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setValue($var) + { + GPBUtil::checkString($var, True); + $this->value = $var; + + return $this; + } + + /** + * Optional. The default value to use when the `value` yields an empty + * result. + * Default values can be extracted from contexts by using the following + * syntax: `#context_name.parameter_name`. + * + * Generated from protobuf field string default_value = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDefaultValue() + { + return $this->default_value; + } + + /** + * Optional. The default value to use when the `value` yields an empty + * result. + * Default values can be extracted from contexts by using the following + * syntax: `#context_name.parameter_name`. + * + * Generated from protobuf field string default_value = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDefaultValue($var) + { + GPBUtil::checkString($var, True); + $this->default_value = $var; + + return $this; + } + + /** + * Optional. The name of the entity type, prefixed with `@`, that + * describes values of the parameter. If the parameter is + * required, this must be provided. + * + * Generated from protobuf field string entity_type_display_name = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getEntityTypeDisplayName() + { + return $this->entity_type_display_name; + } + + /** + * Optional. The name of the entity type, prefixed with `@`, that + * describes values of the parameter. If the parameter is + * required, this must be provided. + * + * Generated from protobuf field string entity_type_display_name = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setEntityTypeDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->entity_type_display_name = $var; + + return $this; + } + + /** + * Optional. Indicates whether the parameter is required. That is, + * whether the intent cannot be completed without collecting the parameter + * value. + * + * Generated from protobuf field bool mandatory = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getMandatory() + { + return $this->mandatory; + } + + /** + * Optional. Indicates whether the parameter is required. That is, + * whether the intent cannot be completed without collecting the parameter + * value. + * + * Generated from protobuf field bool mandatory = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setMandatory($var) + { + GPBUtil::checkBool($var); + $this->mandatory = $var; + + return $this; + } + + /** + * Optional. The collection of prompts that the agent can present to the + * user in order to collect a value for the parameter. + * + * Generated from protobuf field repeated string prompts = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPrompts() + { + return $this->prompts; + } + + /** + * Optional. The collection of prompts that the agent can present to the + * user in order to collect a value for the parameter. + * + * Generated from protobuf field repeated string prompts = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPrompts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->prompts = $arr; + + return $this; + } + + /** + * Optional. Indicates whether the parameter represents a list of values. + * + * Generated from protobuf field bool is_list = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getIsList() + { + return $this->is_list; + } + + /** + * Optional. Indicates whether the parameter represents a list of values. + * + * Generated from protobuf field bool is_list = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setIsList($var) + { + GPBUtil::checkBool($var); + $this->is_list = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase.php b/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase.php new file mode 100644 index 0000000..01ea73e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase.php @@ -0,0 +1,238 @@ +google.cloud.dialogflow.v2.Intent.TrainingPhrase + */ +class TrainingPhrase extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The unique identifier of this training phrase. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $name = ''; + /** + * Required. The type of the training phrase. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type type = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $type = 0; + /** + * Required. The ordered list of training phrase parts. + * The parts are concatenated in order to form the training phrase. + * Note: The API does not automatically annotate training phrases like the + * Dialogflow Console does. + * Note: Do not forget to include whitespace at part boundaries, + * so the training phrase is well formatted when the parts are concatenated. + * If the training phrase does not need to be annotated with parameters, + * you just need a single part with only the + * [Part.text][google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.text] + * field set. + * If you want to annotate the training phrase, you must create multiple + * parts, where the fields of each part are populated in one of two ways: + * - `Part.text` is set to a part of the phrase that has no parameters. + * - `Part.text` is set to a part of the phrase that you want to annotate, + * and the `entity_type`, `alias`, and `user_defined` fields are all + * set. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part parts = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + private $parts; + /** + * Optional. Indicates how many times this example was added to + * the intent. Each time a developer adds an existing sample by editing an + * intent or training, this counter is increased. + * + * Generated from protobuf field int32 times_added_count = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $times_added_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. The unique identifier of this training phrase. + * @type int $type + * Required. The type of the training phrase. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase\Part>|\Google\Protobuf\Internal\RepeatedField $parts + * Required. The ordered list of training phrase parts. + * The parts are concatenated in order to form the training phrase. + * Note: The API does not automatically annotate training phrases like the + * Dialogflow Console does. + * Note: Do not forget to include whitespace at part boundaries, + * so the training phrase is well formatted when the parts are concatenated. + * If the training phrase does not need to be annotated with parameters, + * you just need a single part with only the + * [Part.text][google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.text] + * field set. + * If you want to annotate the training phrase, you must create multiple + * parts, where the fields of each part are populated in one of two ways: + * - `Part.text` is set to a part of the phrase that has no parameters. + * - `Part.text` is set to a part of the phrase that you want to annotate, + * and the `entity_type`, `alias`, and `user_defined` fields are all + * set. + * @type int $times_added_count + * Optional. Indicates how many times this example was added to + * the intent. Each time a developer adds an existing sample by editing an + * intent or training, this counter is increased. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The unique identifier of this training phrase. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. The unique identifier of this training phrase. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The type of the training phrase. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type type = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * Required. The type of the training phrase. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type type = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase\Type::class); + $this->type = $var; + + return $this; + } + + /** + * Required. The ordered list of training phrase parts. + * The parts are concatenated in order to form the training phrase. + * Note: The API does not automatically annotate training phrases like the + * Dialogflow Console does. + * Note: Do not forget to include whitespace at part boundaries, + * so the training phrase is well formatted when the parts are concatenated. + * If the training phrase does not need to be annotated with parameters, + * you just need a single part with only the + * [Part.text][google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.text] + * field set. + * If you want to annotate the training phrase, you must create multiple + * parts, where the fields of each part are populated in one of two ways: + * - `Part.text` is set to a part of the phrase that has no parameters. + * - `Part.text` is set to a part of the phrase that you want to annotate, + * and the `entity_type`, `alias`, and `user_defined` fields are all + * set. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part parts = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getParts() + { + return $this->parts; + } + + /** + * Required. The ordered list of training phrase parts. + * The parts are concatenated in order to form the training phrase. + * Note: The API does not automatically annotate training phrases like the + * Dialogflow Console does. + * Note: Do not forget to include whitespace at part boundaries, + * so the training phrase is well formatted when the parts are concatenated. + * If the training phrase does not need to be annotated with parameters, + * you just need a single part with only the + * [Part.text][google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part.text] + * field set. + * If you want to annotate the training phrase, you must create multiple + * parts, where the fields of each part are populated in one of two ways: + * - `Part.text` is set to a part of the phrase that has no parameters. + * - `Part.text` is set to a part of the phrase that you want to annotate, + * and the `entity_type`, `alias`, and `user_defined` fields are all + * set. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part parts = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase\Part>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setParts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\TrainingPhrase\Part::class); + $this->parts = $arr; + + return $this; + } + + /** + * Optional. Indicates how many times this example was added to + * the intent. Each time a developer adds an existing sample by editing an + * intent or training, this counter is increased. + * + * Generated from protobuf field int32 times_added_count = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getTimesAddedCount() + { + return $this->times_added_count; + } + + /** + * Optional. Indicates how many times this example was added to + * the intent. Each time a developer adds an existing sample by editing an + * intent or training, this counter is increased. + * + * Generated from protobuf field int32 times_added_count = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setTimesAddedCount($var) + { + GPBUtil::checkInt32($var); + $this->times_added_count = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Part.php b/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Part.php new file mode 100644 index 0000000..51adb1b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Part.php @@ -0,0 +1,194 @@ +google.cloud.dialogflow.v2.Intent.TrainingPhrase.Part + */ +class Part extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The text for this part. + * + * Generated from protobuf field string text = 1; + */ + protected $text = ''; + /** + * Optional. The entity type name prefixed with `@`. + * This field is required for annotated parts of the training phrase. + * + * Generated from protobuf field string entity_type = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $entity_type = ''; + /** + * Optional. The parameter name for the value extracted from the + * annotated part of the example. + * This field is required for annotated parts of the training phrase. + * + * Generated from protobuf field string alias = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $alias = ''; + /** + * Optional. Indicates whether the text was manually annotated. + * This field is set to true when the Dialogflow Console is used to + * manually annotate the part. When creating an annotated part with the + * API, you must set this to true. + * + * Generated from protobuf field bool user_defined = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $user_defined = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * Required. The text for this part. + * @type string $entity_type + * Optional. The entity type name prefixed with `@`. + * This field is required for annotated parts of the training phrase. + * @type string $alias + * Optional. The parameter name for the value extracted from the + * annotated part of the example. + * This field is required for annotated parts of the training phrase. + * @type bool $user_defined + * Optional. Indicates whether the text was manually annotated. + * This field is set to true when the Dialogflow Console is used to + * manually annotate the part. When creating an annotated part with the + * API, you must set this to true. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The text for this part. + * + * Generated from protobuf field string text = 1; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Required. The text for this part. + * + * Generated from protobuf field string text = 1; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * Optional. The entity type name prefixed with `@`. + * This field is required for annotated parts of the training phrase. + * + * Generated from protobuf field string entity_type = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getEntityType() + { + return $this->entity_type; + } + + /** + * Optional. The entity type name prefixed with `@`. + * This field is required for annotated parts of the training phrase. + * + * Generated from protobuf field string entity_type = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setEntityType($var) + { + GPBUtil::checkString($var, True); + $this->entity_type = $var; + + return $this; + } + + /** + * Optional. The parameter name for the value extracted from the + * annotated part of the example. + * This field is required for annotated parts of the training phrase. + * + * Generated from protobuf field string alias = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getAlias() + { + return $this->alias; + } + + /** + * Optional. The parameter name for the value extracted from the + * annotated part of the example. + * This field is required for annotated parts of the training phrase. + * + * Generated from protobuf field string alias = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setAlias($var) + { + GPBUtil::checkString($var, True); + $this->alias = $var; + + return $this; + } + + /** + * Optional. Indicates whether the text was manually annotated. + * This field is set to true when the Dialogflow Console is used to + * manually annotate the part. When creating an annotated part with the + * API, you must set this to true. + * + * Generated from protobuf field bool user_defined = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getUserDefined() + { + return $this->user_defined; + } + + /** + * Optional. Indicates whether the text was manually annotated. + * This field is set to true when the Dialogflow Console is used to + * manually annotate the part. When creating an annotated part with the + * API, you must set this to true. + * + * Generated from protobuf field bool user_defined = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setUserDefined($var) + { + GPBUtil::checkBool($var); + $this->user_defined = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Type.php b/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Type.php new file mode 100644 index 0000000..c7eb4f1 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/TrainingPhrase/Type.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.Intent.TrainingPhrase.Type + */ +class Type +{ + /** + * Not specified. This value should never be used. + * + * Generated from protobuf enum TYPE_UNSPECIFIED = 0; + */ + const TYPE_UNSPECIFIED = 0; + /** + * Examples do not contain @-prefixed entity type names, but example parts + * can be annotated with entity types. + * + * Generated from protobuf enum EXAMPLE = 1; + */ + const EXAMPLE = 1; + /** + * Templates are not annotated with entity types, but they can contain + * @-prefixed entity type names as substrings. + * Template mode has been deprecated. Example mode is the only supported + * way to create new training phrases. If you have existing training + * phrases that you've created in template mode, those will continue to + * work. + * + * Generated from protobuf enum TEMPLATE = 2 [deprecated = true]; + */ + const TEMPLATE = 2; + + private static $valueToName = [ + self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED', + self::EXAMPLE => 'EXAMPLE', + self::TEMPLATE => 'TEMPLATE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/Intent/WebhookState.php b/vendor/google/cloud-dialogflow/src/V2/Intent/WebhookState.php new file mode 100644 index 0000000..f1bdda2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Intent/WebhookState.php @@ -0,0 +1,63 @@ +google.cloud.dialogflow.v2.Intent.WebhookState + */ +class WebhookState +{ + /** + * Webhook is disabled in the agent and in the intent. + * + * Generated from protobuf enum WEBHOOK_STATE_UNSPECIFIED = 0; + */ + const WEBHOOK_STATE_UNSPECIFIED = 0; + /** + * Webhook is enabled in the agent and in the intent. + * + * Generated from protobuf enum WEBHOOK_STATE_ENABLED = 1; + */ + const WEBHOOK_STATE_ENABLED = 1; + /** + * Webhook is enabled in the agent and in the intent. Also, each slot + * filling prompt is forwarded to the webhook. + * + * Generated from protobuf enum WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2; + */ + const WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2; + + private static $valueToName = [ + self::WEBHOOK_STATE_UNSPECIFIED => 'WEBHOOK_STATE_UNSPECIFIED', + self::WEBHOOK_STATE_ENABLED => 'WEBHOOK_STATE_ENABLED', + self::WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING => 'WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/IntentBatch.php b/vendor/google/cloud-dialogflow/src/V2/IntentBatch.php new file mode 100644 index 0000000..87fcc6a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/IntentBatch.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.IntentBatch + */ +class IntentBatch extends \Google\Protobuf\Internal\Message +{ + /** + * A collection of intents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + */ + private $intents; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $intents + * A collection of intents. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * A collection of intents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getIntents() + { + return $this->intents; + } + + /** + * A collection of intents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setIntents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intents = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/IntentSuggestion.php b/vendor/google/cloud-dialogflow/src/V2/IntentSuggestion.php new file mode 100644 index 0000000..87f1941 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/IntentSuggestion.php @@ -0,0 +1,153 @@ +google.cloud.dialogflow.v2.IntentSuggestion + */ +class IntentSuggestion extends \Google\Protobuf\Internal\Message +{ + /** + * The display name of the intent. + * + * Generated from protobuf field string display_name = 1; + */ + protected $display_name = ''; + /** + * Human readable description for better understanding an intent like its + * scope, content, result etc. Maximum character limit: 140 characters. + * + * Generated from protobuf field string description = 5; + */ + protected $description = ''; + protected $intent; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $display_name + * The display name of the intent. + * @type string $intent_v2 + * The unique identifier of this + * [intent][google.cloud.dialogflow.v2.Intent]. Format: `projects//locations//agent/intents/`. + * @type string $description + * Human readable description for better understanding an intent like its + * scope, content, result etc. Maximum character limit: 140 characters. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The display name of the intent. + * + * Generated from protobuf field string display_name = 1; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * The display name of the intent. + * + * Generated from protobuf field string display_name = 1; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * The unique identifier of this + * [intent][google.cloud.dialogflow.v2.Intent]. Format: `projects//locations//agent/intents/`. + * + * Generated from protobuf field string intent_v2 = 2; + * @return string + */ + public function getIntentV2() + { + return $this->readOneof(2); + } + + public function hasIntentV2() + { + return $this->hasOneof(2); + } + + /** + * The unique identifier of this + * [intent][google.cloud.dialogflow.v2.Intent]. Format: `projects//locations//agent/intents/`. + * + * Generated from protobuf field string intent_v2 = 2; + * @param string $var + * @return $this + */ + public function setIntentV2($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Human readable description for better understanding an intent like its + * scope, content, result etc. Maximum character limit: 140 characters. + * + * Generated from protobuf field string description = 5; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Human readable description for better understanding an intent like its + * scope, content, result etc. Maximum character limit: 140 characters. + * + * Generated from protobuf field string description = 5; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * @return string + */ + public function getIntent() + { + return $this->whichOneof("intent"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/IntentView.php b/vendor/google/cloud-dialogflow/src/V2/IntentView.php new file mode 100644 index 0000000..916e50e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/IntentView.php @@ -0,0 +1,56 @@ +google.cloud.dialogflow.v2.IntentView + */ +class IntentView +{ + /** + * Training phrases field is not populated in the response. + * + * Generated from protobuf enum INTENT_VIEW_UNSPECIFIED = 0; + */ + const INTENT_VIEW_UNSPECIFIED = 0; + /** + * All fields are populated. + * + * Generated from protobuf enum INTENT_VIEW_FULL = 1; + */ + const INTENT_VIEW_FULL = 1; + + private static $valueToName = [ + self::INTENT_VIEW_UNSPECIFIED => 'INTENT_VIEW_UNSPECIFIED', + self::INTENT_VIEW_FULL => 'INTENT_VIEW_FULL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer.php new file mode 100644 index 0000000..4b76d02 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer.php @@ -0,0 +1,171 @@ +google.cloud.dialogflow.v2.KnowledgeAssistAnswer + */ +class KnowledgeAssistAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The query suggested based on the context. Suggestion is made only if it + * is different from the previous suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery suggested_query = 1; + */ + protected $suggested_query = null; + /** + * The answer generated for the suggested query. Whether or not an answer is + * generated depends on how confident we are about the generated query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer suggested_query_answer = 2; + */ + protected $suggested_query_answer = null; + /** + * The name of the answer record. + * Format: `projects//locations//answer + * Records/`. + * + * Generated from protobuf field string answer_record = 3; + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\SuggestedQuery $suggested_query + * The query suggested based on the context. Suggestion is made only if it + * is different from the previous suggestion. + * @type \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer $suggested_query_answer + * The answer generated for the suggested query. Whether or not an answer is + * generated depends on how confident we are about the generated query. + * @type string $answer_record + * The name of the answer record. + * Format: `projects//locations//answer + * Records/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The query suggested based on the context. Suggestion is made only if it + * is different from the previous suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery suggested_query = 1; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\SuggestedQuery|null + */ + public function getSuggestedQuery() + { + return $this->suggested_query; + } + + public function hasSuggestedQuery() + { + return isset($this->suggested_query); + } + + public function clearSuggestedQuery() + { + unset($this->suggested_query); + } + + /** + * The query suggested based on the context. Suggestion is made only if it + * is different from the previous suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery suggested_query = 1; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\SuggestedQuery $var + * @return $this + */ + public function setSuggestedQuery($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\SuggestedQuery::class); + $this->suggested_query = $var; + + return $this; + } + + /** + * The answer generated for the suggested query. Whether or not an answer is + * generated depends on how confident we are about the generated query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer suggested_query_answer = 2; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer|null + */ + public function getSuggestedQueryAnswer() + { + return $this->suggested_query_answer; + } + + public function hasSuggestedQueryAnswer() + { + return isset($this->suggested_query_answer); + } + + public function clearSuggestedQueryAnswer() + { + unset($this->suggested_query_answer); + } + + /** + * The answer generated for the suggested query. Whether or not an answer is + * generated depends on how confident we are about the generated query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer suggested_query_answer = 2; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer $var + * @return $this + */ + public function setSuggestedQueryAnswer($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer::class); + $this->suggested_query_answer = $var; + + return $this; + } + + /** + * The name of the answer record. + * Format: `projects//locations//answer + * Records/`. + * + * Generated from protobuf field string answer_record = 3; + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of the answer record. + * Format: `projects//locations//answer + * Records/`. + * + * Generated from protobuf field string answer_record = 3; + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer.php new file mode 100644 index 0000000..3ac5050 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer.php @@ -0,0 +1,144 @@ +google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer + */ +class KnowledgeAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The piece of text from the `source` that answers this suggested query. + * + * Generated from protobuf field string answer_text = 1; + */ + protected $answer_text = ''; + protected $source; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $answer_text + * The piece of text from the `source` that answers this suggested query. + * @type \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\FaqSource $faq_source + * Populated if the prediction came from FAQ. + * @type \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource $generative_source + * Populated if the prediction was Generative. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The piece of text from the `source` that answers this suggested query. + * + * Generated from protobuf field string answer_text = 1; + * @return string + */ + public function getAnswerText() + { + return $this->answer_text; + } + + /** + * The piece of text from the `source` that answers this suggested query. + * + * Generated from protobuf field string answer_text = 1; + * @param string $var + * @return $this + */ + public function setAnswerText($var) + { + GPBUtil::checkString($var, True); + $this->answer_text = $var; + + return $this; + } + + /** + * Populated if the prediction came from FAQ. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource faq_source = 3; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\FaqSource|null + */ + public function getFaqSource() + { + return $this->readOneof(3); + } + + public function hasFaqSource() + { + return $this->hasOneof(3); + } + + /** + * Populated if the prediction came from FAQ. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource faq_source = 3; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\FaqSource $var + * @return $this + */ + public function setFaqSource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\FaqSource::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Populated if the prediction was Generative. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource generative_source = 4; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource|null + */ + public function getGenerativeSource() + { + return $this->readOneof(4); + } + + public function hasGenerativeSource() + { + return $this->hasOneof(4); + } + + /** + * Populated if the prediction was Generative. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource generative_source = 4; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource $var + * @return $this + */ + public function setGenerativeSource($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * @return string + */ + public function getSource() + { + return $this->whichOneof("source"); + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/FaqSource.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/FaqSource.php new file mode 100644 index 0000000..bedf2b5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/FaqSource.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.FaqSource + */ +class FaqSource extends \Google\Protobuf\Internal\Message +{ + /** + * The corresponding FAQ question. + * + * Generated from protobuf field string question = 2; + */ + protected $question = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $question + * The corresponding FAQ question. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The corresponding FAQ question. + * + * Generated from protobuf field string question = 2; + * @return string + */ + public function getQuestion() + { + return $this->question; + } + + /** + * The corresponding FAQ question. + * + * Generated from protobuf field string question = 2; + * @param string $var + * @return $this + */ + public function setQuestion($var) + { + GPBUtil::checkString($var, True); + $this->question = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource.php new file mode 100644 index 0000000..a96d616 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource.php @@ -0,0 +1,72 @@ +google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource + */ +class GenerativeSource extends \Google\Protobuf\Internal\Message +{ + /** + * All snippets used for this Generative Prediction, with their source URI + * and data. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet snippets = 1; + */ + private $snippets; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource\Snippet>|\Google\Protobuf\Internal\RepeatedField $snippets + * All snippets used for this Generative Prediction, with their source URI + * and data. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * All snippets used for this Generative Prediction, with their source URI + * and data. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet snippets = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSnippets() + { + return $this->snippets; + } + + /** + * All snippets used for this Generative Prediction, with their source URI + * and data. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet snippets = 1; + * @param array<\Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource\Snippet>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSnippets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer\KnowledgeAnswer\GenerativeSource\Snippet::class); + $this->snippets = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource/Snippet.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource/Snippet.php new file mode 100644 index 0000000..6ecb1dc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/KnowledgeAnswer/GenerativeSource/Snippet.php @@ -0,0 +1,180 @@ +google.cloud.dialogflow.v2.KnowledgeAssistAnswer.KnowledgeAnswer.GenerativeSource.Snippet + */ +class Snippet extends \Google\Protobuf\Internal\Message +{ + /** + * URI the data is sourced from. + * + * Generated from protobuf field string uri = 2; + */ + protected $uri = ''; + /** + * Text taken from that URI. + * + * Generated from protobuf field string text = 3; + */ + protected $text = ''; + /** + * Title of the document. + * + * Generated from protobuf field string title = 4; + */ + protected $title = ''; + /** + * Metadata of the document. + * + * Generated from protobuf field .google.protobuf.Struct metadata = 5; + */ + protected $metadata = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $uri + * URI the data is sourced from. + * @type string $text + * Text taken from that URI. + * @type string $title + * Title of the document. + * @type \Google\Protobuf\Struct $metadata + * Metadata of the document. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * URI the data is sourced from. + * + * Generated from protobuf field string uri = 2; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * URI the data is sourced from. + * + * Generated from protobuf field string uri = 2; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + + /** + * Text taken from that URI. + * + * Generated from protobuf field string text = 3; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Text taken from that URI. + * + * Generated from protobuf field string text = 3; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * Title of the document. + * + * Generated from protobuf field string title = 4; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Title of the document. + * + * Generated from protobuf field string title = 4; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Metadata of the document. + * + * Generated from protobuf field .google.protobuf.Struct metadata = 5; + * @return \Google\Protobuf\Struct|null + */ + public function getMetadata() + { + return $this->metadata; + } + + public function hasMetadata() + { + return isset($this->metadata); + } + + public function clearMetadata() + { + unset($this->metadata); + } + + /** + * Metadata of the document. + * + * Generated from protobuf field .google.protobuf.Struct metadata = 5; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->metadata = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/SuggestedQuery.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/SuggestedQuery.php new file mode 100644 index 0000000..c36f865 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeAssistAnswer/SuggestedQuery.php @@ -0,0 +1,68 @@ +google.cloud.dialogflow.v2.KnowledgeAssistAnswer.SuggestedQuery + */ +class SuggestedQuery extends \Google\Protobuf\Internal\Message +{ + /** + * Suggested query text. + * + * Generated from protobuf field string query_text = 1; + */ + protected $query_text = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $query_text + * Suggested query text. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Suggested query text. + * + * Generated from protobuf field string query_text = 1; + * @return string + */ + public function getQueryText() + { + return $this->query_text; + } + + /** + * Suggested query text. + * + * Generated from protobuf field string query_text = 1; + * @param string $var + * @return $this + */ + public function setQueryText($var) + { + GPBUtil::checkString($var, True); + $this->query_text = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeBase.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeBase.php new file mode 100644 index 0000000..d3753cd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeBase.php @@ -0,0 +1,166 @@ +google.cloud.dialogflow.v2.KnowledgeBase + */ +class KnowledgeBase extends \Google\Protobuf\Internal\Message +{ + /** + * The knowledge base resource name. + * The name must be empty when creating a knowledge base. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Required. The display name of the knowledge base. The name must be 1024 + * bytes or less; otherwise, the creation request fails. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $display_name = ''; + /** + * Language which represents the KnowledgeBase. When the KnowledgeBase is + * created/updated, expect this to be present for non en-us languages. When + * unspecified, the default language code en-us applies. + * + * Generated from protobuf field string language_code = 4; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The knowledge base resource name. + * The name must be empty when creating a knowledge base. + * Format: `projects//locations//knowledgeBases/`. + * @type string $display_name + * Required. The display name of the knowledge base. The name must be 1024 + * bytes or less; otherwise, the creation request fails. + * @type string $language_code + * Language which represents the KnowledgeBase. When the KnowledgeBase is + * created/updated, expect this to be present for non en-us languages. When + * unspecified, the default language code en-us applies. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * The knowledge base resource name. + * The name must be empty when creating a knowledge base. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The knowledge base resource name. + * The name must be empty when creating a knowledge base. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The display name of the knowledge base. The name must be 1024 + * bytes or less; otherwise, the creation request fails. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Required. The display name of the knowledge base. The name must be 1024 + * bytes or less; otherwise, the creation request fails. + * + * Generated from protobuf field string display_name = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Language which represents the KnowledgeBase. When the KnowledgeBase is + * created/updated, expect this to be present for non en-us languages. When + * unspecified, the default language code en-us applies. + * + * Generated from protobuf field string language_code = 4; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Language which represents the KnowledgeBase. When the KnowledgeBase is + * created/updated, expect this to be present for non en-us languages. When + * unspecified, the default language code en-us applies. + * + * Generated from protobuf field string language_code = 4; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata.php new file mode 100644 index 0000000..609ea56 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata.php @@ -0,0 +1,143 @@ +google.cloud.dialogflow.v2.KnowledgeOperationMetadata + */ +class KnowledgeOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The current state of this operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $state = 0; + /** + * The name of the knowledge base interacted with during the operation. + * + * Generated from protobuf field string knowledge_base = 3; + */ + protected $knowledge_base = ''; + protected $operation_metadata; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $state + * Output only. The current state of this operation. + * @type string $knowledge_base + * The name of the knowledge base interacted with during the operation. + * @type \Google\Cloud\Dialogflow\V2\ExportOperationMetadata $export_operation_metadata + * Metadata for the Export Data Operation such as the destination of export. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The current state of this operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getState() + { + return $this->state; + } + + /** + * Output only. The current state of this operation. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setState($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata\State::class); + $this->state = $var; + + return $this; + } + + /** + * The name of the knowledge base interacted with during the operation. + * + * Generated from protobuf field string knowledge_base = 3; + * @return string + */ + public function getKnowledgeBase() + { + return $this->knowledge_base; + } + + /** + * The name of the knowledge base interacted with during the operation. + * + * Generated from protobuf field string knowledge_base = 3; + * @param string $var + * @return $this + */ + public function setKnowledgeBase($var) + { + GPBUtil::checkString($var, True); + $this->knowledge_base = $var; + + return $this; + } + + /** + * Metadata for the Export Data Operation such as the destination of export. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ExportOperationMetadata export_operation_metadata = 4; + * @return \Google\Cloud\Dialogflow\V2\ExportOperationMetadata|null + */ + public function getExportOperationMetadata() + { + return $this->readOneof(4); + } + + public function hasExportOperationMetadata() + { + return $this->hasOneof(4); + } + + /** + * Metadata for the Export Data Operation such as the destination of export. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ExportOperationMetadata export_operation_metadata = 4; + * @param \Google\Cloud\Dialogflow\V2\ExportOperationMetadata $var + * @return $this + */ + public function setExportOperationMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ExportOperationMetadata::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * @return string + */ + public function getOperationMetadata() + { + return $this->whichOneof("operation_metadata"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata/State.php b/vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata/State.php new file mode 100644 index 0000000..c145eec --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/KnowledgeOperationMetadata/State.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.KnowledgeOperationMetadata.State + */ +class State +{ + /** + * State unspecified. + * + * Generated from protobuf enum STATE_UNSPECIFIED = 0; + */ + const STATE_UNSPECIFIED = 0; + /** + * The operation has been created. + * + * Generated from protobuf enum PENDING = 1; + */ + const PENDING = 1; + /** + * The operation is currently running. + * + * Generated from protobuf enum RUNNING = 2; + */ + const RUNNING = 2; + /** + * The operation is done, either cancelled or completed. + * + * Generated from protobuf enum DONE = 3; + */ + const DONE = 3; + + private static $valueToName = [ + self::STATE_UNSPECIFIED => 'STATE_UNSPECIFIED', + self::PENDING => 'PENDING', + self::RUNNING => 'RUNNING', + self::DONE => 'DONE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsRequest.php new file mode 100644 index 0000000..e1a185b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsRequest.php @@ -0,0 +1,254 @@ +google.cloud.dialogflow.v2.ListAnswerRecordsRequest + */ +class ListAnswerRecordsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to list all answer records for in reverse + * chronological order. Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. Filters to restrict results to specific answer records. The + * expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * conversation_id with equals(=) operator + * Examples: + * * `conversation_id=bar` matches answer records in the + * `projects/foo/locations/global/conversations/bar` conversation + * (assuming the parent is `projects/foo/locations/global`). + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; + /** + * Optional. The maximum number of records to return in a single page. + * The server may return fewer records than this. If unspecified, we use 10. + * The maximum is 100. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The + * [ListAnswerRecordsResponse.next_page_token][google.cloud.dialogflow.v2.ListAnswerRecordsResponse.next_page_token] + * value returned from a previous list request used to continue listing on + * the next page. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The project to list all answer records for in reverse + * chronological order. Format: `projects//locations/`. Please see + * {@see AnswerRecordsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListAnswerRecordsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to list all answer records for in reverse + * chronological order. Format: `projects//locations/`. + * @type string $filter + * Optional. Filters to restrict results to specific answer records. The + * expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * conversation_id with equals(=) operator + * Examples: + * * `conversation_id=bar` matches answer records in the + * `projects/foo/locations/global/conversations/bar` conversation + * (assuming the parent is `projects/foo/locations/global`). + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * @type int $page_size + * Optional. The maximum number of records to return in a single page. + * The server may return fewer records than this. If unspecified, we use 10. + * The maximum is 100. + * @type string $page_token + * Optional. The + * [ListAnswerRecordsResponse.next_page_token][google.cloud.dialogflow.v2.ListAnswerRecordsResponse.next_page_token] + * value returned from a previous list request used to continue listing on + * the next page. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to list all answer records for in reverse + * chronological order. Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to list all answer records for in reverse + * chronological order. Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Filters to restrict results to specific answer records. The + * expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * conversation_id with equals(=) operator + * Examples: + * * `conversation_id=bar` matches answer records in the + * `projects/foo/locations/global/conversations/bar` conversation + * (assuming the parent is `projects/foo/locations/global`). + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. Filters to restrict results to specific answer records. The + * expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * conversation_id with equals(=) operator + * Examples: + * * `conversation_id=bar` matches answer records in the + * `projects/foo/locations/global/conversations/bar` conversation + * (assuming the parent is `projects/foo/locations/global`). + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + + /** + * Optional. The maximum number of records to return in a single page. + * The server may return fewer records than this. If unspecified, we use 10. + * The maximum is 100. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of records to return in a single page. + * The server may return fewer records than this. If unspecified, we use 10. + * The maximum is 100. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The + * [ListAnswerRecordsResponse.next_page_token][google.cloud.dialogflow.v2.ListAnswerRecordsResponse.next_page_token] + * value returned from a previous list request used to continue listing on + * the next page. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The + * [ListAnswerRecordsResponse.next_page_token][google.cloud.dialogflow.v2.ListAnswerRecordsResponse.next_page_token] + * value returned from a previous list request used to continue listing on + * the next page. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsResponse.php new file mode 100644 index 0000000..f15328a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListAnswerRecordsResponse.php @@ -0,0 +1,122 @@ +google.cloud.dialogflow.v2.ListAnswerRecordsResponse + */ +class ListAnswerRecordsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of answer records. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.AnswerRecord answer_records = 1; + */ + private $answer_records; + /** + * A token to retrieve next page of results. Or empty if there are no more + * results. + * Pass this value in the + * [ListAnswerRecordsRequest.page_token][google.cloud.dialogflow.v2.ListAnswerRecordsRequest.page_token] + * field in the subsequent call to `ListAnswerRecords` method to retrieve the + * next page of results. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\AnswerRecord>|\Google\Protobuf\Internal\RepeatedField $answer_records + * The list of answer records. + * @type string $next_page_token + * A token to retrieve next page of results. Or empty if there are no more + * results. + * Pass this value in the + * [ListAnswerRecordsRequest.page_token][google.cloud.dialogflow.v2.ListAnswerRecordsRequest.page_token] + * field in the subsequent call to `ListAnswerRecords` method to retrieve the + * next page of results. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * The list of answer records. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.AnswerRecord answer_records = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAnswerRecords() + { + return $this->answer_records; + } + + /** + * The list of answer records. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.AnswerRecord answer_records = 1; + * @param array<\Google\Cloud\Dialogflow\V2\AnswerRecord>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAnswerRecords($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\AnswerRecord::class); + $this->answer_records = $arr; + + return $this; + } + + /** + * A token to retrieve next page of results. Or empty if there are no more + * results. + * Pass this value in the + * [ListAnswerRecordsRequest.page_token][google.cloud.dialogflow.v2.ListAnswerRecordsRequest.page_token] + * field in the subsequent call to `ListAnswerRecords` method to retrieve the + * next page of results. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * A token to retrieve next page of results. Or empty if there are no more + * results. + * Pass this value in the + * [ListAnswerRecordsRequest.page_token][google.cloud.dialogflow.v2.ListAnswerRecordsRequest.page_token] + * field in the subsequent call to `ListAnswerRecords` method to retrieve the + * next page of results. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListContextsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListContextsRequest.php new file mode 100644 index 0000000..3b9d788 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListContextsRequest.php @@ -0,0 +1,179 @@ +google.cloud.dialogflow.v2.ListContextsRequest + */ +class ListContextsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The session to list all contexts from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The session to list all contexts from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see ContextsClient::sessionName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListContextsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The session to list all contexts from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The session to list all contexts from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The session to list all contexts from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users//sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListContextsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListContextsResponse.php new file mode 100644 index 0000000..4441573 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListContextsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListContextsResponse + */ +class ListContextsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of contexts. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context contexts = 1; + */ + private $contexts; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $contexts + * The list of contexts. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * The list of contexts. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context contexts = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getContexts() + { + return $this->contexts; + } + + /** + * The list of contexts. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context contexts = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setContexts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Context::class); + $this->contexts = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsRequest.php new file mode 100644 index 0000000..7647f1d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsRequest.php @@ -0,0 +1,159 @@ +google.cloud.dialogflow.v2.ListConversationDatasetsRequest + */ +class ListConversationDatasetsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project and location name to list all conversation datasets + * for. Format: `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. Maximum number of conversation datasets to return in a single + * page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The project and location name to list all conversation datasets + * for. Format: `projects//locations/` + * Please see {@see ConversationDatasetsClient::locationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListConversationDatasetsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project and location name to list all conversation datasets + * for. Format: `projects//locations/` + * @type int $page_size + * Optional. Maximum number of conversation datasets to return in a single + * page. By default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project and location name to list all conversation datasets + * for. Format: `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project and location name to list all conversation datasets + * for. Format: `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Maximum number of conversation datasets to return in a single + * page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. Maximum number of conversation datasets to return in a single + * page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsResponse.php new file mode 100644 index 0000000..5e09181 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationDatasetsResponse.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.ListConversationDatasetsResponse + */ +class ListConversationDatasetsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of datasets to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationDataset conversation_datasets = 1; + */ + private $conversation_datasets; + /** + * The token to use to retrieve the next page of results, or empty if there + * are no more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\ConversationDataset>|\Google\Protobuf\Internal\RepeatedField $conversation_datasets + * The list of datasets to return. + * @type string $next_page_token + * The token to use to retrieve the next page of results, or empty if there + * are no more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationDataset::initOnce(); + parent::__construct($data); + } + + /** + * The list of datasets to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationDataset conversation_datasets = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConversationDatasets() + { + return $this->conversation_datasets; + } + + /** + * The list of datasets to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationDataset conversation_datasets = 1; + * @param array<\Google\Cloud\Dialogflow\V2\ConversationDataset>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConversationDatasets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\ConversationDataset::class); + $this->conversation_datasets = $arr; + + return $this; + } + + /** + * The token to use to retrieve the next page of results, or empty if there + * are no more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * The token to use to retrieve the next page of results, or empty if there + * are no more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsRequest.php new file mode 100644 index 0000000..759979e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsRequest.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.ListConversationModelEvaluationsRequest + */ +class ListConversationModelEvaluationsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model resource name. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $parent = ''; + /** + * Optional. Maximum number of evaluations to return in a + * single page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The conversation model resource name. Format: + * `projects//conversationModels/` + * + * @return \Google\Cloud\Dialogflow\V2\ListConversationModelEvaluationsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The conversation model resource name. Format: + * `projects//conversationModels/` + * @type int $page_size + * Optional. Maximum number of evaluations to return in a + * single page. By default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model resource name. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The conversation model resource name. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Maximum number of evaluations to return in a + * single page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. Maximum number of evaluations to return in a + * single page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsResponse.php new file mode 100644 index 0000000..f974266 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelEvaluationsResponse.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.ListConversationModelEvaluationsResponse + */ +class ListConversationModelEvaluationsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of evaluations to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationModelEvaluation conversation_model_evaluations = 1; + */ + private $conversation_model_evaluations; + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\ConversationModelEvaluation>|\Google\Protobuf\Internal\RepeatedField $conversation_model_evaluations + * The list of evaluations to return. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The list of evaluations to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationModelEvaluation conversation_model_evaluations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConversationModelEvaluations() + { + return $this->conversation_model_evaluations; + } + + /** + * The list of evaluations to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationModelEvaluation conversation_model_evaluations = 1; + * @param array<\Google\Cloud\Dialogflow\V2\ConversationModelEvaluation>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConversationModelEvaluations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\ConversationModelEvaluation::class); + $this->conversation_model_evaluations = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationModelsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelsRequest.php new file mode 100644 index 0000000..286fcf7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelsRequest.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.ListConversationModelsRequest + */ +class ListConversationModelsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to list all conversation models for. + * Format: `projects/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $parent = ''; + /** + * Optional. Maximum number of conversation models to return in a single + * page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The project to list all conversation models for. + * Format: `projects/` + * + * @return \Google\Cloud\Dialogflow\V2\ListConversationModelsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to list all conversation models for. + * Format: `projects/` + * @type int $page_size + * Optional. Maximum number of conversation models to return in a single + * page. By default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to list all conversation models for. + * Format: `projects/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to list all conversation models for. + * Format: `projects/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Maximum number of conversation models to return in a single + * page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. Maximum number of conversation models to return in a single + * page. By default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationModelsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelsResponse.php new file mode 100644 index 0000000..1aa84fb --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationModelsResponse.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.ListConversationModelsResponse + */ +class ListConversationModelsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of models to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationModel conversation_models = 1; + */ + private $conversation_models; + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\ConversationModel>|\Google\Protobuf\Internal\RepeatedField $conversation_models + * The list of models to return. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The list of models to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationModel conversation_models = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConversationModels() + { + return $this->conversation_models; + } + + /** + * The list of models to return. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationModel conversation_models = 1; + * @param array<\Google\Cloud\Dialogflow\V2\ConversationModel>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConversationModels($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\ConversationModel::class); + $this->conversation_models = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesRequest.php new file mode 100644 index 0000000..71d9fdd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesRequest.php @@ -0,0 +1,159 @@ +google.cloud.dialogflow.v2.ListConversationProfilesRequest + */ +class ListConversationProfilesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to list all conversation profiles from. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2; + */ + protected $page_size = 0; + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The project to list all conversation profiles from. + * Format: `projects//locations/`. Please see + * {@see ConversationProfilesClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListConversationProfilesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to list all conversation profiles from. + * Format: `projects//locations/`. + * @type int $page_size + * The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to list all conversation profiles from. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to list all conversation profiles from. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesResponse.php new file mode 100644 index 0000000..b0a8719 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationProfilesResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListConversationProfilesResponse + */ +class ListConversationProfilesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of project conversation profiles. There is a maximum number + * of items returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationProfile conversation_profiles = 1; + */ + private $conversation_profiles; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\ConversationProfile>|\Google\Protobuf\Internal\RepeatedField $conversation_profiles + * The list of project conversation profiles. There is a maximum number + * of items returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * The list of project conversation profiles. There is a maximum number + * of items returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationProfile conversation_profiles = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConversationProfiles() + { + return $this->conversation_profiles; + } + + /** + * The list of project conversation profiles. There is a maximum number + * of items returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ConversationProfile conversation_profiles = 1; + * @param array<\Google\Cloud\Dialogflow\V2\ConversationProfile>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConversationProfiles($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\ConversationProfile::class); + $this->conversation_profiles = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationsRequest.php new file mode 100644 index 0000000..0c10778 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationsRequest.php @@ -0,0 +1,213 @@ +google.cloud.dialogflow.v2.ListConversationsRequest + */ +class ListConversationsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project from which to list all conversation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + /** + * Optional. A filter expression that filters conversations listed in the + * response. Only `lifecycle_state` can be filtered on in this way. For + * example, the following expression only returns `COMPLETED` conversations: + * `lifecycle_state = "COMPLETED"` + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; + + /** + * @param string $parent Required. The project from which to list all conversation. + * Format: `projects//locations/`. Please see + * {@see ConversationsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListConversationsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project from which to list all conversation. + * Format: `projects//locations/`. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * @type string $filter + * Optional. A filter expression that filters conversations listed in the + * response. Only `lifecycle_state` can be filtered on in this way. For + * example, the following expression only returns `COMPLETED` conversations: + * `lifecycle_state = "COMPLETED"` + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project from which to list all conversation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project from which to list all conversation. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + + /** + * Optional. A filter expression that filters conversations listed in the + * response. Only `lifecycle_state` can be filtered on in this way. For + * example, the following expression only returns `COMPLETED` conversations: + * `lifecycle_state = "COMPLETED"` + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. A filter expression that filters conversations listed in the + * response. Only `lifecycle_state` can be filtered on in this way. For + * example, the following expression only returns `COMPLETED` conversations: + * `lifecycle_state = "COMPLETED"` + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListConversationsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListConversationsResponse.php new file mode 100644 index 0000000..f4a0679 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListConversationsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListConversationsResponse + */ +class ListConversationsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of conversations. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation conversations = 1; + */ + private $conversations; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Conversation>|\Google\Protobuf\Internal\RepeatedField $conversations + * The list of conversations. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * The list of conversations. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation conversations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConversations() + { + return $this->conversations; + } + + /** + * The list of conversations. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Conversation conversations = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Conversation>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConversations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Conversation::class); + $this->conversations = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListDocumentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListDocumentsRequest.php new file mode 100644 index 0000000..ca75b93 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListDocumentsRequest.php @@ -0,0 +1,254 @@ +google.cloud.dialogflow.v2.ListDocumentsRequest + */ +class ListDocumentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The knowledge base to list all documents for. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * + * Generated from protobuf field int32 page_size = 2; + */ + protected $page_size = 0; + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + */ + protected $page_token = ''; + /** + * The filter expression used to filter documents returned by the list method. + * The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * knowledge_types with has(:) operator + * * display_name with has(:) operator + * * state with equals(=) operator + * Examples: + * * "knowledge_types:FAQ" matches documents with FAQ knowledge type. + * * "display_name:customer" matches documents whose display name contains + * "customer". + * * "state=ACTIVE" matches documents with ACTIVE state. + * * "knowledge_types:FAQ AND state=ACTIVE" matches all active FAQ documents. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4; + */ + protected $filter = ''; + + /** + * @param string $parent Required. The knowledge base to list all documents for. + * Format: `projects//locations//knowledgeBases/`. Please see + * {@see DocumentsClient::knowledgeBaseName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListDocumentsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The knowledge base to list all documents for. + * Format: `projects//locations//knowledgeBases/`. + * @type int $page_size + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * @type string $page_token + * The next_page_token value returned from a previous list request. + * @type string $filter + * The filter expression used to filter documents returned by the list method. + * The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * knowledge_types with has(:) operator + * * display_name with has(:) operator + * * state with equals(=) operator + * Examples: + * * "knowledge_types:FAQ" matches documents with FAQ knowledge type. + * * "display_name:customer" matches documents whose display name contains + * "customer". + * * "state=ACTIVE" matches documents with ACTIVE state. + * * "knowledge_types:FAQ AND state=ACTIVE" matches all active FAQ documents. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The knowledge base to list all documents for. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The knowledge base to list all documents for. + * Format: `projects//locations//knowledgeBases/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * + * Generated from protobuf field int32 page_size = 2; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * + * Generated from protobuf field int32 page_size = 2; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + + /** + * The filter expression used to filter documents returned by the list method. + * The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * knowledge_types with has(:) operator + * * display_name with has(:) operator + * * state with equals(=) operator + * Examples: + * * "knowledge_types:FAQ" matches documents with FAQ knowledge type. + * * "display_name:customer" matches documents whose display name contains + * "customer". + * * "state=ACTIVE" matches documents with ACTIVE state. + * * "knowledge_types:FAQ AND state=ACTIVE" matches all active FAQ documents. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * The filter expression used to filter documents returned by the list method. + * The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * knowledge_types with has(:) operator + * * display_name with has(:) operator + * * state with equals(=) operator + * Examples: + * * "knowledge_types:FAQ" matches documents with FAQ knowledge type. + * * "display_name:customer" matches documents whose display name contains + * "customer". + * * "state=ACTIVE" matches documents with ACTIVE state. + * * "knowledge_types:FAQ AND state=ACTIVE" matches all active FAQ documents. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListDocumentsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListDocumentsResponse.php new file mode 100644 index 0000000..101cf40 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListDocumentsResponse.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.ListDocumentsResponse + */ +class ListDocumentsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of documents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document documents = 1; + */ + private $documents; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Document>|\Google\Protobuf\Internal\RepeatedField $documents + * The list of documents. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * The list of documents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document documents = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDocuments() + { + return $this->documents; + } + + /** + * The list of documents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Document documents = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Document>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDocuments($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Document::class); + $this->documents = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListEntityTypesRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListEntityTypesRequest.php new file mode 100644 index 0000000..a24d189 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListEntityTypesRequest.php @@ -0,0 +1,230 @@ +google.cloud.dialogflow.v2.ListEntityTypesRequest + */ +class ListEntityTypesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to list all entity types from. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The agent to list all entity types from. + * Format: `projects//agent`. Please see + * {@see EntityTypesClient::agentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListEntityTypesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * @param string $parent Required. The agent to list all entity types from. + * Format: `projects//agent`. Please see + * {@see EntityTypesClient::agentName()} for help formatting this field. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\ListEntityTypesRequest + * + * @experimental + */ + public static function buildFromParentLanguageCode(string $parent, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to list all entity types from. + * Format: `projects//agent`. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to list all entity types from. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to list all entity types from. + * Format: `projects//agent`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListEntityTypesResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListEntityTypesResponse.php new file mode 100644 index 0000000..766d026 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListEntityTypesResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListEntityTypesResponse + */ +class ListEntityTypesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of agent entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + */ + private $entity_types; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\EntityType>|\Google\Protobuf\Internal\RepeatedField $entity_types + * The list of agent entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * The list of agent entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntityTypes() + { + return $this->entity_types; + } + + /** + * The list of agent entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType entity_types = 1; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntityTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType::class); + $this->entity_types = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsRequest.php new file mode 100644 index 0000000..9cb3ad8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsRequest.php @@ -0,0 +1,170 @@ +google.cloud.dialogflow.v2.ListEnvironmentsRequest + */ +class ListEnvironmentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to list all environments from. + * Format: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The agent to list all environments from. + * Format: + * + * - `projects//agent` + * - `projects//locations//agent` + * Please see {@see EnvironmentsClient::agentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListEnvironmentsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to list all environments from. + * Format: + * - `projects//agent` + * - `projects//locations//agent` + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to list all environments from. + * Format: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to list all environments from. + * Format: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsResponse.php new file mode 100644 index 0000000..c5fe88b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListEnvironmentsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListEnvironmentsResponse + */ +class ListEnvironmentsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of agent environments. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Environment environments = 1; + */ + private $environments; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Environment>|\Google\Protobuf\Internal\RepeatedField $environments + * The list of agent environments. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * The list of agent environments. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Environment environments = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEnvironments() + { + return $this->environments; + } + + /** + * The list of agent environments. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Environment environments = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Environment>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEnvironments($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Environment::class); + $this->environments = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListGeneratorsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListGeneratorsRequest.php new file mode 100644 index 0000000..84a6973 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListGeneratorsRequest.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.ListGeneratorsRequest + */ +class ListGeneratorsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project/location to list generators for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. Maximum number of conversation models to return in a single page. + * Default to 10. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The project/location to list generators for. Format: + * `projects//locations/` + * Please see {@see GeneratorsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListGeneratorsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project/location to list generators for. Format: + * `projects//locations/` + * @type int $page_size + * Optional. Maximum number of conversation models to return in a single page. + * Default to 10. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project/location to list generators for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project/location to list generators for. Format: + * `projects//locations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Maximum number of conversation models to return in a single page. + * Default to 10. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. Maximum number of conversation models to return in a single page. + * Default to 10. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListGeneratorsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListGeneratorsResponse.php new file mode 100644 index 0000000..e498897 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListGeneratorsResponse.php @@ -0,0 +1,105 @@ +google.cloud.dialogflow.v2.ListGeneratorsResponse + */ +class ListGeneratorsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * List of generators retrieved. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Generator generators = 1; + */ + private $generators; + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Generator>|\Google\Protobuf\Internal\RepeatedField $generators + * List of generators retrieved. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * List of generators retrieved. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Generator generators = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getGenerators() + { + return $this->generators; + } + + /** + * List of generators retrieved. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Generator generators = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Generator>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setGenerators($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Generator::class); + $this->generators = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no more + * results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListIntentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListIntentsRequest.php new file mode 100644 index 0000000..67abb03 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListIntentsRequest.php @@ -0,0 +1,308 @@ +google.cloud.dialogflow.v2.ListIntentsRequest + */ +class ListIntentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to list all intents from. + * Format: `projects//agent` or `projects//locations//agent`. + * Alternatively, you can specify the environment to list intents for. + * Format: `projects//agent/environments/` + * or `projects//locations//agent/environments/`. + * Note: training phrases of the intents will not be returned for non-draft + * environment. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $intent_view = 0; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The agent to list all intents from. + * Format: `projects//agent` or `projects//locations//agent`. + * + * Alternatively, you can specify the environment to list intents for. + * Format: `projects//agent/environments/` + * or `projects//locations//agent/environments/`. + * Note: training phrases of the intents will not be returned for non-draft + * environment. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListIntentsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * @param string $parent Required. The agent to list all intents from. + * Format: `projects//agent` or `projects//locations//agent`. + * + * Alternatively, you can specify the environment to list intents for. + * Format: `projects//agent/environments/` + * or `projects//locations//agent/environments/`. + * Note: training phrases of the intents will not be returned for non-draft + * environment. Please see + * {@see IntentsClient::agentName()} for help formatting this field. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\ListIntentsRequest + * + * @experimental + */ + public static function buildFromParentLanguageCode(string $parent, string $languageCode): self + { + return (new self()) + ->setParent($parent) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to list all intents from. + * Format: `projects//agent` or `projects//locations//agent`. + * Alternatively, you can specify the environment to list intents for. + * Format: `projects//agent/environments/` + * or `projects//locations//agent/environments/`. + * Note: training phrases of the intents will not be returned for non-draft + * environment. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type int $intent_view + * Optional. The resource view to apply to the returned intent. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to list all intents from. + * Format: `projects//agent` or `projects//locations//agent`. + * Alternatively, you can specify the environment to list intents for. + * Format: `projects//agent/environments/` + * or `projects//locations//agent/environments/`. + * Note: training phrases of the intents will not be returned for non-draft + * environment. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to list all intents from. + * Format: `projects//agent` or `projects//locations//agent`. + * Alternatively, you can specify the environment to list intents for. + * Format: `projects//agent/environments/` + * or `projects//locations//agent/environments/`. + * Note: training phrases of the intents will not be returned for non-draft + * environment. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getIntentView() + { + return $this->intent_view; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setIntentView($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\IntentView::class); + $this->intent_view = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListIntentsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListIntentsResponse.php new file mode 100644 index 0000000..8d1fe4c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListIntentsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListIntentsResponse + */ +class ListIntentsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of agent intents. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + */ + private $intents; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $intents + * The list of agent intents. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * The list of agent intents. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getIntents() + { + return $this->intents; + } + + /** + * The list of agent intents. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent intents = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Intent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setIntents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intents = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesRequest.php new file mode 100644 index 0000000..5fba54a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesRequest.php @@ -0,0 +1,265 @@ +google.cloud.dialogflow.v2.ListKnowledgeBasesRequest + */ +class ListKnowledgeBasesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to list of knowledge bases for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * + * Generated from protobuf field int32 page_size = 2; + */ + protected $page_size = 0; + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + */ + protected $page_token = ''; + /** + * The filter expression used to filter knowledge bases returned by the list + * method. The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * display_name with has(:) operator + * * language_code with equals(=) operator + * Examples: + * * 'language_code=en-us' matches knowledge bases with en-us language code. + * * 'display_name:articles' matches knowledge bases whose display name + * contains "articles". + * * 'display_name:"Best Articles"' matches knowledge bases whose display + * name contains "Best Articles". + * * 'language_code=en-gb AND display_name=articles' matches all knowledge + * bases whose display name contains "articles" and whose language code is + * "en-gb". + * Note: An empty filter string (i.e. "") is a no-op and will result in no + * filtering. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4; + */ + protected $filter = ''; + + /** + * @param string $parent Required. The project to list of knowledge bases for. + * Format: `projects//locations/`. Please see + * {@see KnowledgeBasesClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListKnowledgeBasesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to list of knowledge bases for. + * Format: `projects//locations/`. + * @type int $page_size + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * @type string $page_token + * The next_page_token value returned from a previous list request. + * @type string $filter + * The filter expression used to filter knowledge bases returned by the list + * method. The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * display_name with has(:) operator + * * language_code with equals(=) operator + * Examples: + * * 'language_code=en-us' matches knowledge bases with en-us language code. + * * 'display_name:articles' matches knowledge bases whose display name + * contains "articles". + * * 'display_name:"Best Articles"' matches knowledge bases whose display + * name contains "Best Articles". + * * 'language_code=en-gb AND display_name=articles' matches all knowledge + * bases whose display name contains "articles" and whose language code is + * "en-gb". + * Note: An empty filter string (i.e. "") is a no-op and will result in no + * filtering. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to list of knowledge bases for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to list of knowledge bases for. + * Format: `projects//locations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * + * Generated from protobuf field int32 page_size = 2; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * The maximum number of items to return in a single page. By + * default 10 and at most 100. + * + * Generated from protobuf field int32 page_size = 2; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + + /** + * The filter expression used to filter knowledge bases returned by the list + * method. The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * display_name with has(:) operator + * * language_code with equals(=) operator + * Examples: + * * 'language_code=en-us' matches knowledge bases with en-us language code. + * * 'display_name:articles' matches knowledge bases whose display name + * contains "articles". + * * 'display_name:"Best Articles"' matches knowledge bases whose display + * name contains "Best Articles". + * * 'language_code=en-gb AND display_name=articles' matches all knowledge + * bases whose display name contains "articles" and whose language code is + * "en-gb". + * Note: An empty filter string (i.e. "") is a no-op and will result in no + * filtering. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * The filter expression used to filter knowledge bases returned by the list + * method. The expression has the following syntax: + * [AND ] ... + * The following fields and operators are supported: + * * display_name with has(:) operator + * * language_code with equals(=) operator + * Examples: + * * 'language_code=en-us' matches knowledge bases with en-us language code. + * * 'display_name:articles' matches knowledge bases whose display name + * contains "articles". + * * 'display_name:"Best Articles"' matches knowledge bases whose display + * name contains "Best Articles". + * * 'language_code=en-gb AND display_name=articles' matches all knowledge + * bases whose display name contains "articles" and whose language code is + * "en-gb". + * Note: An empty filter string (i.e. "") is a no-op and will result in no + * filtering. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesResponse.php new file mode 100644 index 0000000..89838ab --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListKnowledgeBasesResponse.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.ListKnowledgeBasesResponse + */ +class ListKnowledgeBasesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of knowledge bases. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.KnowledgeBase knowledge_bases = 1; + */ + private $knowledge_bases; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\KnowledgeBase>|\Google\Protobuf\Internal\RepeatedField $knowledge_bases + * The list of knowledge bases. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * The list of knowledge bases. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.KnowledgeBase knowledge_bases = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getKnowledgeBases() + { + return $this->knowledge_bases; + } + + /** + * The list of knowledge bases. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.KnowledgeBase knowledge_bases = 1; + * @param array<\Google\Cloud\Dialogflow\V2\KnowledgeBase>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setKnowledgeBases($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\KnowledgeBase::class); + $this->knowledge_bases = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListMessagesRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListMessagesRequest.php new file mode 100644 index 0000000..bb73b25 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListMessagesRequest.php @@ -0,0 +1,222 @@ +google.cloud.dialogflow.v2.ListMessagesRequest + */ +class ListMessagesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the conversation to list messages for. + * Format: `projects//locations//conversations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. Filter on message fields. Currently predicates on `create_time` + * and `create_time_epoch_microseconds` are supported. `create_time` only + * support milliseconds accuracy. E.g., + * `create_time_epoch_microseconds > 1551790877964485` or + * `create_time > 2017-01-15T01:30:15.01Z`. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The name of the conversation to list messages for. + * Format: `projects//locations//conversations/` + * Please see {@see ConversationsClient::conversationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListMessagesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the conversation to list messages for. + * Format: `projects//locations//conversations/` + * @type string $filter + * Optional. Filter on message fields. Currently predicates on `create_time` + * and `create_time_epoch_microseconds` are supported. `create_time` only + * support milliseconds accuracy. E.g., + * `create_time_epoch_microseconds > 1551790877964485` or + * `create_time > 2017-01-15T01:30:15.01Z`. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the conversation to list messages for. + * Format: `projects//locations//conversations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the conversation to list messages for. + * Format: `projects//locations//conversations/` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. Filter on message fields. Currently predicates on `create_time` + * and `create_time_epoch_microseconds` are supported. `create_time` only + * support milliseconds accuracy. E.g., + * `create_time_epoch_microseconds > 1551790877964485` or + * `create_time > 2017-01-15T01:30:15.01Z`. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. Filter on message fields. Currently predicates on `create_time` + * and `create_time_epoch_microseconds` are supported. `create_time` only + * support milliseconds accuracy. E.g., + * `create_time_epoch_microseconds > 1551790877964485` or + * `create_time > 2017-01-15T01:30:15.01Z`. + * For more information about filtering, see + * [API Filtering](https://aip.dev/160). + * + * Generated from protobuf field string filter = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListMessagesResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListMessagesResponse.php new file mode 100644 index 0000000..694488d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListMessagesResponse.php @@ -0,0 +1,114 @@ +google.cloud.dialogflow.v2.ListMessagesResponse + */ +class ListMessagesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of messages. There will be a maximum number of items + * returned based on the page_size field in the request. + * `messages` is sorted by `create_time` in descending order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Message messages = 1; + */ + private $messages; + /** + * Token to retrieve the next page of results, or empty if there are + * no more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Message>|\Google\Protobuf\Internal\RepeatedField $messages + * The list of messages. There will be a maximum number of items + * returned based on the page_size field in the request. + * `messages` is sorted by `create_time` in descending order. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are + * no more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * The list of messages. There will be a maximum number of items + * returned based on the page_size field in the request. + * `messages` is sorted by `create_time` in descending order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Message messages = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMessages() + { + return $this->messages; + } + + /** + * The list of messages. There will be a maximum number of items + * returned based on the page_size field in the request. + * `messages` is sorted by `create_time` in descending order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Message messages = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Message>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMessages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Message::class); + $this->messages = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are + * no more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are + * no more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListParticipantsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListParticipantsRequest.php new file mode 100644 index 0000000..ac01cf2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListParticipantsRequest.php @@ -0,0 +1,164 @@ +google.cloud.dialogflow.v2.ListParticipantsRequest + */ +class ListParticipantsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation to list all participants from. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The conversation to list all participants from. + * Format: `projects//locations//conversations/`. Please see + * {@see ParticipantsClient::conversationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListParticipantsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The conversation to list all participants from. + * Format: `projects//locations//conversations/`. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation to list all participants from. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The conversation to list all participants from. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListParticipantsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListParticipantsResponse.php new file mode 100644 index 0000000..800b88a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListParticipantsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListParticipantsResponse + */ +class ListParticipantsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of participants. There is a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Participant participants = 1; + */ + private $participants; + /** + * Token to retrieve the next page of results or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Participant>|\Google\Protobuf\Internal\RepeatedField $participants + * The list of participants. There is a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The list of participants. There is a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Participant participants = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getParticipants() + { + return $this->participants; + } + + /** + * The list of participants. There is a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Participant participants = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Participant>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setParticipants($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Participant::class); + $this->participants = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesRequest.php new file mode 100644 index 0000000..e178b68 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesRequest.php @@ -0,0 +1,179 @@ +google.cloud.dialogflow.v2.ListSessionEntityTypesRequest + */ +class ListSessionEntityTypesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The session to list all session entity types from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The session to list all session entity types from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. Please see + * {@see SessionEntityTypesClient::sessionName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListSessionEntityTypesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The session to list all session entity types from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The session to list all session entity types from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The session to list all session entity types from. + * Format: `projects//agent/sessions/` or + * `projects//agent/environments//users// + * sessions/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesResponse.php new file mode 100644 index 0000000..87ea45c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListSessionEntityTypesResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListSessionEntityTypesResponse + */ +class ListSessionEntityTypesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of session entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 1; + */ + private $session_entity_types; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SessionEntityType>|\Google\Protobuf\Internal\RepeatedField $session_entity_types + * The list of session entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * The list of session entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSessionEntityTypes() + { + return $this->session_entity_types; + } + + /** + * The list of session entity types. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 1; + * @param array<\Google\Cloud\Dialogflow\V2\SessionEntityType>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSessionEntityTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SessionEntityType::class); + $this->session_entity_types = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListVersionsRequest.php b/vendor/google/cloud-dialogflow/src/V2/ListVersionsRequest.php new file mode 100644 index 0000000..be9c319 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListVersionsRequest.php @@ -0,0 +1,170 @@ +google.cloud.dialogflow.v2.ListVersionsRequest + */ +class ListVersionsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to list all versions from. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The agent to list all versions from. + * Supported formats: + * + * - `projects//agent` + * - `projects//locations//agent` + * Please see {@see VersionsClient::agentName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\ListVersionsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The agent to list all versions from. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * Optional. The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to list all versions from. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The agent to list all versions from. + * Supported formats: + * - `projects//agent` + * - `projects//locations//agent` + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Optional. The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ListVersionsResponse.php b/vendor/google/cloud-dialogflow/src/V2/ListVersionsResponse.php new file mode 100644 index 0000000..653aa7d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ListVersionsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.ListVersionsResponse + */ +class ListVersionsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of agent versions. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Version versions = 1; + */ + private $versions; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Version>|\Google\Protobuf\Internal\RepeatedField $versions + * The list of agent versions. There will be a maximum number of items + * returned based on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * The list of agent versions. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Version versions = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getVersions() + { + return $this->versions; + } + + /** + * The list of agent versions. There will be a maximum number of items + * returned based on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Version versions = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Version>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setVersions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Version::class); + $this->versions = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/LoggingConfig.php b/vendor/google/cloud-dialogflow/src/V2/LoggingConfig.php new file mode 100644 index 0000000..31121f0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/LoggingConfig.php @@ -0,0 +1,79 @@ +google.cloud.dialogflow.v2.LoggingConfig + */ +class LoggingConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Whether to log conversation events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * to Stackdriver in the conversation project as JSON format + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * + * Generated from protobuf field bool enable_stackdriver_logging = 3; + */ + protected $enable_stackdriver_logging = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $enable_stackdriver_logging + * Whether to log conversation events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * to Stackdriver in the conversation project as JSON format + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Whether to log conversation events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * to Stackdriver in the conversation project as JSON format + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * + * Generated from protobuf field bool enable_stackdriver_logging = 3; + * @return bool + */ + public function getEnableStackdriverLogging() + { + return $this->enable_stackdriver_logging; + } + + /** + * Whether to log conversation events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * to Stackdriver in the conversation project as JSON format + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * + * Generated from protobuf field bool enable_stackdriver_logging = 3; + * @param bool $var + * @return $this + */ + public function setEnableStackdriverLogging($var) + { + GPBUtil::checkBool($var); + $this->enable_stackdriver_logging = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Message.php b/vendor/google/cloud-dialogflow/src/V2/Message.php new file mode 100644 index 0000000..94eeee3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Message.php @@ -0,0 +1,399 @@ +google.cloud.dialogflow.v2.Message + */ +class Message extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The unique identifier of the message. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $name = ''; + /** + * Required. The message content. + * + * Generated from protobuf field string content = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $content = ''; + /** + * Optional. The message language. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Output only. The participant that sends this message. + * + * Generated from protobuf field string participant = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $participant = ''; + /** + * Output only. The role of the participant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $participant_role = 0; + /** + * Output only. The time when the message was created in Contact Center AI. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Optional. The time when the message was sent. For voice messages, this is + * the time when an utterance started. + * + * Generated from protobuf field .google.protobuf.Timestamp send_time = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $send_time = null; + /** + * Output only. The annotation for the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.MessageAnnotation message_annotation = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $message_annotation = null; + /** + * Output only. The sentiment analysis result for the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisResult sentiment_analysis = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $sentiment_analysis = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The unique identifier of the message. + * Format: `projects//locations//conversations//messages/`. + * @type string $content + * Required. The message content. + * @type string $language_code + * Optional. The message language. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * @type string $participant + * Output only. The participant that sends this message. + * @type int $participant_role + * Output only. The role of the participant. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The time when the message was created in Contact Center AI. + * @type \Google\Protobuf\Timestamp $send_time + * Optional. The time when the message was sent. For voice messages, this is + * the time when an utterance started. + * @type \Google\Cloud\Dialogflow\V2\MessageAnnotation $message_annotation + * Output only. The annotation for the message. + * @type \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult $sentiment_analysis + * Output only. The sentiment analysis result for the message. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The unique identifier of the message. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The unique identifier of the message. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The message content. + * + * Generated from protobuf field string content = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getContent() + { + return $this->content; + } + + /** + * Required. The message content. + * + * Generated from protobuf field string content = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setContent($var) + { + GPBUtil::checkString($var, True); + $this->content = $var; + + return $this; + } + + /** + * Optional. The message language. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The message language. + * This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) + * language tag. Example: "en-US". + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Output only. The participant that sends this message. + * + * Generated from protobuf field string participant = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getParticipant() + { + return $this->participant; + } + + /** + * Output only. The participant that sends this message. + * + * Generated from protobuf field string participant = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setParticipant($var) + { + GPBUtil::checkString($var, True); + $this->participant = $var; + + return $this; + } + + /** + * Output only. The role of the participant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getParticipantRole() + { + return $this->participant_role; + } + + /** + * Output only. The role of the participant. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 5 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setParticipantRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Participant\Role::class); + $this->participant_role = $var; + + return $this; + } + + /** + * Output only. The time when the message was created in Contact Center AI. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The time when the message was created in Contact Center AI. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Optional. The time when the message was sent. For voice messages, this is + * the time when an utterance started. + * + * Generated from protobuf field .google.protobuf.Timestamp send_time = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getSendTime() + { + return $this->send_time; + } + + public function hasSendTime() + { + return isset($this->send_time); + } + + public function clearSendTime() + { + unset($this->send_time); + } + + /** + * Optional. The time when the message was sent. For voice messages, this is + * the time when an utterance started. + * + * Generated from protobuf field .google.protobuf.Timestamp send_time = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setSendTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->send_time = $var; + + return $this; + } + + /** + * Output only. The annotation for the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.MessageAnnotation message_annotation = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\MessageAnnotation|null + */ + public function getMessageAnnotation() + { + return $this->message_annotation; + } + + public function hasMessageAnnotation() + { + return isset($this->message_annotation); + } + + public function clearMessageAnnotation() + { + unset($this->message_annotation); + } + + /** + * Output only. The annotation for the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.MessageAnnotation message_annotation = 7 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\MessageAnnotation $var + * @return $this + */ + public function setMessageAnnotation($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\MessageAnnotation::class); + $this->message_annotation = $var; + + return $this; + } + + /** + * Output only. The sentiment analysis result for the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisResult sentiment_analysis = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult|null + */ + public function getSentimentAnalysis() + { + return $this->sentiment_analysis; + } + + public function hasSentimentAnalysis() + { + return isset($this->sentiment_analysis); + } + + public function clearSentimentAnalysis() + { + unset($this->sentiment_analysis); + } + + /** + * Output only. The sentiment analysis result for the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisResult sentiment_analysis = 8 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult $var + * @return $this + */ + public function setSentimentAnalysis($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult::class); + $this->sentiment_analysis = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/MessageAnnotation.php b/vendor/google/cloud-dialogflow/src/V2/MessageAnnotation.php new file mode 100644 index 0000000..d1860e5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/MessageAnnotation.php @@ -0,0 +1,109 @@ +google.cloud.dialogflow.v2.MessageAnnotation + */ +class MessageAnnotation extends \Google\Protobuf\Internal\Message +{ + /** + * The collection of annotated message parts ordered by their + * position in the message. You can recover the annotated message by + * concatenating [AnnotatedMessagePart.text]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.AnnotatedMessagePart parts = 1; + */ + private $parts; + /** + * Indicates whether the text message contains entities. + * + * Generated from protobuf field bool contain_entities = 2; + */ + protected $contain_entities = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\AnnotatedMessagePart>|\Google\Protobuf\Internal\RepeatedField $parts + * The collection of annotated message parts ordered by their + * position in the message. You can recover the annotated message by + * concatenating [AnnotatedMessagePart.text]. + * @type bool $contain_entities + * Indicates whether the text message contains entities. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The collection of annotated message parts ordered by their + * position in the message. You can recover the annotated message by + * concatenating [AnnotatedMessagePart.text]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.AnnotatedMessagePart parts = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getParts() + { + return $this->parts; + } + + /** + * The collection of annotated message parts ordered by their + * position in the message. You can recover the annotated message by + * concatenating [AnnotatedMessagePart.text]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.AnnotatedMessagePart parts = 1; + * @param array<\Google\Cloud\Dialogflow\V2\AnnotatedMessagePart>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setParts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\AnnotatedMessagePart::class); + $this->parts = $arr; + + return $this; + } + + /** + * Indicates whether the text message contains entities. + * + * Generated from protobuf field bool contain_entities = 2; + * @return bool + */ + public function getContainEntities() + { + return $this->contain_entities; + } + + /** + * Indicates whether the text message contains entities. + * + * Generated from protobuf field bool contain_entities = 2; + * @param bool $var + * @return $this + */ + public function setContainEntities($var) + { + GPBUtil::checkBool($var); + $this->contain_entities = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/MessageEntry.php b/vendor/google/cloud-dialogflow/src/V2/MessageEntry.php new file mode 100644 index 0000000..53c6cdd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/MessageEntry.php @@ -0,0 +1,187 @@ +google.cloud.dialogflow.v2.MessageEntry + */ +class MessageEntry extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Participant role of the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.MessageEntry.Role role = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $role = 0; + /** + * Optional. Transcript content of the message. + * + * Generated from protobuf field string text = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $text = ''; + /** + * Optional. The language of the text. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) for a + * list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. Create time of the message entry. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $role + * Optional. Participant role of the message. + * @type string $text + * Optional. Transcript content of the message. + * @type string $language_code + * Optional. The language of the text. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) for a + * list of the currently supported language codes. + * @type \Google\Protobuf\Timestamp $create_time + * Optional. Create time of the message entry. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Participant role of the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.MessageEntry.Role role = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getRole() + { + return $this->role; + } + + /** + * Optional. Participant role of the message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.MessageEntry.Role role = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\MessageEntry\Role::class); + $this->role = $var; + + return $this; + } + + /** + * Optional. Transcript content of the message. + * + * Generated from protobuf field string text = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Optional. Transcript content of the message. + * + * Generated from protobuf field string text = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * Optional. The language of the text. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) for a + * list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language of the text. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) for a + * list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. Create time of the message entry. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Optional. Create time of the message entry. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/MessageEntry/Role.php b/vendor/google/cloud-dialogflow/src/V2/MessageEntry/Role.php new file mode 100644 index 0000000..541c39a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/MessageEntry/Role.php @@ -0,0 +1,70 @@ +google.cloud.dialogflow.v2.MessageEntry.Role + */ +class Role +{ + /** + * Participant role not set. + * + * Generated from protobuf enum ROLE_UNSPECIFIED = 0; + */ + const ROLE_UNSPECIFIED = 0; + /** + * Participant is a human agent. + * + * Generated from protobuf enum HUMAN_AGENT = 1; + */ + const HUMAN_AGENT = 1; + /** + * Participant is an automated agent, such as a Dialogflow agent. + * + * Generated from protobuf enum AUTOMATED_AGENT = 2; + */ + const AUTOMATED_AGENT = 2; + /** + * Participant is an end user that has called or chatted with + * Dialogflow services. + * + * Generated from protobuf enum END_USER = 3; + */ + const END_USER = 3; + + private static $valueToName = [ + self::ROLE_UNSPECIFIED => 'ROLE_UNSPECIFIED', + self::HUMAN_AGENT => 'HUMAN_AGENT', + self::AUTOMATED_AGENT => 'AUTOMATED_AGENT', + self::END_USER => 'END_USER', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/NotificationConfig.php b/vendor/google/cloud-dialogflow/src/V2/NotificationConfig.php new file mode 100644 index 0000000..f096ff3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/NotificationConfig.php @@ -0,0 +1,149 @@ +google.cloud.dialogflow.v2.NotificationConfig + */ +class NotificationConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Name of the Pub/Sub topic to publish conversation + * events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * as serialized + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * For telephony integration to receive notification, make sure either this + * topic is in the same project as the conversation or you grant + * `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service + * Agent` role in the topic project. + * For chat integration to receive notification, make sure API caller has been + * granted the `Dialogflow Service Agent` role for the topic. + * Format: `projects//locations//topics/`. + * + * Generated from protobuf field string topic = 1; + */ + protected $topic = ''; + /** + * Format of message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig.MessageFormat message_format = 2; + */ + protected $message_format = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $topic + * Name of the Pub/Sub topic to publish conversation + * events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * as serialized + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * For telephony integration to receive notification, make sure either this + * topic is in the same project as the conversation or you grant + * `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service + * Agent` role in the topic project. + * For chat integration to receive notification, make sure API caller has been + * granted the `Dialogflow Service Agent` role for the topic. + * Format: `projects//locations//topics/`. + * @type int $message_format + * Format of message. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Name of the Pub/Sub topic to publish conversation + * events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * as serialized + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * For telephony integration to receive notification, make sure either this + * topic is in the same project as the conversation or you grant + * `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service + * Agent` role in the topic project. + * For chat integration to receive notification, make sure API caller has been + * granted the `Dialogflow Service Agent` role for the topic. + * Format: `projects//locations//topics/`. + * + * Generated from protobuf field string topic = 1; + * @return string + */ + public function getTopic() + { + return $this->topic; + } + + /** + * Name of the Pub/Sub topic to publish conversation + * events like + * [CONVERSATION_STARTED][google.cloud.dialogflow.v2.ConversationEvent.Type.CONVERSATION_STARTED] + * as serialized + * [ConversationEvent][google.cloud.dialogflow.v2.ConversationEvent] protos. + * For telephony integration to receive notification, make sure either this + * topic is in the same project as the conversation or you grant + * `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow Service + * Agent` role in the topic project. + * For chat integration to receive notification, make sure API caller has been + * granted the `Dialogflow Service Agent` role for the topic. + * Format: `projects//locations//topics/`. + * + * Generated from protobuf field string topic = 1; + * @param string $var + * @return $this + */ + public function setTopic($var) + { + GPBUtil::checkString($var, True); + $this->topic = $var; + + return $this; + } + + /** + * Format of message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig.MessageFormat message_format = 2; + * @return int + */ + public function getMessageFormat() + { + return $this->message_format; + } + + /** + * Format of message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.NotificationConfig.MessageFormat message_format = 2; + * @param int $var + * @return $this + */ + public function setMessageFormat($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\NotificationConfig\MessageFormat::class); + $this->message_format = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/NotificationConfig/MessageFormat.php b/vendor/google/cloud-dialogflow/src/V2/NotificationConfig/MessageFormat.php new file mode 100644 index 0000000..07a77e2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/NotificationConfig/MessageFormat.php @@ -0,0 +1,62 @@ +google.cloud.dialogflow.v2.NotificationConfig.MessageFormat + */ +class MessageFormat +{ + /** + * If it is unspecified, PROTO will be used. + * + * Generated from protobuf enum MESSAGE_FORMAT_UNSPECIFIED = 0; + */ + const MESSAGE_FORMAT_UNSPECIFIED = 0; + /** + * Pub/Sub message will be serialized proto. + * + * Generated from protobuf enum PROTO = 1; + */ + const PROTO = 1; + /** + * Pub/Sub message will be json. + * + * Generated from protobuf enum JSON = 2; + */ + const JSON = 2; + + private static $valueToName = [ + self::MESSAGE_FORMAT_UNSPECIFIED => 'MESSAGE_FORMAT_UNSPECIFIED', + self::PROTO => 'PROTO', + self::JSON => 'JSON', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/OriginalDetectIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/OriginalDetectIntentRequest.php new file mode 100644 index 0000000..3522f20 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/OriginalDetectIntentRequest.php @@ -0,0 +1,202 @@ +google.cloud.dialogflow.v2.OriginalDetectIntentRequest + */ +class OriginalDetectIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * The source of this request, e.g., `google`, `facebook`, `slack`. It is set + * by Dialogflow-owned servers. + * + * Generated from protobuf field string source = 1; + */ + protected $source = ''; + /** + * Optional. The version of the protocol used for this request. + * This field is AoG-specific. + * + * Generated from protobuf field string version = 2; + */ + protected $version = ''; + /** + * Optional. This field is set to the value of the `QueryParameters.payload` + * field passed in the request. Some integrations that query a Dialogflow + * agent may provide additional information in the payload. + * In particular, for the Dialogflow Phone Gateway integration, this field has + * the form: + *
{
+     *  "telephony": {
+     *    "caller_id": "+18558363987"
+     *  }
+     * }
+ * Note: The caller ID field (`caller_id`) will be redacted for Trial + * Edition agents and populated with the caller ID in [E.164 + * format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents. + * + * Generated from protobuf field .google.protobuf.Struct payload = 3; + */ + protected $payload = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $source + * The source of this request, e.g., `google`, `facebook`, `slack`. It is set + * by Dialogflow-owned servers. + * @type string $version + * Optional. The version of the protocol used for this request. + * This field is AoG-specific. + * @type \Google\Protobuf\Struct $payload + * Optional. This field is set to the value of the `QueryParameters.payload` + * field passed in the request. Some integrations that query a Dialogflow + * agent may provide additional information in the payload. + * In particular, for the Dialogflow Phone Gateway integration, this field has + * the form: + *
{
+     *            "telephony": {
+     *              "caller_id": "+18558363987"
+     *            }
+     *           }
+ * Note: The caller ID field (`caller_id`) will be redacted for Trial + * Edition agents and populated with the caller ID in [E.164 + * format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Webhook::initOnce(); + parent::__construct($data); + } + + /** + * The source of this request, e.g., `google`, `facebook`, `slack`. It is set + * by Dialogflow-owned servers. + * + * Generated from protobuf field string source = 1; + * @return string + */ + public function getSource() + { + return $this->source; + } + + /** + * The source of this request, e.g., `google`, `facebook`, `slack`. It is set + * by Dialogflow-owned servers. + * + * Generated from protobuf field string source = 1; + * @param string $var + * @return $this + */ + public function setSource($var) + { + GPBUtil::checkString($var, True); + $this->source = $var; + + return $this; + } + + /** + * Optional. The version of the protocol used for this request. + * This field is AoG-specific. + * + * Generated from protobuf field string version = 2; + * @return string + */ + public function getVersion() + { + return $this->version; + } + + /** + * Optional. The version of the protocol used for this request. + * This field is AoG-specific. + * + * Generated from protobuf field string version = 2; + * @param string $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkString($var, True); + $this->version = $var; + + return $this; + } + + /** + * Optional. This field is set to the value of the `QueryParameters.payload` + * field passed in the request. Some integrations that query a Dialogflow + * agent may provide additional information in the payload. + * In particular, for the Dialogflow Phone Gateway integration, this field has + * the form: + *
{
+     *  "telephony": {
+     *    "caller_id": "+18558363987"
+     *  }
+     * }
+ * Note: The caller ID field (`caller_id`) will be redacted for Trial + * Edition agents and populated with the caller ID in [E.164 + * format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents. + * + * Generated from protobuf field .google.protobuf.Struct payload = 3; + * @return \Google\Protobuf\Struct|null + */ + public function getPayload() + { + return $this->payload; + } + + public function hasPayload() + { + return isset($this->payload); + } + + public function clearPayload() + { + unset($this->payload); + } + + /** + * Optional. This field is set to the value of the `QueryParameters.payload` + * field passed in the request. Some integrations that query a Dialogflow + * agent may provide additional information in the payload. + * In particular, for the Dialogflow Phone Gateway integration, this field has + * the form: + *
{
+     *  "telephony": {
+     *    "caller_id": "+18558363987"
+     *  }
+     * }
+ * Note: The caller ID field (`caller_id`) will be redacted for Trial + * Edition agents and populated with the caller ID in [E.164 + * format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents. + * + * Generated from protobuf field .google.protobuf.Struct payload = 3; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setPayload($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->payload = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/OutputAudio.php b/vendor/google/cloud-dialogflow/src/V2/OutputAudio.php new file mode 100644 index 0000000..33828b7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/OutputAudio.php @@ -0,0 +1,115 @@ +google.cloud.dialogflow.v2.OutputAudio + */ +class OutputAudio extends \Google\Protobuf\Internal\Message +{ + /** + * Instructs the speech synthesizer how to generate the speech + * audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig config = 1; + */ + protected $config = null; + /** + * The natural language speech audio. + * + * Generated from protobuf field bytes audio = 2; + */ + protected $audio = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $config + * Instructs the speech synthesizer how to generate the speech + * audio. + * @type string $audio + * The natural language speech audio. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Instructs the speech synthesizer how to generate the speech + * audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig config = 1; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getConfig() + { + return $this->config; + } + + public function hasConfig() + { + return isset($this->config); + } + + public function clearConfig() + { + unset($this->config); + } + + /** + * Instructs the speech synthesizer how to generate the speech + * audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig config = 1; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->config = $var; + + return $this; + } + + /** + * The natural language speech audio. + * + * Generated from protobuf field bytes audio = 2; + * @return string + */ + public function getAudio() + { + return $this->audio; + } + + /** + * The natural language speech audio. + * + * Generated from protobuf field bytes audio = 2; + * @param string $var + * @return $this + */ + public function setAudio($var) + { + GPBUtil::checkString($var, False); + $this->audio = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/OutputAudioConfig.php b/vendor/google/cloud-dialogflow/src/V2/OutputAudioConfig.php new file mode 100644 index 0000000..0380436 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/OutputAudioConfig.php @@ -0,0 +1,163 @@ +google.cloud.dialogflow.v2.OutputAudioConfig + */ +class OutputAudioConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Audio encoding of the synthesized audio content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioEncoding audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $audio_encoding = 0; + /** + * The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * + * Generated from protobuf field int32 sample_rate_hertz = 2; + */ + protected $sample_rate_hertz = 0; + /** + * Configuration of how speech should be synthesized. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SynthesizeSpeechConfig synthesize_speech_config = 3; + */ + protected $synthesize_speech_config = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $audio_encoding + * Required. Audio encoding of the synthesized audio content. + * @type int $sample_rate_hertz + * The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * @type \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig $synthesize_speech_config + * Configuration of how speech should be synthesized. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * Required. Audio encoding of the synthesized audio content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioEncoding audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getAudioEncoding() + { + return $this->audio_encoding; + } + + /** + * Required. Audio encoding of the synthesized audio content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioEncoding audio_encoding = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setAudioEncoding($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\OutputAudioEncoding::class); + $this->audio_encoding = $var; + + return $this; + } + + /** + * The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * + * Generated from protobuf field int32 sample_rate_hertz = 2; + * @return int + */ + public function getSampleRateHertz() + { + return $this->sample_rate_hertz; + } + + /** + * The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * + * Generated from protobuf field int32 sample_rate_hertz = 2; + * @param int $var + * @return $this + */ + public function setSampleRateHertz($var) + { + GPBUtil::checkInt32($var); + $this->sample_rate_hertz = $var; + + return $this; + } + + /** + * Configuration of how speech should be synthesized. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SynthesizeSpeechConfig synthesize_speech_config = 3; + * @return \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig|null + */ + public function getSynthesizeSpeechConfig() + { + return $this->synthesize_speech_config; + } + + public function hasSynthesizeSpeechConfig() + { + return isset($this->synthesize_speech_config); + } + + public function clearSynthesizeSpeechConfig() + { + unset($this->synthesize_speech_config); + } + + /** + * Configuration of how speech should be synthesized. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SynthesizeSpeechConfig synthesize_speech_config = 3; + * @param \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig $var + * @return $this + */ + public function setSynthesizeSpeechConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig::class); + $this->synthesize_speech_config = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/OutputAudioEncoding.php b/vendor/google/cloud-dialogflow/src/V2/OutputAudioEncoding.php new file mode 100644 index 0000000..5ddca3f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/OutputAudioEncoding.php @@ -0,0 +1,93 @@ +google.cloud.dialogflow.v2.OutputAudioEncoding + */ +class OutputAudioEncoding +{ + /** + * Not specified. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0; + */ + const OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0; + /** + * Uncompressed 16-bit signed little-endian samples (Linear PCM). + * Audio content returned as LINEAR16 also contains a WAV header. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1; + */ + const OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1; + /** + * MP3 audio at 32kbps. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_MP3 = 2; + */ + const OUTPUT_AUDIO_ENCODING_MP3 = 2; + /** + * MP3 audio at 64kbps. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 4; + */ + const OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 4; + /** + * Opus encoded audio wrapped in an ogg container. The result will be a + * file which can be played natively on Android, and in browsers (at least + * Chrome and Firefox). The quality of the encoding is considerably higher + * than MP3 while using approximately the same bitrate. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3; + */ + const OUTPUT_AUDIO_ENCODING_OGG_OPUS = 3; + /** + * 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_MULAW = 5; + */ + const OUTPUT_AUDIO_ENCODING_MULAW = 5; + /** + * 8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law. + * + * Generated from protobuf enum OUTPUT_AUDIO_ENCODING_ALAW = 6; + */ + const OUTPUT_AUDIO_ENCODING_ALAW = 6; + + private static $valueToName = [ + self::OUTPUT_AUDIO_ENCODING_UNSPECIFIED => 'OUTPUT_AUDIO_ENCODING_UNSPECIFIED', + self::OUTPUT_AUDIO_ENCODING_LINEAR_16 => 'OUTPUT_AUDIO_ENCODING_LINEAR_16', + self::OUTPUT_AUDIO_ENCODING_MP3 => 'OUTPUT_AUDIO_ENCODING_MP3', + self::OUTPUT_AUDIO_ENCODING_MP3_64_KBPS => 'OUTPUT_AUDIO_ENCODING_MP3_64_KBPS', + self::OUTPUT_AUDIO_ENCODING_OGG_OPUS => 'OUTPUT_AUDIO_ENCODING_OGG_OPUS', + self::OUTPUT_AUDIO_ENCODING_MULAW => 'OUTPUT_AUDIO_ENCODING_MULAW', + self::OUTPUT_AUDIO_ENCODING_ALAW => 'OUTPUT_AUDIO_ENCODING_ALAW', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Participant.php b/vendor/google/cloud-dialogflow/src/V2/Participant.php new file mode 100644 index 0000000..1deb96d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Participant.php @@ -0,0 +1,387 @@ +google.cloud.dialogflow.v2.Participant + */ +class Participant extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The unique identifier of this participant. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $name = ''; + /** + * Immutable. The role this participant plays in the conversation. This field + * must be set during participant creation and is then immutable. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role role = 2 [(.google.api.field_behavior) = IMMUTABLE]; + */ + protected $role = 0; + /** + * Optional. Label applied to streams representing this participant in SIPREC + * XML metadata and SDP. This is used to assign transcriptions from that + * media stream to this participant. This field can be updated. + * + * Generated from protobuf field string sip_recording_media_label = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $sip_recording_media_label = ''; + /** + * Optional. Obfuscated user id that should be associated with the created + * participant. + * You can specify a user id as follows: + * 1. If you set this field in + * [CreateParticipantRequest][google.cloud.dialogflow.v2.CreateParticipantRequest.participant] + * or + * [UpdateParticipantRequest][google.cloud.dialogflow.v2.UpdateParticipantRequest.participant], + * Dialogflow adds the obfuscated user id with the participant. + * 2. If you set this field in + * [AnalyzeContent][google.cloud.dialogflow.v2.AnalyzeContentRequest.participant] + * or + * [StreamingAnalyzeContent][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest.participant], + * Dialogflow will update + * [Participant.obfuscated_external_user_id][google.cloud.dialogflow.v2.Participant.obfuscated_external_user_id]. + * Dialogflow returns an error if you try to add a user id for a + * non-[END_USER][google.cloud.dialogflow.v2.Participant.Role.END_USER] + * participant. + * Dialogflow uses this user id for billing and measurement purposes. For + * example, Dialogflow determines whether a user in one conversation returned + * in a later conversation. + * Note: + * * Please never pass raw user ids to Dialogflow. Always obfuscate your user + * id first. + * * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a + * hash function like SHA-512. + * * The length of the user id must be <= 256 characters. + * + * Generated from protobuf field string obfuscated_external_user_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $obfuscated_external_user_id = ''; + /** + * Optional. Key-value filters on the metadata of documents returned by + * article suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * + * Generated from protobuf field map documents_metadata_filters = 8 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $documents_metadata_filters; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The unique identifier of this participant. + * Format: `projects//locations//conversations//participants/`. + * @type int $role + * Immutable. The role this participant plays in the conversation. This field + * must be set during participant creation and is then immutable. + * @type string $sip_recording_media_label + * Optional. Label applied to streams representing this participant in SIPREC + * XML metadata and SDP. This is used to assign transcriptions from that + * media stream to this participant. This field can be updated. + * @type string $obfuscated_external_user_id + * Optional. Obfuscated user id that should be associated with the created + * participant. + * You can specify a user id as follows: + * 1. If you set this field in + * [CreateParticipantRequest][google.cloud.dialogflow.v2.CreateParticipantRequest.participant] + * or + * [UpdateParticipantRequest][google.cloud.dialogflow.v2.UpdateParticipantRequest.participant], + * Dialogflow adds the obfuscated user id with the participant. + * 2. If you set this field in + * [AnalyzeContent][google.cloud.dialogflow.v2.AnalyzeContentRequest.participant] + * or + * [StreamingAnalyzeContent][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest.participant], + * Dialogflow will update + * [Participant.obfuscated_external_user_id][google.cloud.dialogflow.v2.Participant.obfuscated_external_user_id]. + * Dialogflow returns an error if you try to add a user id for a + * non-[END_USER][google.cloud.dialogflow.v2.Participant.Role.END_USER] + * participant. + * Dialogflow uses this user id for billing and measurement purposes. For + * example, Dialogflow determines whether a user in one conversation returned + * in a later conversation. + * Note: + * * Please never pass raw user ids to Dialogflow. Always obfuscate your user + * id first. + * * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a + * hash function like SHA-512. + * * The length of the user id must be <= 256 characters. + * @type array|\Google\Protobuf\Internal\MapField $documents_metadata_filters + * Optional. Key-value filters on the metadata of documents returned by + * article suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The unique identifier of this participant. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The unique identifier of this participant. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Immutable. The role this participant plays in the conversation. This field + * must be set during participant creation and is then immutable. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role role = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @return int + */ + public function getRole() + { + return $this->role; + } + + /** + * Immutable. The role this participant plays in the conversation. This field + * must be set during participant creation and is then immutable. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role role = 2 [(.google.api.field_behavior) = IMMUTABLE]; + * @param int $var + * @return $this + */ + public function setRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Participant\Role::class); + $this->role = $var; + + return $this; + } + + /** + * Optional. Label applied to streams representing this participant in SIPREC + * XML metadata and SDP. This is used to assign transcriptions from that + * media stream to this participant. This field can be updated. + * + * Generated from protobuf field string sip_recording_media_label = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getSipRecordingMediaLabel() + { + return $this->sip_recording_media_label; + } + + /** + * Optional. Label applied to streams representing this participant in SIPREC + * XML metadata and SDP. This is used to assign transcriptions from that + * media stream to this participant. This field can be updated. + * + * Generated from protobuf field string sip_recording_media_label = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setSipRecordingMediaLabel($var) + { + GPBUtil::checkString($var, True); + $this->sip_recording_media_label = $var; + + return $this; + } + + /** + * Optional. Obfuscated user id that should be associated with the created + * participant. + * You can specify a user id as follows: + * 1. If you set this field in + * [CreateParticipantRequest][google.cloud.dialogflow.v2.CreateParticipantRequest.participant] + * or + * [UpdateParticipantRequest][google.cloud.dialogflow.v2.UpdateParticipantRequest.participant], + * Dialogflow adds the obfuscated user id with the participant. + * 2. If you set this field in + * [AnalyzeContent][google.cloud.dialogflow.v2.AnalyzeContentRequest.participant] + * or + * [StreamingAnalyzeContent][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest.participant], + * Dialogflow will update + * [Participant.obfuscated_external_user_id][google.cloud.dialogflow.v2.Participant.obfuscated_external_user_id]. + * Dialogflow returns an error if you try to add a user id for a + * non-[END_USER][google.cloud.dialogflow.v2.Participant.Role.END_USER] + * participant. + * Dialogflow uses this user id for billing and measurement purposes. For + * example, Dialogflow determines whether a user in one conversation returned + * in a later conversation. + * Note: + * * Please never pass raw user ids to Dialogflow. Always obfuscate your user + * id first. + * * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a + * hash function like SHA-512. + * * The length of the user id must be <= 256 characters. + * + * Generated from protobuf field string obfuscated_external_user_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getObfuscatedExternalUserId() + { + return $this->obfuscated_external_user_id; + } + + /** + * Optional. Obfuscated user id that should be associated with the created + * participant. + * You can specify a user id as follows: + * 1. If you set this field in + * [CreateParticipantRequest][google.cloud.dialogflow.v2.CreateParticipantRequest.participant] + * or + * [UpdateParticipantRequest][google.cloud.dialogflow.v2.UpdateParticipantRequest.participant], + * Dialogflow adds the obfuscated user id with the participant. + * 2. If you set this field in + * [AnalyzeContent][google.cloud.dialogflow.v2.AnalyzeContentRequest.participant] + * or + * [StreamingAnalyzeContent][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest.participant], + * Dialogflow will update + * [Participant.obfuscated_external_user_id][google.cloud.dialogflow.v2.Participant.obfuscated_external_user_id]. + * Dialogflow returns an error if you try to add a user id for a + * non-[END_USER][google.cloud.dialogflow.v2.Participant.Role.END_USER] + * participant. + * Dialogflow uses this user id for billing and measurement purposes. For + * example, Dialogflow determines whether a user in one conversation returned + * in a later conversation. + * Note: + * * Please never pass raw user ids to Dialogflow. Always obfuscate your user + * id first. + * * Dialogflow only accepts a UTF-8 encoded string, e.g., a hex digest of a + * hash function like SHA-512. + * * The length of the user id must be <= 256 characters. + * + * Generated from protobuf field string obfuscated_external_user_id = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setObfuscatedExternalUserId($var) + { + GPBUtil::checkString($var, True); + $this->obfuscated_external_user_id = $var; + + return $this; + } + + /** + * Optional. Key-value filters on the metadata of documents returned by + * article suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * + * Generated from protobuf field map documents_metadata_filters = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getDocumentsMetadataFilters() + { + return $this->documents_metadata_filters; + } + + /** + * Optional. Key-value filters on the metadata of documents returned by + * article suggestion. If specified, article suggestion only returns suggested + * documents that match all filters in their + * [Document.metadata][google.cloud.dialogflow.v2.Document.metadata]. Multiple + * values for a metadata key should be concatenated by comma. For example, + * filters to match all documents that have 'US' or 'CA' in their market + * metadata values and 'agent' in their user metadata values will be + * ``` + * documents_metadata_filters { + * key: "market" + * value: "US,CA" + * } + * documents_metadata_filters { + * key: "user" + * value: "agent" + * } + * ``` + * + * Generated from protobuf field map documents_metadata_filters = 8 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setDocumentsMetadataFilters($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->documents_metadata_filters = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Participant/Role.php b/vendor/google/cloud-dialogflow/src/V2/Participant/Role.php new file mode 100644 index 0000000..a5f726e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Participant/Role.php @@ -0,0 +1,70 @@ +google.cloud.dialogflow.v2.Participant.Role + */ +class Role +{ + /** + * Participant role not set. + * + * Generated from protobuf enum ROLE_UNSPECIFIED = 0; + */ + const ROLE_UNSPECIFIED = 0; + /** + * Participant is a human agent. + * + * Generated from protobuf enum HUMAN_AGENT = 1; + */ + const HUMAN_AGENT = 1; + /** + * Participant is an automated agent, such as a Dialogflow agent. + * + * Generated from protobuf enum AUTOMATED_AGENT = 2; + */ + const AUTOMATED_AGENT = 2; + /** + * Participant is an end user that has called or chatted with + * Dialogflow services. + * + * Generated from protobuf enum END_USER = 3; + */ + const END_USER = 3; + + private static $valueToName = [ + self::ROLE_UNSPECIFIED => 'ROLE_UNSPECIFIED', + self::HUMAN_AGENT => 'HUMAN_AGENT', + self::AUTOMATED_AGENT => 'AUTOMATED_AGENT', + self::END_USER => 'END_USER', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/QueryInput.php b/vendor/google/cloud-dialogflow/src/V2/QueryInput.php new file mode 100644 index 0000000..d3a9a29 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/QueryInput.php @@ -0,0 +1,148 @@ +google.cloud.dialogflow.v2.QueryInput + */ +class QueryInput extends \Google\Protobuf\Internal\Message +{ + protected $input; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\InputAudioConfig $audio_config + * Instructs the speech recognizer how to process the speech audio. + * @type \Google\Cloud\Dialogflow\V2\TextInput $text + * The natural language text to be processed. Text length must not exceed + * 256 character for virtual agent interactions. + * @type \Google\Cloud\Dialogflow\V2\EventInput $event + * The event to be processed. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig audio_config = 1; + * @return \Google\Cloud\Dialogflow\V2\InputAudioConfig|null + */ + public function getAudioConfig() + { + return $this->readOneof(1); + } + + public function hasAudioConfig() + { + return $this->hasOneof(1); + } + + /** + * Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig audio_config = 1; + * @param \Google\Cloud\Dialogflow\V2\InputAudioConfig $var + * @return $this + */ + public function setAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InputAudioConfig::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * The natural language text to be processed. Text length must not exceed + * 256 character for virtual agent interactions. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput text = 2; + * @return \Google\Cloud\Dialogflow\V2\TextInput|null + */ + public function getText() + { + return $this->readOneof(2); + } + + public function hasText() + { + return $this->hasOneof(2); + } + + /** + * The natural language text to be processed. Text length must not exceed + * 256 character for virtual agent interactions. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput text = 2; + * @param \Google\Cloud\Dialogflow\V2\TextInput $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\TextInput::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The event to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput event = 3; + * @return \Google\Cloud\Dialogflow\V2\EventInput|null + */ + public function getEvent() + { + return $this->readOneof(3); + } + + public function hasEvent() + { + return $this->hasOneof(3); + } + + /** + * The event to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput event = 3; + * @param \Google\Cloud\Dialogflow\V2\EventInput $var + * @return $this + */ + public function setEvent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EventInput::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * @return string + */ + public function getInput() + { + return $this->whichOneof("input"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/QueryParameters.php b/vendor/google/cloud-dialogflow/src/V2/QueryParameters.php new file mode 100644 index 0000000..bed9ba9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/QueryParameters.php @@ -0,0 +1,461 @@ +google.cloud.dialogflow.v2.QueryParameters + */ +class QueryParameters extends \Google\Protobuf\Internal\Message +{ + /** + * The time zone of this conversational query from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. If not provided, the time zone specified in + * agent settings is used. + * + * Generated from protobuf field string time_zone = 1; + */ + protected $time_zone = ''; + /** + * The geo location of this conversational query. + * + * Generated from protobuf field .google.type.LatLng geo_location = 2; + */ + protected $geo_location = null; + /** + * The collection of contexts to be activated before this query is + * executed. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context contexts = 3; + */ + private $contexts; + /** + * Specifies whether to delete all contexts in the current session + * before the new ones are activated. + * + * Generated from protobuf field bool reset_contexts = 4; + */ + protected $reset_contexts = false; + /** + * Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session of this query. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 5; + */ + private $session_entity_types; + /** + * This field can be used to pass custom data to your webhook. + * Arbitrary JSON objects are supported. + * If supplied, the value is used to populate the + * `WebhookRequest.original_detect_intent_request.payload` + * field sent to your webhook. + * + * Generated from protobuf field .google.protobuf.Struct payload = 6; + */ + protected $payload = null; + /** + * Configures the type of sentiment analysis to perform. If not + * provided, sentiment analysis is not performed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig sentiment_analysis_request_config = 10; + */ + protected $sentiment_analysis_request_config = null; + /** + * This field can be used to pass HTTP headers for a webhook + * call. These headers will be sent to webhook along with the headers that + * have been configured through the Dialogflow web console. The headers + * defined within this field will overwrite the headers configured through the + * Dialogflow console if there is a conflict. Header names are + * case-insensitive. Google's specified headers are not allowed. Including: + * "Host", "Content-Length", "Connection", "From", "User-Agent", + * "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", + * etc. + * + * Generated from protobuf field map webhook_headers = 14; + */ + private $webhook_headers; + /** + * The platform of the virtual agent response messages. + * If not empty, only emits messages from this platform in the response. + * Valid values are the enum names of + * [platform][google.cloud.dialogflow.v2.Intent.Message.platform]. + * + * Generated from protobuf field string platform = 18; + */ + protected $platform = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $time_zone + * The time zone of this conversational query from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. If not provided, the time zone specified in + * agent settings is used. + * @type \Google\Type\LatLng $geo_location + * The geo location of this conversational query. + * @type array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $contexts + * The collection of contexts to be activated before this query is + * executed. + * @type bool $reset_contexts + * Specifies whether to delete all contexts in the current session + * before the new ones are activated. + * @type array<\Google\Cloud\Dialogflow\V2\SessionEntityType>|\Google\Protobuf\Internal\RepeatedField $session_entity_types + * Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session of this query. + * @type \Google\Protobuf\Struct $payload + * This field can be used to pass custom data to your webhook. + * Arbitrary JSON objects are supported. + * If supplied, the value is used to populate the + * `WebhookRequest.original_detect_intent_request.payload` + * field sent to your webhook. + * @type \Google\Cloud\Dialogflow\V2\SentimentAnalysisRequestConfig $sentiment_analysis_request_config + * Configures the type of sentiment analysis to perform. If not + * provided, sentiment analysis is not performed. + * @type array|\Google\Protobuf\Internal\MapField $webhook_headers + * This field can be used to pass HTTP headers for a webhook + * call. These headers will be sent to webhook along with the headers that + * have been configured through the Dialogflow web console. The headers + * defined within this field will overwrite the headers configured through the + * Dialogflow console if there is a conflict. Header names are + * case-insensitive. Google's specified headers are not allowed. Including: + * "Host", "Content-Length", "Connection", "From", "User-Agent", + * "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", + * etc. + * @type string $platform + * The platform of the virtual agent response messages. + * If not empty, only emits messages from this platform in the response. + * Valid values are the enum names of + * [platform][google.cloud.dialogflow.v2.Intent.Message.platform]. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * The time zone of this conversational query from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. If not provided, the time zone specified in + * agent settings is used. + * + * Generated from protobuf field string time_zone = 1; + * @return string + */ + public function getTimeZone() + { + return $this->time_zone; + } + + /** + * The time zone of this conversational query from the + * [time zone database](https://www.iana.org/time-zones), e.g., + * America/New_York, Europe/Paris. If not provided, the time zone specified in + * agent settings is used. + * + * Generated from protobuf field string time_zone = 1; + * @param string $var + * @return $this + */ + public function setTimeZone($var) + { + GPBUtil::checkString($var, True); + $this->time_zone = $var; + + return $this; + } + + /** + * The geo location of this conversational query. + * + * Generated from protobuf field .google.type.LatLng geo_location = 2; + * @return \Google\Type\LatLng|null + */ + public function getGeoLocation() + { + return $this->geo_location; + } + + public function hasGeoLocation() + { + return isset($this->geo_location); + } + + public function clearGeoLocation() + { + unset($this->geo_location); + } + + /** + * The geo location of this conversational query. + * + * Generated from protobuf field .google.type.LatLng geo_location = 2; + * @param \Google\Type\LatLng $var + * @return $this + */ + public function setGeoLocation($var) + { + GPBUtil::checkMessage($var, \Google\Type\LatLng::class); + $this->geo_location = $var; + + return $this; + } + + /** + * The collection of contexts to be activated before this query is + * executed. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context contexts = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getContexts() + { + return $this->contexts; + } + + /** + * The collection of contexts to be activated before this query is + * executed. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context contexts = 3; + * @param array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setContexts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Context::class); + $this->contexts = $arr; + + return $this; + } + + /** + * Specifies whether to delete all contexts in the current session + * before the new ones are activated. + * + * Generated from protobuf field bool reset_contexts = 4; + * @return bool + */ + public function getResetContexts() + { + return $this->reset_contexts; + } + + /** + * Specifies whether to delete all contexts in the current session + * before the new ones are activated. + * + * Generated from protobuf field bool reset_contexts = 4; + * @param bool $var + * @return $this + */ + public function setResetContexts($var) + { + GPBUtil::checkBool($var); + $this->reset_contexts = $var; + + return $this; + } + + /** + * Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session of this query. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSessionEntityTypes() + { + return $this->session_entity_types; + } + + /** + * Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session of this query. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 5; + * @param array<\Google\Cloud\Dialogflow\V2\SessionEntityType>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSessionEntityTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SessionEntityType::class); + $this->session_entity_types = $arr; + + return $this; + } + + /** + * This field can be used to pass custom data to your webhook. + * Arbitrary JSON objects are supported. + * If supplied, the value is used to populate the + * `WebhookRequest.original_detect_intent_request.payload` + * field sent to your webhook. + * + * Generated from protobuf field .google.protobuf.Struct payload = 6; + * @return \Google\Protobuf\Struct|null + */ + public function getPayload() + { + return $this->payload; + } + + public function hasPayload() + { + return isset($this->payload); + } + + public function clearPayload() + { + unset($this->payload); + } + + /** + * This field can be used to pass custom data to your webhook. + * Arbitrary JSON objects are supported. + * If supplied, the value is used to populate the + * `WebhookRequest.original_detect_intent_request.payload` + * field sent to your webhook. + * + * Generated from protobuf field .google.protobuf.Struct payload = 6; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setPayload($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->payload = $var; + + return $this; + } + + /** + * Configures the type of sentiment analysis to perform. If not + * provided, sentiment analysis is not performed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig sentiment_analysis_request_config = 10; + * @return \Google\Cloud\Dialogflow\V2\SentimentAnalysisRequestConfig|null + */ + public function getSentimentAnalysisRequestConfig() + { + return $this->sentiment_analysis_request_config; + } + + public function hasSentimentAnalysisRequestConfig() + { + return isset($this->sentiment_analysis_request_config); + } + + public function clearSentimentAnalysisRequestConfig() + { + unset($this->sentiment_analysis_request_config); + } + + /** + * Configures the type of sentiment analysis to perform. If not + * provided, sentiment analysis is not performed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig sentiment_analysis_request_config = 10; + * @param \Google\Cloud\Dialogflow\V2\SentimentAnalysisRequestConfig $var + * @return $this + */ + public function setSentimentAnalysisRequestConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SentimentAnalysisRequestConfig::class); + $this->sentiment_analysis_request_config = $var; + + return $this; + } + + /** + * This field can be used to pass HTTP headers for a webhook + * call. These headers will be sent to webhook along with the headers that + * have been configured through the Dialogflow web console. The headers + * defined within this field will overwrite the headers configured through the + * Dialogflow console if there is a conflict. Header names are + * case-insensitive. Google's specified headers are not allowed. Including: + * "Host", "Content-Length", "Connection", "From", "User-Agent", + * "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", + * etc. + * + * Generated from protobuf field map webhook_headers = 14; + * @return \Google\Protobuf\Internal\MapField + */ + public function getWebhookHeaders() + { + return $this->webhook_headers; + } + + /** + * This field can be used to pass HTTP headers for a webhook + * call. These headers will be sent to webhook along with the headers that + * have been configured through the Dialogflow web console. The headers + * defined within this field will overwrite the headers configured through the + * Dialogflow console if there is a conflict. Header names are + * case-insensitive. Google's specified headers are not allowed. Including: + * "Host", "Content-Length", "Connection", "From", "User-Agent", + * "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", + * etc. + * + * Generated from protobuf field map webhook_headers = 14; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setWebhookHeaders($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->webhook_headers = $arr; + + return $this; + } + + /** + * The platform of the virtual agent response messages. + * If not empty, only emits messages from this platform in the response. + * Valid values are the enum names of + * [platform][google.cloud.dialogflow.v2.Intent.Message.platform]. + * + * Generated from protobuf field string platform = 18; + * @return string + */ + public function getPlatform() + { + return $this->platform; + } + + /** + * The platform of the virtual agent response messages. + * If not empty, only emits messages from this platform in the response. + * Valid values are the enum names of + * [platform][google.cloud.dialogflow.v2.Intent.Message.platform]. + * + * Generated from protobuf field string platform = 18; + * @param string $var + * @return $this + */ + public function setPlatform($var) + { + GPBUtil::checkString($var, True); + $this->platform = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/QueryResult.php b/vendor/google/cloud-dialogflow/src/V2/QueryResult.php new file mode 100644 index 0000000..395fd85 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/QueryResult.php @@ -0,0 +1,847 @@ +google.cloud.dialogflow.v2.QueryResult + */ +class QueryResult extends \Google\Protobuf\Internal\Message +{ + /** + * The original conversational query text: + * - If natural language text was provided as input, `query_text` contains + * a copy of the input. + * - If natural language speech audio was provided as input, `query_text` + * contains the speech recognition result. If speech recognizer produced + * multiple alternatives, a particular one is picked. + * - If automatic spell correction is enabled, `query_text` will contain the + * corrected user input. + * + * Generated from protobuf field string query_text = 1; + */ + protected $query_text = ''; + /** + * The language that was triggered during intent detection. + * See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 15; + */ + protected $language_code = ''; + /** + * The Speech recognition confidence between 0.0 and 1.0. A higher number + * indicates an estimated greater likelihood that the recognized words are + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be accurate or set. In particular this + * field isn't set for [StreamingDetectIntent][] since the streaming endpoint + * has separate confidence estimates per portion of the audio in + * StreamingRecognitionResult. + * + * Generated from protobuf field float speech_recognition_confidence = 2; + */ + protected $speech_recognition_confidence = 0.0; + /** + * The action name from the matched intent. + * + * Generated from protobuf field string action = 3; + */ + protected $action = ''; + /** + * The collection of extracted parameters. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 4; + */ + protected $parameters = null; + /** + * This field is set to: + * - `false` if the matched intent has required parameters and not all of + * the required parameter values have been collected. + * - `true` if all required parameter values have been collected, or if the + * matched intent doesn't contain any required parameters. + * + * Generated from protobuf field bool all_required_params_present = 5; + */ + protected $all_required_params_present = false; + /** + * Indicates whether the conversational query triggers a cancellation for slot + * filling. For more information, see the [cancel slot filling + * documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). + * + * Generated from protobuf field bool cancels_slot_filling = 21; + */ + protected $cancels_slot_filling = false; + /** + * The text to be pronounced to the user or shown on the screen. + * Note: This is a legacy field, `fulfillment_messages` should be preferred. + * + * Generated from protobuf field string fulfillment_text = 6; + */ + protected $fulfillment_text = ''; + /** + * The collection of rich messages to present to the user. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message fulfillment_messages = 7; + */ + private $fulfillment_messages; + /** + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `source` field returned in the webhook response. + * + * Generated from protobuf field string webhook_source = 8; + */ + protected $webhook_source = ''; + /** + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `payload` field returned in the webhook response. + * + * Generated from protobuf field .google.protobuf.Struct webhook_payload = 9; + */ + protected $webhook_payload = null; + /** + * The collection of output contexts. If applicable, + * `output_contexts.parameters` contains entries with name + * `.original` containing the original parameter values + * before the query. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 10; + */ + private $output_contexts; + /** + * The intent that matched the conversational query. Some, not + * all fields are filled in this message, including but not limited to: + * `name`, `display_name`, `end_interaction` and `is_fallback`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 11; + */ + protected $intent = null; + /** + * The intent detection confidence. Values range from 0.0 + * (completely uncertain) to 1.0 (completely certain). + * This value is for informational purpose only and is only used to + * help match the best intent within the classification threshold. + * This value may change for the same end-user expression at any time due to a + * model retraining or change in implementation. + * If there are `multiple knowledge_answers` messages, this value is set to + * the greatest `knowledgeAnswers.match_confidence` value in the list. + * + * Generated from protobuf field float intent_detection_confidence = 12; + */ + protected $intent_detection_confidence = 0.0; + /** + * Free-form diagnostic information for the associated detect intent request. + * The fields of this data can change without notice, so you should not write + * code that depends on its structure. + * The data may contain: + * - webhook call latency + * - webhook errors + * + * Generated from protobuf field .google.protobuf.Struct diagnostic_info = 14; + */ + protected $diagnostic_info = null; + /** + * The sentiment analysis result, which depends on the + * `sentiment_analysis_request_config` specified in the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisResult sentiment_analysis_result = 17; + */ + protected $sentiment_analysis_result = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $query_text + * The original conversational query text: + * - If natural language text was provided as input, `query_text` contains + * a copy of the input. + * - If natural language speech audio was provided as input, `query_text` + * contains the speech recognition result. If speech recognizer produced + * multiple alternatives, a particular one is picked. + * - If automatic spell correction is enabled, `query_text` will contain the + * corrected user input. + * @type string $language_code + * The language that was triggered during intent detection. + * See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * @type float $speech_recognition_confidence + * The Speech recognition confidence between 0.0 and 1.0. A higher number + * indicates an estimated greater likelihood that the recognized words are + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be accurate or set. In particular this + * field isn't set for [StreamingDetectIntent][] since the streaming endpoint + * has separate confidence estimates per portion of the audio in + * StreamingRecognitionResult. + * @type string $action + * The action name from the matched intent. + * @type \Google\Protobuf\Struct $parameters + * The collection of extracted parameters. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * @type bool $all_required_params_present + * This field is set to: + * - `false` if the matched intent has required parameters and not all of + * the required parameter values have been collected. + * - `true` if all required parameter values have been collected, or if the + * matched intent doesn't contain any required parameters. + * @type bool $cancels_slot_filling + * Indicates whether the conversational query triggers a cancellation for slot + * filling. For more information, see the [cancel slot filling + * documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). + * @type string $fulfillment_text + * The text to be pronounced to the user or shown on the screen. + * Note: This is a legacy field, `fulfillment_messages` should be preferred. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message>|\Google\Protobuf\Internal\RepeatedField $fulfillment_messages + * The collection of rich messages to present to the user. + * @type string $webhook_source + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `source` field returned in the webhook response. + * @type \Google\Protobuf\Struct $webhook_payload + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `payload` field returned in the webhook response. + * @type array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $output_contexts + * The collection of output contexts. If applicable, + * `output_contexts.parameters` contains entries with name + * `.original` containing the original parameter values + * before the query. + * @type \Google\Cloud\Dialogflow\V2\Intent $intent + * The intent that matched the conversational query. Some, not + * all fields are filled in this message, including but not limited to: + * `name`, `display_name`, `end_interaction` and `is_fallback`. + * @type float $intent_detection_confidence + * The intent detection confidence. Values range from 0.0 + * (completely uncertain) to 1.0 (completely certain). + * This value is for informational purpose only and is only used to + * help match the best intent within the classification threshold. + * This value may change for the same end-user expression at any time due to a + * model retraining or change in implementation. + * If there are `multiple knowledge_answers` messages, this value is set to + * the greatest `knowledgeAnswers.match_confidence` value in the list. + * @type \Google\Protobuf\Struct $diagnostic_info + * Free-form diagnostic information for the associated detect intent request. + * The fields of this data can change without notice, so you should not write + * code that depends on its structure. + * The data may contain: + * - webhook call latency + * - webhook errors + * @type \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult $sentiment_analysis_result + * The sentiment analysis result, which depends on the + * `sentiment_analysis_request_config` specified in the request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * The original conversational query text: + * - If natural language text was provided as input, `query_text` contains + * a copy of the input. + * - If natural language speech audio was provided as input, `query_text` + * contains the speech recognition result. If speech recognizer produced + * multiple alternatives, a particular one is picked. + * - If automatic spell correction is enabled, `query_text` will contain the + * corrected user input. + * + * Generated from protobuf field string query_text = 1; + * @return string + */ + public function getQueryText() + { + return $this->query_text; + } + + /** + * The original conversational query text: + * - If natural language text was provided as input, `query_text` contains + * a copy of the input. + * - If natural language speech audio was provided as input, `query_text` + * contains the speech recognition result. If speech recognizer produced + * multiple alternatives, a particular one is picked. + * - If automatic spell correction is enabled, `query_text` will contain the + * corrected user input. + * + * Generated from protobuf field string query_text = 1; + * @param string $var + * @return $this + */ + public function setQueryText($var) + { + GPBUtil::checkString($var, True); + $this->query_text = $var; + + return $this; + } + + /** + * The language that was triggered during intent detection. + * See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 15; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * The language that was triggered during intent detection. + * See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. + * + * Generated from protobuf field string language_code = 15; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * The Speech recognition confidence between 0.0 and 1.0. A higher number + * indicates an estimated greater likelihood that the recognized words are + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be accurate or set. In particular this + * field isn't set for [StreamingDetectIntent][] since the streaming endpoint + * has separate confidence estimates per portion of the audio in + * StreamingRecognitionResult. + * + * Generated from protobuf field float speech_recognition_confidence = 2; + * @return float + */ + public function getSpeechRecognitionConfidence() + { + return $this->speech_recognition_confidence; + } + + /** + * The Speech recognition confidence between 0.0 and 1.0. A higher number + * indicates an estimated greater likelihood that the recognized words are + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be accurate or set. In particular this + * field isn't set for [StreamingDetectIntent][] since the streaming endpoint + * has separate confidence estimates per portion of the audio in + * StreamingRecognitionResult. + * + * Generated from protobuf field float speech_recognition_confidence = 2; + * @param float $var + * @return $this + */ + public function setSpeechRecognitionConfidence($var) + { + GPBUtil::checkFloat($var); + $this->speech_recognition_confidence = $var; + + return $this; + } + + /** + * The action name from the matched intent. + * + * Generated from protobuf field string action = 3; + * @return string + */ + public function getAction() + { + return $this->action; + } + + /** + * The action name from the matched intent. + * + * Generated from protobuf field string action = 3; + * @param string $var + * @return $this + */ + public function setAction($var) + { + GPBUtil::checkString($var, True); + $this->action = $var; + + return $this; + } + + /** + * The collection of extracted parameters. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 4; + * @return \Google\Protobuf\Struct|null + */ + public function getParameters() + { + return $this->parameters; + } + + public function hasParameters() + { + return isset($this->parameters); + } + + public function clearParameters() + { + unset($this->parameters); + } + + /** + * The collection of extracted parameters. + * Depending on your protocol or client library language, this is a + * map, associative array, symbol table, dictionary, or JSON object + * composed of a collection of (MapKey, MapValue) pairs: + * * MapKey type: string + * * MapKey value: parameter name + * * MapValue type: If parameter's entity type is a composite entity then use + * map, otherwise, depending on the parameter value type, it could be one of + * string, number, boolean, null, list or map. + * * MapValue value: If parameter's entity type is a composite entity then use + * map from composite entity property names to property values, otherwise, + * use parameter value. + * + * Generated from protobuf field .google.protobuf.Struct parameters = 4; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setParameters($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->parameters = $var; + + return $this; + } + + /** + * This field is set to: + * - `false` if the matched intent has required parameters and not all of + * the required parameter values have been collected. + * - `true` if all required parameter values have been collected, or if the + * matched intent doesn't contain any required parameters. + * + * Generated from protobuf field bool all_required_params_present = 5; + * @return bool + */ + public function getAllRequiredParamsPresent() + { + return $this->all_required_params_present; + } + + /** + * This field is set to: + * - `false` if the matched intent has required parameters and not all of + * the required parameter values have been collected. + * - `true` if all required parameter values have been collected, or if the + * matched intent doesn't contain any required parameters. + * + * Generated from protobuf field bool all_required_params_present = 5; + * @param bool $var + * @return $this + */ + public function setAllRequiredParamsPresent($var) + { + GPBUtil::checkBool($var); + $this->all_required_params_present = $var; + + return $this; + } + + /** + * Indicates whether the conversational query triggers a cancellation for slot + * filling. For more information, see the [cancel slot filling + * documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). + * + * Generated from protobuf field bool cancels_slot_filling = 21; + * @return bool + */ + public function getCancelsSlotFilling() + { + return $this->cancels_slot_filling; + } + + /** + * Indicates whether the conversational query triggers a cancellation for slot + * filling. For more information, see the [cancel slot filling + * documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel). + * + * Generated from protobuf field bool cancels_slot_filling = 21; + * @param bool $var + * @return $this + */ + public function setCancelsSlotFilling($var) + { + GPBUtil::checkBool($var); + $this->cancels_slot_filling = $var; + + return $this; + } + + /** + * The text to be pronounced to the user or shown on the screen. + * Note: This is a legacy field, `fulfillment_messages` should be preferred. + * + * Generated from protobuf field string fulfillment_text = 6; + * @return string + */ + public function getFulfillmentText() + { + return $this->fulfillment_text; + } + + /** + * The text to be pronounced to the user or shown on the screen. + * Note: This is a legacy field, `fulfillment_messages` should be preferred. + * + * Generated from protobuf field string fulfillment_text = 6; + * @param string $var + * @return $this + */ + public function setFulfillmentText($var) + { + GPBUtil::checkString($var, True); + $this->fulfillment_text = $var; + + return $this; + } + + /** + * The collection of rich messages to present to the user. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message fulfillment_messages = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFulfillmentMessages() + { + return $this->fulfillment_messages; + } + + /** + * The collection of rich messages to present to the user. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message fulfillment_messages = 7; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFulfillmentMessages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message::class); + $this->fulfillment_messages = $arr; + + return $this; + } + + /** + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `source` field returned in the webhook response. + * + * Generated from protobuf field string webhook_source = 8; + * @return string + */ + public function getWebhookSource() + { + return $this->webhook_source; + } + + /** + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `source` field returned in the webhook response. + * + * Generated from protobuf field string webhook_source = 8; + * @param string $var + * @return $this + */ + public function setWebhookSource($var) + { + GPBUtil::checkString($var, True); + $this->webhook_source = $var; + + return $this; + } + + /** + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `payload` field returned in the webhook response. + * + * Generated from protobuf field .google.protobuf.Struct webhook_payload = 9; + * @return \Google\Protobuf\Struct|null + */ + public function getWebhookPayload() + { + return $this->webhook_payload; + } + + public function hasWebhookPayload() + { + return isset($this->webhook_payload); + } + + public function clearWebhookPayload() + { + unset($this->webhook_payload); + } + + /** + * If the query was fulfilled by a webhook call, this field is set to the + * value of the `payload` field returned in the webhook response. + * + * Generated from protobuf field .google.protobuf.Struct webhook_payload = 9; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setWebhookPayload($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->webhook_payload = $var; + + return $this; + } + + /** + * The collection of output contexts. If applicable, + * `output_contexts.parameters` contains entries with name + * `.original` containing the original parameter values + * before the query. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 10; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getOutputContexts() + { + return $this->output_contexts; + } + + /** + * The collection of output contexts. If applicable, + * `output_contexts.parameters` contains entries with name + * `.original` containing the original parameter values + * before the query. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 10; + * @param array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setOutputContexts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Context::class); + $this->output_contexts = $arr; + + return $this; + } + + /** + * The intent that matched the conversational query. Some, not + * all fields are filled in this message, including but not limited to: + * `name`, `display_name`, `end_interaction` and `is_fallback`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 11; + * @return \Google\Cloud\Dialogflow\V2\Intent|null + */ + public function getIntent() + { + return $this->intent; + } + + public function hasIntent() + { + return isset($this->intent); + } + + public function clearIntent() + { + unset($this->intent); + } + + /** + * The intent that matched the conversational query. Some, not + * all fields are filled in this message, including but not limited to: + * `name`, `display_name`, `end_interaction` and `is_fallback`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 11; + * @param \Google\Cloud\Dialogflow\V2\Intent $var + * @return $this + */ + public function setIntent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intent = $var; + + return $this; + } + + /** + * The intent detection confidence. Values range from 0.0 + * (completely uncertain) to 1.0 (completely certain). + * This value is for informational purpose only and is only used to + * help match the best intent within the classification threshold. + * This value may change for the same end-user expression at any time due to a + * model retraining or change in implementation. + * If there are `multiple knowledge_answers` messages, this value is set to + * the greatest `knowledgeAnswers.match_confidence` value in the list. + * + * Generated from protobuf field float intent_detection_confidence = 12; + * @return float + */ + public function getIntentDetectionConfidence() + { + return $this->intent_detection_confidence; + } + + /** + * The intent detection confidence. Values range from 0.0 + * (completely uncertain) to 1.0 (completely certain). + * This value is for informational purpose only and is only used to + * help match the best intent within the classification threshold. + * This value may change for the same end-user expression at any time due to a + * model retraining or change in implementation. + * If there are `multiple knowledge_answers` messages, this value is set to + * the greatest `knowledgeAnswers.match_confidence` value in the list. + * + * Generated from protobuf field float intent_detection_confidence = 12; + * @param float $var + * @return $this + */ + public function setIntentDetectionConfidence($var) + { + GPBUtil::checkFloat($var); + $this->intent_detection_confidence = $var; + + return $this; + } + + /** + * Free-form diagnostic information for the associated detect intent request. + * The fields of this data can change without notice, so you should not write + * code that depends on its structure. + * The data may contain: + * - webhook call latency + * - webhook errors + * + * Generated from protobuf field .google.protobuf.Struct diagnostic_info = 14; + * @return \Google\Protobuf\Struct|null + */ + public function getDiagnosticInfo() + { + return $this->diagnostic_info; + } + + public function hasDiagnosticInfo() + { + return isset($this->diagnostic_info); + } + + public function clearDiagnosticInfo() + { + unset($this->diagnostic_info); + } + + /** + * Free-form diagnostic information for the associated detect intent request. + * The fields of this data can change without notice, so you should not write + * code that depends on its structure. + * The data may contain: + * - webhook call latency + * - webhook errors + * + * Generated from protobuf field .google.protobuf.Struct diagnostic_info = 14; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setDiagnosticInfo($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->diagnostic_info = $var; + + return $this; + } + + /** + * The sentiment analysis result, which depends on the + * `sentiment_analysis_request_config` specified in the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisResult sentiment_analysis_result = 17; + * @return \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult|null + */ + public function getSentimentAnalysisResult() + { + return $this->sentiment_analysis_result; + } + + public function hasSentimentAnalysisResult() + { + return isset($this->sentiment_analysis_result); + } + + public function clearSentimentAnalysisResult() + { + unset($this->sentiment_analysis_result); + } + + /** + * The sentiment analysis result, which depends on the + * `sentiment_analysis_request_config` specified in the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SentimentAnalysisResult sentiment_analysis_result = 17; + * @param \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult $var + * @return $this + */ + public function setSentimentAnalysisResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SentimentAnalysisResult::class); + $this->sentiment_analysis_result = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ReloadDocumentRequest.php b/vendor/google/cloud-dialogflow/src/V2/ReloadDocumentRequest.php new file mode 100644 index 0000000..ea0bbfe --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ReloadDocumentRequest.php @@ -0,0 +1,225 @@ +google.cloud.dialogflow.v2.ReloadDocumentRequest + */ +class ReloadDocumentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the document to reload. + * Format: `projects//locations//knowledgeBases//documents/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $name = ''; + /** + * Optional. Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * + * Generated from protobuf field bool import_gcs_custom_metadata = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $import_gcs_custom_metadata = false; + /** + * Optional. When enabled, the reload request is to apply partial update to + * the smart messaging allowlist. + * + * Generated from protobuf field bool smart_messaging_partial_update = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $smart_messaging_partial_update = false; + protected $source; + + /** + * @param string $name Required. The name of the document to reload. + * Format: `projects//locations//knowledgeBases//documents/` + * Please see {@see DocumentsClient::documentName()} for help formatting this field. + * @param string $contentUri Optional. The path of gcs source file for reloading document content. For + * now, only gcs uri is supported. + * + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * + * @return \Google\Cloud\Dialogflow\V2\ReloadDocumentRequest + * + * @experimental + */ + public static function build(string $name, string $contentUri): self + { + return (new self()) + ->setName($name) + ->setContentUri($contentUri); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The name of the document to reload. + * Format: `projects//locations//knowledgeBases//documents/` + * @type string $content_uri + * Optional. The path of gcs source file for reloading document content. For + * now, only gcs uri is supported. + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * @type bool $import_gcs_custom_metadata + * Optional. Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * @type bool $smart_messaging_partial_update + * Optional. When enabled, the reload request is to apply partial update to + * the smart messaging allowlist. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the document to reload. + * Format: `projects//locations//knowledgeBases//documents/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The name of the document to reload. + * Format: `projects//locations//knowledgeBases//documents/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The path of gcs source file for reloading document content. For + * now, only gcs uri is supported. + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * + * Generated from protobuf field string content_uri = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getContentUri() + { + return $this->readOneof(3); + } + + public function hasContentUri() + { + return $this->hasOneof(3); + } + + /** + * Optional. The path of gcs source file for reloading document content. For + * now, only gcs uri is supported. + * For documents stored in Google Cloud Storage, these URIs must have + * the form `gs:///`. + * + * Generated from protobuf field string content_uri = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setContentUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Optional. Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * + * Generated from protobuf field bool import_gcs_custom_metadata = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getImportGcsCustomMetadata() + { + return $this->import_gcs_custom_metadata; + } + + /** + * Optional. Whether to import custom metadata from Google Cloud Storage. + * Only valid when the document source is Google Cloud Storage URI. + * + * Generated from protobuf field bool import_gcs_custom_metadata = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setImportGcsCustomMetadata($var) + { + GPBUtil::checkBool($var); + $this->import_gcs_custom_metadata = $var; + + return $this; + } + + /** + * Optional. When enabled, the reload request is to apply partial update to + * the smart messaging allowlist. + * + * Generated from protobuf field bool smart_messaging_partial_update = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getSmartMessagingPartialUpdate() + { + return $this->smart_messaging_partial_update; + } + + /** + * Optional. When enabled, the reload request is to apply partial update to + * the smart messaging allowlist. + * + * Generated from protobuf field bool smart_messaging_partial_update = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setSmartMessagingPartialUpdate($var) + { + GPBUtil::checkBool($var); + $this->smart_messaging_partial_update = $var; + + return $this; + } + + /** + * @return string + */ + public function getSource() + { + return $this->whichOneof("source"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/RestoreAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/RestoreAgentRequest.php new file mode 100644 index 0000000..19fa986 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/RestoreAgentRequest.php @@ -0,0 +1,165 @@ +google.cloud.dialogflow.v2.RestoreAgentRequest + */ +class RestoreAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent to restore is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + protected $agent; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent to restore is associated with. + * Format: `projects/`. + * @type string $agent_uri + * The URI to a Google Cloud Storage file containing the agent to restore. + * Note: The URI must start with "gs://". + * Dialogflow performs a read operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have read permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * @type string $agent_content + * Zip compressed raw byte content for agent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent to restore is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent to restore is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The URI to a Google Cloud Storage file containing the agent to restore. + * Note: The URI must start with "gs://". + * Dialogflow performs a read operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have read permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2; + * @return string + */ + public function getAgentUri() + { + return $this->readOneof(2); + } + + public function hasAgentUri() + { + return $this->hasOneof(2); + } + + /** + * The URI to a Google Cloud Storage file containing the agent to restore. + * Note: The URI must start with "gs://". + * Dialogflow performs a read operation for the Cloud Storage object + * on the caller's behalf, so your request authentication must + * have read permissions for the object. For more information, see + * [Dialogflow access + * control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + * + * Generated from protobuf field string agent_uri = 2; + * @param string $var + * @return $this + */ + public function setAgentUri($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Zip compressed raw byte content for agent. + * + * Generated from protobuf field bytes agent_content = 3; + * @return string + */ + public function getAgentContent() + { + return $this->readOneof(3); + } + + public function hasAgentContent() + { + return $this->hasOneof(3); + } + + /** + * Zip compressed raw byte content for agent. + * + * Generated from protobuf field bytes agent_content = 3; + * @param string $var + * @return $this + */ + public function setAgentContent($var) + { + GPBUtil::checkString($var, False); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * @return string + */ + public function getAgent() + { + return $this->whichOneof("agent"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchAgentsRequest.php b/vendor/google/cloud-dialogflow/src/V2/SearchAgentsRequest.php new file mode 100644 index 0000000..07a8523 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchAgentsRequest.php @@ -0,0 +1,159 @@ +google.cloud.dialogflow.v2.SearchAgentsRequest + */ +class SearchAgentsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project to list agents from. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $page_size = 0; + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + */ + protected $page_token = ''; + + /** + * @param string $parent Required. The project to list agents from. + * Format: `projects/`. Please see + * {@see AgentsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\SearchAgentsRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project to list agents from. + * Format: `projects/`. + * @type int $page_size + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * @type string $page_token + * The next_page_token value returned from a previous list request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project to list agents from. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project to list agents from. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Optional. The maximum number of items to return in a single page. By + * default 100 and at most 1000. + * + * Generated from protobuf field int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * The next_page_token value returned from a previous list request. + * + * Generated from protobuf field string page_token = 3; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchAgentsResponse.php b/vendor/google/cloud-dialogflow/src/V2/SearchAgentsResponse.php new file mode 100644 index 0000000..65b5493 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchAgentsResponse.php @@ -0,0 +1,110 @@ +google.cloud.dialogflow.v2.SearchAgentsResponse + */ +class SearchAgentsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The list of agents. There will be a maximum number of items returned based + * on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Agent agents = 1; + */ + private $agents; + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\Agent>|\Google\Protobuf\Internal\RepeatedField $agents + * The list of agents. There will be a maximum number of items returned based + * on the page_size field in the request. + * @type string $next_page_token + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * The list of agents. There will be a maximum number of items returned based + * on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Agent agents = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAgents() + { + return $this->agents; + } + + /** + * The list of agents. There will be a maximum number of items returned based + * on the page_size field in the request. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Agent agents = 1; + * @param array<\Google\Cloud\Dialogflow\V2\Agent>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAgents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Agent::class); + $this->agents = $arr; + + return $this; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Token to retrieve the next page of results, or empty if there are no + * more results in the list. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer.php new file mode 100644 index 0000000..3321918 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer.php @@ -0,0 +1,181 @@ +google.cloud.dialogflow.v2.SearchKnowledgeAnswer + */ +class SearchKnowledgeAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The piece of text from the knowledge base documents that answers + * the search query + * + * Generated from protobuf field string answer = 1; + */ + protected $answer = ''; + /** + * The type of the answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType answer_type = 2; + */ + protected $answer_type = 0; + /** + * All sources used to generate the answer. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource answer_sources = 3; + */ + private $answer_sources; + /** + * The name of the answer record. + * Format: `projects//locations//answer + * Records/` + * + * Generated from protobuf field string answer_record = 5 [(.google.api.resource_reference) = { + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $answer + * The piece of text from the knowledge base documents that answers + * the search query + * @type int $answer_type + * The type of the answer. + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer\AnswerSource>|\Google\Protobuf\Internal\RepeatedField $answer_sources + * All sources used to generate the answer. + * @type string $answer_record + * The name of the answer record. + * Format: `projects//locations//answer + * Records/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * The piece of text from the knowledge base documents that answers + * the search query + * + * Generated from protobuf field string answer = 1; + * @return string + */ + public function getAnswer() + { + return $this->answer; + } + + /** + * The piece of text from the knowledge base documents that answers + * the search query + * + * Generated from protobuf field string answer = 1; + * @param string $var + * @return $this + */ + public function setAnswer($var) + { + GPBUtil::checkString($var, True); + $this->answer = $var; + + return $this; + } + + /** + * The type of the answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType answer_type = 2; + * @return int + */ + public function getAnswerType() + { + return $this->answer_type; + } + + /** + * The type of the answer. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType answer_type = 2; + * @param int $var + * @return $this + */ + public function setAnswerType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer\AnswerType::class); + $this->answer_type = $var; + + return $this; + } + + /** + * All sources used to generate the answer. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource answer_sources = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAnswerSources() + { + return $this->answer_sources; + } + + /** + * All sources used to generate the answer. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource answer_sources = 3; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer\AnswerSource>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAnswerSources($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer\AnswerSource::class); + $this->answer_sources = $arr; + + return $this; + } + + /** + * The name of the answer record. + * Format: `projects//locations//answer + * Records/` + * + * Generated from protobuf field string answer_record = 5 [(.google.api.resource_reference) = { + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of the answer record. + * Format: `projects//locations//answer + * Records/` + * + * Generated from protobuf field string answer_record = 5 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerSource.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerSource.php new file mode 100644 index 0000000..ffcf639 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerSource.php @@ -0,0 +1,180 @@ +google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerSource + */ +class AnswerSource extends \Google\Protobuf\Internal\Message +{ + /** + * The title of the article. + * + * Generated from protobuf field string title = 1; + */ + protected $title = ''; + /** + * The URI of the article. + * + * Generated from protobuf field string uri = 2; + */ + protected $uri = ''; + /** + * The relevant snippet of the article. + * + * Generated from protobuf field string snippet = 3; + */ + protected $snippet = ''; + /** + * Metadata associated with the article. + * + * Generated from protobuf field .google.protobuf.Struct metadata = 5; + */ + protected $metadata = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $title + * The title of the article. + * @type string $uri + * The URI of the article. + * @type string $snippet + * The relevant snippet of the article. + * @type \Google\Protobuf\Struct $metadata + * Metadata associated with the article. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * The title of the article. + * + * Generated from protobuf field string title = 1; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * The title of the article. + * + * Generated from protobuf field string title = 1; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * The URI of the article. + * + * Generated from protobuf field string uri = 2; + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * The URI of the article. + * + * Generated from protobuf field string uri = 2; + * @param string $var + * @return $this + */ + public function setUri($var) + { + GPBUtil::checkString($var, True); + $this->uri = $var; + + return $this; + } + + /** + * The relevant snippet of the article. + * + * Generated from protobuf field string snippet = 3; + * @return string + */ + public function getSnippet() + { + return $this->snippet; + } + + /** + * The relevant snippet of the article. + * + * Generated from protobuf field string snippet = 3; + * @param string $var + * @return $this + */ + public function setSnippet($var) + { + GPBUtil::checkString($var, True); + $this->snippet = $var; + + return $this; + } + + /** + * Metadata associated with the article. + * + * Generated from protobuf field .google.protobuf.Struct metadata = 5; + * @return \Google\Protobuf\Struct|null + */ + public function getMetadata() + { + return $this->metadata; + } + + public function hasMetadata() + { + return isset($this->metadata); + } + + public function clearMetadata() + { + unset($this->metadata); + } + + /** + * Metadata associated with the article. + * + * Generated from protobuf field .google.protobuf.Struct metadata = 5; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->metadata = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerType.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerType.php new file mode 100644 index 0000000..6d5be83 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeAnswer/AnswerType.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.SearchKnowledgeAnswer.AnswerType + */ +class AnswerType +{ + /** + * The answer has a unspecified type. + * + * Generated from protobuf enum ANSWER_TYPE_UNSPECIFIED = 0; + */ + const ANSWER_TYPE_UNSPECIFIED = 0; + /** + * The answer is from FAQ documents. + * + * Generated from protobuf enum FAQ = 1; + */ + const FAQ = 1; + /** + * The answer is from generative model. + * + * Generated from protobuf enum GENERATIVE = 2; + */ + const GENERATIVE = 2; + /** + * The answer is from intent matching. + * + * Generated from protobuf enum INTENT = 3; + */ + const INTENT = 3; + + private static $valueToName = [ + self::ANSWER_TYPE_UNSPECIFIED => 'ANSWER_TYPE_UNSPECIFIED', + self::FAQ => 'FAQ', + self::GENERATIVE => 'GENERATIVE', + self::INTENT => 'INTENT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest.php new file mode 100644 index 0000000..9e61f86 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest.php @@ -0,0 +1,516 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest + */ +class SearchKnowledgeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The parent resource contains the conversation profile + * Format: 'projects/' or `projects//locations/`. + * + * Generated from protobuf field string parent = 6 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $parent = ''; + /** + * Required. The natural language text query for knowledge search. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput query = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $query = null; + /** + * Required. The conversation profile used to configure the search. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $conversation_profile = ''; + /** + * Required. The ID of the search session. + * The session_id can be combined with Dialogflow V3 Agent ID retrieved from + * conversation profile or on its own to identify a search session. The search + * history of the same session will impact the search result. It's up to the + * API caller to choose an appropriate `Session ID`. It can be a random number + * or some type of session identifiers (preferably hashed). The length must + * not exceed 36 characters. + * + * Generated from protobuf field string session_id = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $session_id = ''; + /** + * Optional. The conversation (between human agent and end user) where the + * search request is triggered. Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $conversation = ''; + /** + * Optional. The name of the latest conversation message when the request is + * triggered. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. The source of the query in the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource query_source = 7 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $query_source = 0; + /** + * Optional. Information about the end-user to improve the relevance and + * accuracy of generative answers. + * This will be interpreted and used by a language model, so, for good + * results, the data should be self-descriptive, and in a simple structure. + * Example: + * ```json + * { + * "subscription plan": "Business Premium Plus", + * "devices owned": [ + * {"model": "Google Pixel 7"}, + * {"model": "Google Pixel Tablet"} + * ] + * } + * ``` + * + * Generated from protobuf field .google.protobuf.Struct end_user_metadata = 9 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $end_user_metadata = null; + /** + * Optional. Configuration specific to search queries with data stores. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig search_config = 11 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $search_config = null; + /** + * Optional. Whether to search the query exactly without query rewrite. + * + * Generated from protobuf field bool exact_search = 14 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $exact_search = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The parent resource contains the conversation profile + * Format: 'projects/' or `projects//locations/`. + * @type \Google\Cloud\Dialogflow\V2\TextInput $query + * Required. The natural language text query for knowledge search. + * @type string $conversation_profile + * Required. The conversation profile used to configure the search. + * Format: `projects//locations//conversationProfiles/`. + * @type string $session_id + * Required. The ID of the search session. + * The session_id can be combined with Dialogflow V3 Agent ID retrieved from + * conversation profile or on its own to identify a search session. The search + * history of the same session will impact the search result. It's up to the + * API caller to choose an appropriate `Session ID`. It can be a random number + * or some type of session identifiers (preferably hashed). The length must + * not exceed 36 characters. + * @type string $conversation + * Optional. The conversation (between human agent and end user) where the + * search request is triggered. Format: `projects//locations//conversations/`. + * @type string $latest_message + * Optional. The name of the latest conversation message when the request is + * triggered. + * Format: `projects//locations//conversations//messages/`. + * @type int $query_source + * Optional. The source of the query in the request. + * @type \Google\Protobuf\Struct $end_user_metadata + * Optional. Information about the end-user to improve the relevance and + * accuracy of generative answers. + * This will be interpreted and used by a language model, so, for good + * results, the data should be self-descriptive, and in a simple structure. + * Example: + * ```json + * { + * "subscription plan": "Business Premium Plus", + * "devices owned": [ + * {"model": "Google Pixel 7"}, + * {"model": "Google Pixel Tablet"} + * ] + * } + * ``` + * @type \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig $search_config + * Optional. Configuration specific to search queries with data stores. + * @type bool $exact_search + * Optional. Whether to search the query exactly without query rewrite. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The parent resource contains the conversation profile + * Format: 'projects/' or `projects//locations/`. + * + * Generated from protobuf field string parent = 6 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The parent resource contains the conversation profile + * Format: 'projects/' or `projects//locations/`. + * + * Generated from protobuf field string parent = 6 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Required. The natural language text query for knowledge search. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput query = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\TextInput|null + */ + public function getQuery() + { + return $this->query; + } + + public function hasQuery() + { + return isset($this->query); + } + + public function clearQuery() + { + unset($this->query); + } + + /** + * Required. The natural language text query for knowledge search. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput query = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\TextInput $var + * @return $this + */ + public function setQuery($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\TextInput::class); + $this->query = $var; + + return $this; + } + + /** + * Required. The conversation profile used to configure the search. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + /** + * Required. The conversation profile used to configure the search. + * Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkString($var, True); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Required. The ID of the search session. + * The session_id can be combined with Dialogflow V3 Agent ID retrieved from + * conversation profile or on its own to identify a search session. The search + * history of the same session will impact the search result. It's up to the + * API caller to choose an appropriate `Session ID`. It can be a random number + * or some type of session identifiers (preferably hashed). The length must + * not exceed 36 characters. + * + * Generated from protobuf field string session_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getSessionId() + { + return $this->session_id; + } + + /** + * Required. The ID of the search session. + * The session_id can be combined with Dialogflow V3 Agent ID retrieved from + * conversation profile or on its own to identify a search session. The search + * history of the same session will impact the search result. It's up to the + * API caller to choose an appropriate `Session ID`. It can be a random number + * or some type of session identifiers (preferably hashed). The length must + * not exceed 36 characters. + * + * Generated from protobuf field string session_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setSessionId($var) + { + GPBUtil::checkString($var, True); + $this->session_id = $var; + + return $this; + } + + /** + * Optional. The conversation (between human agent and end user) where the + * search request is triggered. Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getConversation() + { + return $this->conversation; + } + + /** + * Optional. The conversation (between human agent and end user) where the + * search request is triggered. Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 4 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkString($var, True); + $this->conversation = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message when the request is + * triggered. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message when the request is + * triggered. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 5 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. The source of the query in the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource query_source = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getQuerySource() + { + return $this->query_source; + } + + /** + * Optional. The source of the query in the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource query_source = 7 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setQuerySource($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\QuerySource::class); + $this->query_source = $var; + + return $this; + } + + /** + * Optional. Information about the end-user to improve the relevance and + * accuracy of generative answers. + * This will be interpreted and used by a language model, so, for good + * results, the data should be self-descriptive, and in a simple structure. + * Example: + * ```json + * { + * "subscription plan": "Business Premium Plus", + * "devices owned": [ + * {"model": "Google Pixel 7"}, + * {"model": "Google Pixel Tablet"} + * ] + * } + * ``` + * + * Generated from protobuf field .google.protobuf.Struct end_user_metadata = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Struct|null + */ + public function getEndUserMetadata() + { + return $this->end_user_metadata; + } + + public function hasEndUserMetadata() + { + return isset($this->end_user_metadata); + } + + public function clearEndUserMetadata() + { + unset($this->end_user_metadata); + } + + /** + * Optional. Information about the end-user to improve the relevance and + * accuracy of generative answers. + * This will be interpreted and used by a language model, so, for good + * results, the data should be self-descriptive, and in a simple structure. + * Example: + * ```json + * { + * "subscription plan": "Business Premium Plus", + * "devices owned": [ + * {"model": "Google Pixel 7"}, + * {"model": "Google Pixel Tablet"} + * ] + * } + * ``` + * + * Generated from protobuf field .google.protobuf.Struct end_user_metadata = 9 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setEndUserMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->end_user_metadata = $var; + + return $this; + } + + /** + * Optional. Configuration specific to search queries with data stores. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig search_config = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig|null + */ + public function getSearchConfig() + { + return $this->search_config; + } + + public function hasSearchConfig() + { + return isset($this->search_config); + } + + public function clearSearchConfig() + { + unset($this->search_config); + } + + /** + * Optional. Configuration specific to search queries with data stores. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig search_config = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig $var + * @return $this + */ + public function setSearchConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig::class); + $this->search_config = $var; + + return $this; + } + + /** + * Optional. Whether to search the query exactly without query rewrite. + * + * Generated from protobuf field bool exact_search = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getExactSearch() + { + return $this->exact_search; + } + + /** + * Optional. Whether to search the query exactly without query rewrite. + * + * Generated from protobuf field bool exact_search = 14 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setExactSearch($var) + { + GPBUtil::checkBool($var); + $this->exact_search = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/QuerySource.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/QuerySource.php new file mode 100644 index 0000000..4470341 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/QuerySource.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.QuerySource + */ +class QuerySource +{ + /** + * Unknown query source. + * + * Generated from protobuf enum QUERY_SOURCE_UNSPECIFIED = 0; + */ + const QUERY_SOURCE_UNSPECIFIED = 0; + /** + * The query is from agents. + * + * Generated from protobuf enum AGENT_QUERY = 1; + */ + const AGENT_QUERY = 1; + /** + * The query is a suggested query from + * [Participants.SuggestKnowledgeAssist][google.cloud.dialogflow.v2.Participants.SuggestKnowledgeAssist]. + * + * Generated from protobuf enum SUGGESTED_QUERY = 2; + */ + const SUGGESTED_QUERY = 2; + + private static $valueToName = [ + self::QUERY_SOURCE_UNSPECIFIED => 'QUERY_SOURCE_UNSPECIFIED', + self::AGENT_QUERY => 'AGENT_QUERY', + self::SUGGESTED_QUERY => 'SUGGESTED_QUERY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig.php new file mode 100644 index 0000000..368aeba --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig.php @@ -0,0 +1,130 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig + */ +class SearchConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Boost specifications for data stores. + * Maps from datastore name to their boost configuration. Do not specify + * more than one BoostSpecs for each datastore name. If multiple BoostSpecs + * are provided for the same datastore name, the behavior is undefined. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs boost_specs = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $boost_specs; + /** + * Optional. Filter specification for data store queries. + * TMaps from datastore name to the filter expression for that datastore. Do + * not specify more than one FilterSpecs for each datastore name. If + * multiple FilterSpecs are provided for the same datastore name, the + * behavior is undefined. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs filter_specs = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $filter_specs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs>|\Google\Protobuf\Internal\RepeatedField $boost_specs + * Optional. Boost specifications for data stores. + * Maps from datastore name to their boost configuration. Do not specify + * more than one BoostSpecs for each datastore name. If multiple BoostSpecs + * are provided for the same datastore name, the behavior is undefined. + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\FilterSpecs>|\Google\Protobuf\Internal\RepeatedField $filter_specs + * Optional. Filter specification for data store queries. + * TMaps from datastore name to the filter expression for that datastore. Do + * not specify more than one FilterSpecs for each datastore name. If + * multiple FilterSpecs are provided for the same datastore name, the + * behavior is undefined. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Boost specifications for data stores. + * Maps from datastore name to their boost configuration. Do not specify + * more than one BoostSpecs for each datastore name. If multiple BoostSpecs + * are provided for the same datastore name, the behavior is undefined. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs boost_specs = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getBoostSpecs() + { + return $this->boost_specs; + } + + /** + * Optional. Boost specifications for data stores. + * Maps from datastore name to their boost configuration. Do not specify + * more than one BoostSpecs for each datastore name. If multiple BoostSpecs + * are provided for the same datastore name, the behavior is undefined. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs boost_specs = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setBoostSpecs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs::class); + $this->boost_specs = $arr; + + return $this; + } + + /** + * Optional. Filter specification for data store queries. + * TMaps from datastore name to the filter expression for that datastore. Do + * not specify more than one FilterSpecs for each datastore name. If + * multiple FilterSpecs are provided for the same datastore name, the + * behavior is undefined. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs filter_specs = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFilterSpecs() + { + return $this->filter_specs; + } + + /** + * Optional. Filter specification for data store queries. + * TMaps from datastore name to the filter expression for that datastore. Do + * not specify more than one FilterSpecs for each datastore name. If + * multiple FilterSpecs are provided for the same datastore name, the + * behavior is undefined. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs filter_specs = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\FilterSpecs>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFilterSpecs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\FilterSpecs::class); + $this->filter_specs = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs.php new file mode 100644 index 0000000..0a70436 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs.php @@ -0,0 +1,114 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs + */ +class BoostSpecs extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Data Stores where the boosting configuration is applied. The + * full names of the referenced data stores. Formats: + * `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` + * `projects/{project}/locations/{location}/dataStores/{data_store}` + * + * Generated from protobuf field repeated string data_stores = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + private $data_stores; + /** + * Optional. A list of boosting specifications. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $spec; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $data_stores + * Optional. Data Stores where the boosting configuration is applied. The + * full names of the referenced data stores. Formats: + * `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` + * `projects/{project}/locations/{location}/dataStores/{data_store}` + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec>|\Google\Protobuf\Internal\RepeatedField $spec + * Optional. A list of boosting specifications. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Data Stores where the boosting configuration is applied. The + * full names of the referenced data stores. Formats: + * `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` + * `projects/{project}/locations/{location}/dataStores/{data_store}` + * + * Generated from protobuf field repeated string data_stores = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDataStores() + { + return $this->data_stores; + } + + /** + * Optional. Data Stores where the boosting configuration is applied. The + * full names of the referenced data stores. Formats: + * `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` + * `projects/{project}/locations/{location}/dataStores/{data_store}` + * + * Generated from protobuf field repeated string data_stores = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDataStores($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->data_stores = $arr; + + return $this; + } + + /** + * Optional. A list of boosting specifications. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSpec() + { + return $this->spec; + } + + /** + * Optional. A list of boosting specifications. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec spec = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSpec($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec::class); + $this->spec = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec.php new file mode 100644 index 0000000..899cd95 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec.php @@ -0,0 +1,83 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec + */ +class BoostSpec extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Condition boost specifications. If a document matches + * multiple conditions in the specifications, boost scores from these + * specifications are all applied and combined in a non-linear way. + * Maximum number of specifications is 20. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec condition_boost_specs = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $condition_boost_specs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec>|\Google\Protobuf\Internal\RepeatedField $condition_boost_specs + * Optional. Condition boost specifications. If a document matches + * multiple conditions in the specifications, boost scores from these + * specifications are all applied and combined in a non-linear way. + * Maximum number of specifications is 20. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Condition boost specifications. If a document matches + * multiple conditions in the specifications, boost scores from these + * specifications are all applied and combined in a non-linear way. + * Maximum number of specifications is 20. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec condition_boost_specs = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConditionBoostSpecs() + { + return $this->condition_boost_specs; + } + + /** + * Optional. Condition boost specifications. If a document matches + * multiple conditions in the specifications, boost scores from these + * specifications are all applied and combined in a non-linear way. + * Maximum number of specifications is 20. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec condition_boost_specs = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConditionBoostSpecs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec::class); + $this->condition_boost_specs = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec.php new file mode 100644 index 0000000..7cd65fc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec.php @@ -0,0 +1,230 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec + */ +class ConditionBoostSpec extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. An expression which specifies a boost condition. The + * syntax and supported fields are the same as a filter expression. + * Examples: + * * To boost documents with document ID "doc_1" or "doc_2", and + * color + * "Red" or "Blue": + * * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + * + * Generated from protobuf field string condition = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $condition = ''; + /** + * Optional. Strength of the condition boost, which should be in [-1, + * 1]. Negative boost means demotion. Default is 0.0. + * Setting to 1.0 gives the document a big promotion. However, it does + * not necessarily mean that the boosted document will be the top + * result at all times, nor that other documents will be excluded. + * Results could still be shown even when none of them matches the + * condition. And results that are significantly more relevant to the + * search query can still trump your heavily favored but irrelevant + * documents. + * Setting to -1.0 gives the document a big demotion. However, results + * that are deeply relevant might still be shown. The document will + * have an upstream battle to get a fairly high ranking, but it is not + * blocked out completely. + * Setting to 0.0 means no boost applied. The boosting condition is + * ignored. + * + * Generated from protobuf field float boost = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $boost = 0.0; + /** + * Optional. Complex specification for custom ranking based on + * customer defined attribute value. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec boost_control_spec = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $boost_control_spec = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $condition + * Optional. An expression which specifies a boost condition. The + * syntax and supported fields are the same as a filter expression. + * Examples: + * * To boost documents with document ID "doc_1" or "doc_2", and + * color + * "Red" or "Blue": + * * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + * @type float $boost + * Optional. Strength of the condition boost, which should be in [-1, + * 1]. Negative boost means demotion. Default is 0.0. + * Setting to 1.0 gives the document a big promotion. However, it does + * not necessarily mean that the boosted document will be the top + * result at all times, nor that other documents will be excluded. + * Results could still be shown even when none of them matches the + * condition. And results that are significantly more relevant to the + * search query can still trump your heavily favored but irrelevant + * documents. + * Setting to -1.0 gives the document a big demotion. However, results + * that are deeply relevant might still be shown. The document will + * have an upstream battle to get a fairly high ranking, but it is not + * blocked out completely. + * Setting to 0.0 means no boost applied. The boosting condition is + * ignored. + * @type \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec $boost_control_spec + * Optional. Complex specification for custom ranking based on + * customer defined attribute value. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. An expression which specifies a boost condition. The + * syntax and supported fields are the same as a filter expression. + * Examples: + * * To boost documents with document ID "doc_1" or "doc_2", and + * color + * "Red" or "Blue": + * * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + * + * Generated from protobuf field string condition = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getCondition() + { + return $this->condition; + } + + /** + * Optional. An expression which specifies a boost condition. The + * syntax and supported fields are the same as a filter expression. + * Examples: + * * To boost documents with document ID "doc_1" or "doc_2", and + * color + * "Red" or "Blue": + * * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue")) + * + * Generated from protobuf field string condition = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setCondition($var) + { + GPBUtil::checkString($var, True); + $this->condition = $var; + + return $this; + } + + /** + * Optional. Strength of the condition boost, which should be in [-1, + * 1]. Negative boost means demotion. Default is 0.0. + * Setting to 1.0 gives the document a big promotion. However, it does + * not necessarily mean that the boosted document will be the top + * result at all times, nor that other documents will be excluded. + * Results could still be shown even when none of them matches the + * condition. And results that are significantly more relevant to the + * search query can still trump your heavily favored but irrelevant + * documents. + * Setting to -1.0 gives the document a big demotion. However, results + * that are deeply relevant might still be shown. The document will + * have an upstream battle to get a fairly high ranking, but it is not + * blocked out completely. + * Setting to 0.0 means no boost applied. The boosting condition is + * ignored. + * + * Generated from protobuf field float boost = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getBoost() + { + return $this->boost; + } + + /** + * Optional. Strength of the condition boost, which should be in [-1, + * 1]. Negative boost means demotion. Default is 0.0. + * Setting to 1.0 gives the document a big promotion. However, it does + * not necessarily mean that the boosted document will be the top + * result at all times, nor that other documents will be excluded. + * Results could still be shown even when none of them matches the + * condition. And results that are significantly more relevant to the + * search query can still trump your heavily favored but irrelevant + * documents. + * Setting to -1.0 gives the document a big demotion. However, results + * that are deeply relevant might still be shown. The document will + * have an upstream battle to get a fairly high ranking, but it is not + * blocked out completely. + * Setting to 0.0 means no boost applied. The boosting condition is + * ignored. + * + * Generated from protobuf field float boost = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setBoost($var) + { + GPBUtil::checkFloat($var); + $this->boost = $var; + + return $this; + } + + /** + * Optional. Complex specification for custom ranking based on + * customer defined attribute value. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec boost_control_spec = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec|null + */ + public function getBoostControlSpec() + { + return $this->boost_control_spec; + } + + public function hasBoostControlSpec() + { + return isset($this->boost_control_spec); + } + + public function clearBoostControlSpec() + { + unset($this->boost_control_spec); + } + + /** + * Optional. Complex specification for custom ranking based on + * customer defined attribute value. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec boost_control_spec = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec $var + * @return $this + */ + public function setBoostControlSpec($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec::class); + $this->boost_control_spec = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec.php new file mode 100644 index 0000000..c1af15f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec.php @@ -0,0 +1,209 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec + */ +class BoostControlSpec extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The name of the field whose value will be used to + * determine the boost amount. + * + * Generated from protobuf field string field_name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $field_name = ''; + /** + * Optional. The attribute type to be used to determine the boost + * amount. The attribute value can be derived from the field value + * of the specified field_name. In the case of numerical it is + * straightforward i.e. attribute_value = numerical_field_value. In + * the case of freshness however, attribute_value = (time.now() - + * datetime_field_value). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType attribute_type = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $attribute_type = 0; + /** + * Optional. The interpolation type to be applied to connect the + * control points listed below. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType interpolation_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $interpolation_type = 0; + /** + * Optional. The control points used to define the curve. The + * monotonic function (defined through the interpolation_type above) + * passes through the control points listed here. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint control_points = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $control_points; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $field_name + * Optional. The name of the field whose value will be used to + * determine the boost amount. + * @type int $attribute_type + * Optional. The attribute type to be used to determine the boost + * amount. The attribute value can be derived from the field value + * of the specified field_name. In the case of numerical it is + * straightforward i.e. attribute_value = numerical_field_value. In + * the case of freshness however, attribute_value = (time.now() - + * datetime_field_value). + * @type int $interpolation_type + * Optional. The interpolation type to be applied to connect the + * control points listed below. + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec\ControlPoint>|\Google\Protobuf\Internal\RepeatedField $control_points + * Optional. The control points used to define the curve. The + * monotonic function (defined through the interpolation_type above) + * passes through the control points listed here. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The name of the field whose value will be used to + * determine the boost amount. + * + * Generated from protobuf field string field_name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFieldName() + { + return $this->field_name; + } + + /** + * Optional. The name of the field whose value will be used to + * determine the boost amount. + * + * Generated from protobuf field string field_name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFieldName($var) + { + GPBUtil::checkString($var, True); + $this->field_name = $var; + + return $this; + } + + /** + * Optional. The attribute type to be used to determine the boost + * amount. The attribute value can be derived from the field value + * of the specified field_name. In the case of numerical it is + * straightforward i.e. attribute_value = numerical_field_value. In + * the case of freshness however, attribute_value = (time.now() - + * datetime_field_value). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType attribute_type = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getAttributeType() + { + return $this->attribute_type; + } + + /** + * Optional. The attribute type to be used to determine the boost + * amount. The attribute value can be derived from the field value + * of the specified field_name. In the case of numerical it is + * straightforward i.e. attribute_value = numerical_field_value. In + * the case of freshness however, attribute_value = (time.now() - + * datetime_field_value). + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType attribute_type = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setAttributeType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec\AttributeType::class); + $this->attribute_type = $var; + + return $this; + } + + /** + * Optional. The interpolation type to be applied to connect the + * control points listed below. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType interpolation_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getInterpolationType() + { + return $this->interpolation_type; + } + + /** + * Optional. The interpolation type to be applied to connect the + * control points listed below. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType interpolation_type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setInterpolationType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec\InterpolationType::class); + $this->interpolation_type = $var; + + return $this; + } + + /** + * Optional. The control points used to define the curve. The + * monotonic function (defined through the interpolation_type above) + * passes through the control points listed here. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint control_points = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getControlPoints() + { + return $this->control_points; + } + + /** + * Optional. The control points used to define the curve. The + * monotonic function (defined through the interpolation_type above) + * passes through the control points listed here. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint control_points = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec\ControlPoint>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setControlPoints($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeRequest\SearchConfig\BoostSpecs\BoostSpec\ConditionBoostSpec\BoostControlSpec\ControlPoint::class); + $this->control_points = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/AttributeType.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/AttributeType.php new file mode 100644 index 0000000..aa07719 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/AttributeType.php @@ -0,0 +1,71 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.AttributeType + */ +class AttributeType +{ + /** + * Unspecified AttributeType. + * + * Generated from protobuf enum ATTRIBUTE_TYPE_UNSPECIFIED = 0; + */ + const ATTRIBUTE_TYPE_UNSPECIFIED = 0; + /** + * The value of the numerical field will be used to dynamically + * update the boost amount. In this case, the attribute_value (the + * x value) of the control point will be the actual value of the + * numerical field for which the boost_amount is specified. + * + * Generated from protobuf enum NUMERICAL = 1; + */ + const NUMERICAL = 1; + /** + * For the freshness use case the attribute value will be the + * duration between the current time and the date in the datetime + * field specified. The value must be formatted as an XSD + * `dayTimeDuration` value (a restricted subset of an ISO 8601 + * duration value). The pattern for this is: + * `[nD][T[nH][nM][nS]]`. E.g. `5D`, `3DT12H30M`, `T24H`. + * + * Generated from protobuf enum FRESHNESS = 2; + */ + const FRESHNESS = 2; + + private static $valueToName = [ + self::ATTRIBUTE_TYPE_UNSPECIFIED => 'ATTRIBUTE_TYPE_UNSPECIFIED', + self::NUMERICAL => 'NUMERICAL', + self::FRESHNESS => 'FRESHNESS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/ControlPoint.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/ControlPoint.php new file mode 100644 index 0000000..ed22f21 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/ControlPoint.php @@ -0,0 +1,128 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.ControlPoint + */ +class ControlPoint extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Can be one of: + * 1. The numerical field value. + * 2. The duration spec for freshness: + * The value must be formatted as an XSD `dayTimeDuration` value + * (a restricted subset of an ISO 8601 duration value). The + * pattern for this is: `[nD][T[nH][nM][nS]]`. + * + * Generated from protobuf field string attribute_value = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $attribute_value = ''; + /** + * Optional. The value between -1 to 1 by which to boost the score + * if the attribute_value evaluates to the value specified above. + * + * Generated from protobuf field float boost_amount = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $boost_amount = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $attribute_value + * Optional. Can be one of: + * 1. The numerical field value. + * 2. The duration spec for freshness: + * The value must be formatted as an XSD `dayTimeDuration` value + * (a restricted subset of an ISO 8601 duration value). The + * pattern for this is: `[nD][T[nH][nM][nS]]`. + * @type float $boost_amount + * Optional. The value between -1 to 1 by which to boost the score + * if the attribute_value evaluates to the value specified above. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Can be one of: + * 1. The numerical field value. + * 2. The duration spec for freshness: + * The value must be formatted as an XSD `dayTimeDuration` value + * (a restricted subset of an ISO 8601 duration value). The + * pattern for this is: `[nD][T[nH][nM][nS]]`. + * + * Generated from protobuf field string attribute_value = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getAttributeValue() + { + return $this->attribute_value; + } + + /** + * Optional. Can be one of: + * 1. The numerical field value. + * 2. The duration spec for freshness: + * The value must be formatted as an XSD `dayTimeDuration` value + * (a restricted subset of an ISO 8601 duration value). The + * pattern for this is: `[nD][T[nH][nM][nS]]`. + * + * Generated from protobuf field string attribute_value = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setAttributeValue($var) + { + GPBUtil::checkString($var, True); + $this->attribute_value = $var; + + return $this; + } + + /** + * Optional. The value between -1 to 1 by which to boost the score + * if the attribute_value evaluates to the value specified above. + * + * Generated from protobuf field float boost_amount = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getBoostAmount() + { + return $this->boost_amount; + } + + /** + * Optional. The value between -1 to 1 by which to boost the score + * if the attribute_value evaluates to the value specified above. + * + * Generated from protobuf field float boost_amount = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setBoostAmount($var) + { + GPBUtil::checkFloat($var); + $this->boost_amount = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/InterpolationType.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/InterpolationType.php new file mode 100644 index 0000000..58ef4f0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/BoostSpecs/BoostSpec/ConditionBoostSpec/BoostControlSpec/InterpolationType.php @@ -0,0 +1,57 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.BoostSpecs.BoostSpec.ConditionBoostSpec.BoostControlSpec.InterpolationType + */ +class InterpolationType +{ + /** + * Interpolation type is unspecified. In this case, it defaults to + * Linear. + * + * Generated from protobuf enum INTERPOLATION_TYPE_UNSPECIFIED = 0; + */ + const INTERPOLATION_TYPE_UNSPECIFIED = 0; + /** + * Piecewise linear interpolation will be applied. + * + * Generated from protobuf enum LINEAR = 1; + */ + const LINEAR = 1; + + private static $valueToName = [ + self::INTERPOLATION_TYPE_UNSPECIFIED => 'INTERPOLATION_TYPE_UNSPECIFIED', + self::LINEAR => 'LINEAR', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/FilterSpecs.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/FilterSpecs.php new file mode 100644 index 0000000..6703c5c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeRequest/SearchConfig/FilterSpecs.php @@ -0,0 +1,122 @@ +google.cloud.dialogflow.v2.SearchKnowledgeRequest.SearchConfig.FilterSpecs + */ +class FilterSpecs extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The data store where the filter configuration is applied. + * Full resource name of data store, such as + * projects/{project}/locations/{location}/collections/{collectionId}/ + * dataStores/{dataStoreId}. + * + * Generated from protobuf field repeated string data_stores = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $data_stores; + /** + * Optional. The filter expression to be applied. + * Expression syntax is documented at + * https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $filter = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $data_stores + * Optional. The data store where the filter configuration is applied. + * Full resource name of data store, such as + * projects/{project}/locations/{location}/collections/{collectionId}/ + * dataStores/{dataStoreId}. + * @type string $filter + * Optional. The filter expression to be applied. + * Expression syntax is documented at + * https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The data store where the filter configuration is applied. + * Full resource name of data store, such as + * projects/{project}/locations/{location}/collections/{collectionId}/ + * dataStores/{dataStoreId}. + * + * Generated from protobuf field repeated string data_stores = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDataStores() + { + return $this->data_stores; + } + + /** + * Optional. The data store where the filter configuration is applied. + * Full resource name of data store, such as + * projects/{project}/locations/{location}/collections/{collectionId}/ + * dataStores/{dataStoreId}. + * + * Generated from protobuf field repeated string data_stores = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDataStores($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->data_stores = $arr; + + return $this; + } + + /** + * Optional. The filter expression to be applied. + * Expression syntax is documented at + * https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * Optional. The filter expression to be applied. + * Expression syntax is documented at + * https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax + * + * Generated from protobuf field string filter = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeResponse.php b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeResponse.php new file mode 100644 index 0000000..8e15b61 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SearchKnowledgeResponse.php @@ -0,0 +1,106 @@ +google.cloud.dialogflow.v2.SearchKnowledgeResponse + */ +class SearchKnowledgeResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Most relevant snippets extracted from articles in the given knowledge base, + * ordered by confidence. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeAnswer answers = 2; + */ + private $answers; + /** + * The rewritten query used to search knowledge. + * + * Generated from protobuf field string rewritten_query = 3; + */ + protected $rewritten_query = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer>|\Google\Protobuf\Internal\RepeatedField $answers + * Most relevant snippets extracted from articles in the given knowledge base, + * ordered by confidence. + * @type string $rewritten_query + * The rewritten query used to search knowledge. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Most relevant snippets extracted from articles in the given knowledge base, + * ordered by confidence. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeAnswer answers = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAnswers() + { + return $this->answers; + } + + /** + * Most relevant snippets extracted from articles in the given knowledge base, + * ordered by confidence. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SearchKnowledgeAnswer answers = 2; + * @param array<\Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAnswers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SearchKnowledgeAnswer::class); + $this->answers = $arr; + + return $this; + } + + /** + * The rewritten query used to search knowledge. + * + * Generated from protobuf field string rewritten_query = 3; + * @return string + */ + public function getRewrittenQuery() + { + return $this->rewritten_query; + } + + /** + * The rewritten query used to search knowledge. + * + * Generated from protobuf field string rewritten_query = 3; + * @param string $var + * @return $this + */ + public function setRewrittenQuery($var) + { + GPBUtil::checkString($var, True); + $this->rewritten_query = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Sentiment.php b/vendor/google/cloud-dialogflow/src/V2/Sentiment.php new file mode 100644 index 0000000..2fb6df4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Sentiment.php @@ -0,0 +1,112 @@ +google.cloud.dialogflow.v2.Sentiment + */ +class Sentiment extends \Google\Protobuf\Internal\Message +{ + /** + * Sentiment score between -1.0 (negative sentiment) and 1.0 (positive + * sentiment). + * + * Generated from protobuf field float score = 1; + */ + protected $score = 0.0; + /** + * A non-negative number in the [0, +inf) range, which represents the absolute + * magnitude of sentiment, regardless of score (positive or negative). + * + * Generated from protobuf field float magnitude = 2; + */ + protected $magnitude = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $score + * Sentiment score between -1.0 (negative sentiment) and 1.0 (positive + * sentiment). + * @type float $magnitude + * A non-negative number in the [0, +inf) range, which represents the absolute + * magnitude of sentiment, regardless of score (positive or negative). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Sentiment score between -1.0 (negative sentiment) and 1.0 (positive + * sentiment). + * + * Generated from protobuf field float score = 1; + * @return float + */ + public function getScore() + { + return $this->score; + } + + /** + * Sentiment score between -1.0 (negative sentiment) and 1.0 (positive + * sentiment). + * + * Generated from protobuf field float score = 1; + * @param float $var + * @return $this + */ + public function setScore($var) + { + GPBUtil::checkFloat($var); + $this->score = $var; + + return $this; + } + + /** + * A non-negative number in the [0, +inf) range, which represents the absolute + * magnitude of sentiment, regardless of score (positive or negative). + * + * Generated from protobuf field float magnitude = 2; + * @return float + */ + public function getMagnitude() + { + return $this->magnitude; + } + + /** + * A non-negative number in the [0, +inf) range, which represents the absolute + * magnitude of sentiment, regardless of score (positive or negative). + * + * Generated from protobuf field float magnitude = 2; + * @param float $var + * @return $this + */ + public function setMagnitude($var) + { + GPBUtil::checkFloat($var); + $this->magnitude = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisRequestConfig.php b/vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisRequestConfig.php new file mode 100644 index 0000000..996d88c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisRequestConfig.php @@ -0,0 +1,75 @@ +google.cloud.dialogflow.v2.SentimentAnalysisRequestConfig + */ +class SentimentAnalysisRequestConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Instructs the service to perform sentiment analysis on + * `query_text`. If not provided, sentiment analysis is not performed on + * `query_text`. + * + * Generated from protobuf field bool analyze_query_text_sentiment = 1; + */ + protected $analyze_query_text_sentiment = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $analyze_query_text_sentiment + * Instructs the service to perform sentiment analysis on + * `query_text`. If not provided, sentiment analysis is not performed on + * `query_text`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Instructs the service to perform sentiment analysis on + * `query_text`. If not provided, sentiment analysis is not performed on + * `query_text`. + * + * Generated from protobuf field bool analyze_query_text_sentiment = 1; + * @return bool + */ + public function getAnalyzeQueryTextSentiment() + { + return $this->analyze_query_text_sentiment; + } + + /** + * Instructs the service to perform sentiment analysis on + * `query_text`. If not provided, sentiment analysis is not performed on + * `query_text`. + * + * Generated from protobuf field bool analyze_query_text_sentiment = 1; + * @param bool $var + * @return $this + */ + public function setAnalyzeQueryTextSentiment($var) + { + GPBUtil::checkBool($var); + $this->analyze_query_text_sentiment = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisResult.php b/vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisResult.php new file mode 100644 index 0000000..fc2bcf7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SentimentAnalysisResult.php @@ -0,0 +1,89 @@ +google.cloud.dialogflow.v2.SentimentAnalysisResult + */ +class SentimentAnalysisResult extends \Google\Protobuf\Internal\Message +{ + /** + * The sentiment analysis result for `query_text`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Sentiment query_text_sentiment = 1; + */ + protected $query_text_sentiment = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Sentiment $query_text_sentiment + * The sentiment analysis result for `query_text`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * The sentiment analysis result for `query_text`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Sentiment query_text_sentiment = 1; + * @return \Google\Cloud\Dialogflow\V2\Sentiment|null + */ + public function getQueryTextSentiment() + { + return $this->query_text_sentiment; + } + + public function hasQueryTextSentiment() + { + return isset($this->query_text_sentiment); + } + + public function clearQueryTextSentiment() + { + unset($this->query_text_sentiment); + } + + /** + * The sentiment analysis result for `query_text`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Sentiment query_text_sentiment = 1; + * @param \Google\Cloud\Dialogflow\V2\Sentiment $var + * @return $this + */ + public function setQueryTextSentiment($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Sentiment::class); + $this->query_text_sentiment = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SessionEntityType.php b/vendor/google/cloud-dialogflow/src/V2/SessionEntityType.php new file mode 100644 index 0000000..2e6fedf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SessionEntityType.php @@ -0,0 +1,181 @@ +google.cloud.dialogflow.v2.SessionEntityType + */ +class SessionEntityType extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The unique identifier of this session entity type. Format: + * `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * `` must be the display name of an existing entity + * type in the same agent that will be overridden or supplemented. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + /** + * Required. Indicates whether the additional data should override or + * supplement the custom entity type definition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode entity_override_mode = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $entity_override_mode = 0; + /** + * Required. The collection of entities associated with this session entity + * type. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + private $entities; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The unique identifier of this session entity type. Format: + * `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * `` must be the display name of an existing entity + * type in the same agent that will be overridden or supplemented. + * @type int $entity_override_mode + * Required. Indicates whether the additional data should override or + * supplement the custom entity type definition. + * @type array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $entities + * Required. The collection of entities associated with this session entity + * type. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The unique identifier of this session entity type. Format: + * `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * `` must be the display name of an existing entity + * type in the same agent that will be overridden or supplemented. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The unique identifier of this session entity type. Format: + * `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. + * If `Environment ID` is not specified, we assume default 'draft' + * environment. If `User ID` is not specified, we assume default '-' user. + * `` must be the display name of an existing entity + * type in the same agent that will be overridden or supplemented. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. Indicates whether the additional data should override or + * supplement the custom entity type definition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode entity_override_mode = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getEntityOverrideMode() + { + return $this->entity_override_mode; + } + + /** + * Required. Indicates whether the additional data should override or + * supplement the custom entity type definition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode entity_override_mode = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setEntityOverrideMode($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SessionEntityType\EntityOverrideMode::class); + $this->entity_override_mode = $var; + + return $this; + } + + /** + * Required. The collection of entities associated with this session entity + * type. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntities() + { + return $this->entities; + } + + /** + * Required. The collection of entities associated with this session entity + * type. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.EntityType.Entity entities = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\EntityType\Entity>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntities($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\EntityType\Entity::class); + $this->entities = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SessionEntityType/EntityOverrideMode.php b/vendor/google/cloud-dialogflow/src/V2/SessionEntityType/EntityOverrideMode.php new file mode 100644 index 0000000..6c47ba2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SessionEntityType/EntityOverrideMode.php @@ -0,0 +1,71 @@ +google.cloud.dialogflow.v2.SessionEntityType.EntityOverrideMode + */ +class EntityOverrideMode +{ + /** + * Not specified. This value should be never used. + * + * Generated from protobuf enum ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0; + */ + const ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0; + /** + * The collection of session entities overrides the collection of entities + * in the corresponding custom entity type. + * + * Generated from protobuf enum ENTITY_OVERRIDE_MODE_OVERRIDE = 1; + */ + const ENTITY_OVERRIDE_MODE_OVERRIDE = 1; + /** + * The collection of session entities extends the collection of entities in + * the corresponding custom entity type. + * Note: Even in this override mode calls to `ListSessionEntityTypes`, + * `GetSessionEntityType`, `CreateSessionEntityType` and + * `UpdateSessionEntityType` only return the additional entities added in + * this session entity type. If you want to get the supplemented list, + * please call + * [EntityTypes.GetEntityType][google.cloud.dialogflow.v2.EntityTypes.GetEntityType] + * on the custom entity type and merge. + * + * Generated from protobuf enum ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2; + */ + const ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2; + + private static $valueToName = [ + self::ENTITY_OVERRIDE_MODE_UNSPECIFIED => 'ENTITY_OVERRIDE_MODE_UNSPECIFIED', + self::ENTITY_OVERRIDE_MODE_OVERRIDE => 'ENTITY_OVERRIDE_MODE_OVERRIDE', + self::ENTITY_OVERRIDE_MODE_SUPPLEMENT => 'ENTITY_OVERRIDE_MODE_SUPPLEMENT', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SetAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/SetAgentRequest.php new file mode 100644 index 0000000..89ce4e6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SetAgentRequest.php @@ -0,0 +1,135 @@ +google.cloud.dialogflow.v2.SetAgentRequest + */ +class SetAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The agent to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent agent = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $agent = null; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Agent $agent Required. The agent to update. + * + * @return \Google\Cloud\Dialogflow\V2\SetAgentRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Agent $agent): self + { + return (new self()) + ->setAgent($agent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Agent $agent + * Required. The agent to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The agent to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent agent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Agent|null + */ + public function getAgent() + { + return $this->agent; + } + + public function hasAgent() + { + return isset($this->agent); + } + + public function clearAgent() + { + unset($this->agent); + } + + /** + * Required. The agent to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Agent agent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Agent $var + * @return $this + */ + public function setAgent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Agent::class); + $this->agent = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigOperationMetadata.php new file mode 100644 index 0000000..bea2c37 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigOperationMetadata.php @@ -0,0 +1,193 @@ +google.cloud.dialogflow.v2.SetSuggestionFeatureConfigOperationMetadata + */ +class SetSuggestionFeatureConfigOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * + * Generated from protobuf field string conversation_profile = 1; + */ + protected $conversation_profile = ''; + /** + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $participant_role = 0; + /** + * Required. The type of the suggestion feature to add or update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $suggestion_feature_type = 0; + /** + * Timestamp whe the request was created. The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_profile + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * @type int $participant_role + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * @type int $suggestion_feature_type + * Required. The type of the suggestion feature to add or update. + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp whe the request was created. The time is measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * + * Generated from protobuf field string conversation_profile = 1; + * @return string + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + /** + * The resource name of the conversation profile. Format: + * `projects//locations//conversationProfiles/` + * + * Generated from protobuf field string conversation_profile = 1; + * @param string $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkString($var, True); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getParticipantRole() + { + return $this->participant_role; + } + + /** + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setParticipantRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Participant\Role::class); + $this->participant_role = $var; + + return $this; + } + + /** + * Required. The type of the suggestion feature to add or update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getSuggestionFeatureType() + { + return $this->suggestion_feature_type; + } + + /** + * Required. The type of the suggestion feature to add or update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type suggestion_feature_type = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setSuggestionFeatureType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SuggestionFeature\Type::class); + $this->suggestion_feature_type = $var; + + return $this; + } + + /** + * Timestamp whe the request was created. The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp whe the request was created. The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigRequest.php b/vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigRequest.php new file mode 100644 index 0000000..ec3c749 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SetSuggestionFeatureConfigRequest.php @@ -0,0 +1,194 @@ +google.cloud.dialogflow.v2.SetSuggestionFeatureConfigRequest + */ +class SetSuggestionFeatureConfigRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_profile = ''; + /** + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $participant_role = 0; + /** + * Required. The suggestion feature config to add or update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig suggestion_feature_config = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $suggestion_feature_config = null; + + /** + * @param string $conversationProfile Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * @return \Google\Cloud\Dialogflow\V2\SetSuggestionFeatureConfigRequest + * + * @experimental + */ + public static function build(string $conversationProfile): self + { + return (new self()) + ->setConversationProfile($conversationProfile); + } + + /** + * @param string $conversationProfile Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * @param int $participantRole Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * For allowed values, use constants defined on {@see \Google\Cloud\Dialogflow\V2\Participant\Role} + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig $suggestionFeatureConfig Required. The suggestion feature config to add or update. + * + * @return \Google\Cloud\Dialogflow\V2\SetSuggestionFeatureConfigRequest + * + * @experimental + */ + public static function buildFromConversationProfileParticipantRoleSuggestionFeatureConfig(string $conversationProfile, int $participantRole, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig $suggestionFeatureConfig): self + { + return (new self()) + ->setConversationProfile($conversationProfile) + ->setParticipantRole($participantRole) + ->setSuggestionFeatureConfig($suggestionFeatureConfig); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_profile + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * @type int $participant_role + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * @type \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig $suggestion_feature_config + * Required. The suggestion feature config to add or update. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + /** + * Required. The Conversation Profile to add or update the suggestion feature + * config. Format: `projects//locations//conversationProfiles/`. + * + * Generated from protobuf field string conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkString($var, True); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getParticipantRole() + { + return $this->participant_role; + } + + /** + * Required. The participant role to add or update the suggestion feature + * config. Only HUMAN_AGENT or END_USER can be used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant.Role participant_role = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setParticipantRole($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Participant\Role::class); + $this->participant_role = $var; + + return $this; + } + + /** + * Required. The suggestion feature config to add or update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig suggestion_feature_config = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig|null + */ + public function getSuggestionFeatureConfig() + { + return $this->suggestion_feature_config; + } + + public function hasSuggestionFeatureConfig() + { + return isset($this->suggestion_feature_config); + } + + public function clearSuggestionFeatureConfig() + { + unset($this->suggestion_feature_config); + } + + /** + * Required. The suggestion feature config to add or update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionFeatureConfig suggestion_feature_config = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig $var + * @return $this + */ + public function setSuggestionFeatureConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\HumanAgentAssistantConfig\SuggestionFeatureConfig::class); + $this->suggestion_feature_config = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SmartReplyAnswer.php b/vendor/google/cloud-dialogflow/src/V2/SmartReplyAnswer.php new file mode 100644 index 0000000..3a2493d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SmartReplyAnswer.php @@ -0,0 +1,155 @@ +google.cloud.dialogflow.v2.SmartReplyAnswer + */ +class SmartReplyAnswer extends \Google\Protobuf\Internal\Message +{ + /** + * The content of the reply. + * + * Generated from protobuf field string reply = 1; + */ + protected $reply = ''; + /** + * Smart reply confidence. + * The system's confidence score that this reply is a good match for + * this conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * + * Generated from protobuf field float confidence = 2; + */ + protected $confidence = 0.0; + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $reply + * The content of the reply. + * @type float $confidence + * Smart reply confidence. + * The system's confidence score that this reply is a good match for + * this conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * @type string $answer_record + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The content of the reply. + * + * Generated from protobuf field string reply = 1; + * @return string + */ + public function getReply() + { + return $this->reply; + } + + /** + * The content of the reply. + * + * Generated from protobuf field string reply = 1; + * @param string $var + * @return $this + */ + public function setReply($var) + { + GPBUtil::checkString($var, True); + $this->reply = $var; + + return $this; + } + + /** + * Smart reply confidence. + * The system's confidence score that this reply is a good match for + * this conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * + * Generated from protobuf field float confidence = 2; + * @return float + */ + public function getConfidence() + { + return $this->confidence; + } + + /** + * Smart reply confidence. + * The system's confidence score that this reply is a good match for + * this conversation, as a value from 0.0 (completely uncertain) to 1.0 + * (completely certain). + * + * Generated from protobuf field float confidence = 2; + * @param float $var + * @return $this + */ + public function setConfidence($var) + { + GPBUtil::checkFloat($var); + $this->confidence = $var; + + return $this; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of answer record, in the format of + * "projects//locations//answerRecords/" + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics.php b/vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics.php new file mode 100644 index 0000000..b191f64 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics.php @@ -0,0 +1,143 @@ +google.cloud.dialogflow.v2.SmartReplyMetrics + */ +class SmartReplyMetrics extends \Google\Protobuf\Internal\Message +{ + /** + * Percentage of target participant messages in the evaluation dataset for + * which similar messages have appeared at least once in the allowlist. Should + * be [0, 1]. + * + * Generated from protobuf field float allowlist_coverage = 1; + */ + protected $allowlist_coverage = 0.0; + /** + * Metrics of top n smart replies, sorted by [TopNMetric.n][]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics top_n_metrics = 2; + */ + private $top_n_metrics; + /** + * Total number of conversations used to generate this metric. + * + * Generated from protobuf field int64 conversation_count = 3; + */ + protected $conversation_count = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $allowlist_coverage + * Percentage of target participant messages in the evaluation dataset for + * which similar messages have appeared at least once in the allowlist. Should + * be [0, 1]. + * @type array<\Google\Cloud\Dialogflow\V2\SmartReplyMetrics\TopNMetrics>|\Google\Protobuf\Internal\RepeatedField $top_n_metrics + * Metrics of top n smart replies, sorted by [TopNMetric.n][]. + * @type int|string $conversation_count + * Total number of conversations used to generate this metric. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Percentage of target participant messages in the evaluation dataset for + * which similar messages have appeared at least once in the allowlist. Should + * be [0, 1]. + * + * Generated from protobuf field float allowlist_coverage = 1; + * @return float + */ + public function getAllowlistCoverage() + { + return $this->allowlist_coverage; + } + + /** + * Percentage of target participant messages in the evaluation dataset for + * which similar messages have appeared at least once in the allowlist. Should + * be [0, 1]. + * + * Generated from protobuf field float allowlist_coverage = 1; + * @param float $var + * @return $this + */ + public function setAllowlistCoverage($var) + { + GPBUtil::checkFloat($var); + $this->allowlist_coverage = $var; + + return $this; + } + + /** + * Metrics of top n smart replies, sorted by [TopNMetric.n][]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics top_n_metrics = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getTopNMetrics() + { + return $this->top_n_metrics; + } + + /** + * Metrics of top n smart replies, sorted by [TopNMetric.n][]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics top_n_metrics = 2; + * @param array<\Google\Cloud\Dialogflow\V2\SmartReplyMetrics\TopNMetrics>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setTopNMetrics($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SmartReplyMetrics\TopNMetrics::class); + $this->top_n_metrics = $arr; + + return $this; + } + + /** + * Total number of conversations used to generate this metric. + * + * Generated from protobuf field int64 conversation_count = 3; + * @return int|string + */ + public function getConversationCount() + { + return $this->conversation_count; + } + + /** + * Total number of conversations used to generate this metric. + * + * Generated from protobuf field int64 conversation_count = 3; + * @param int|string $var + * @return $this + */ + public function setConversationCount($var) + { + GPBUtil::checkInt64($var); + $this->conversation_count = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics/TopNMetrics.php b/vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics/TopNMetrics.php new file mode 100644 index 0000000..d2e1025 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SmartReplyMetrics/TopNMetrics.php @@ -0,0 +1,122 @@ +google.cloud.dialogflow.v2.SmartReplyMetrics.TopNMetrics + */ +class TopNMetrics extends \Google\Protobuf\Internal\Message +{ + /** + * Number of retrieved smart replies. For example, when `n` is 3, this + * evaluation contains metrics for when Dialogflow retrieves 3 smart replies + * with the model. + * + * Generated from protobuf field int32 n = 1; + */ + protected $n = 0; + /** + * Defined as `number of queries whose top n smart replies have at least one + * similar (token match similarity above the defined threshold) reply as the + * real reply` divided by `number of queries with at least one smart reply`. + * Value ranges from 0.0 to 1.0 inclusive. + * + * Generated from protobuf field float recall = 2; + */ + protected $recall = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $n + * Number of retrieved smart replies. For example, when `n` is 3, this + * evaluation contains metrics for when Dialogflow retrieves 3 smart replies + * with the model. + * @type float $recall + * Defined as `number of queries whose top n smart replies have at least one + * similar (token match similarity above the defined threshold) reply as the + * real reply` divided by `number of queries with at least one smart reply`. + * Value ranges from 0.0 to 1.0 inclusive. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Number of retrieved smart replies. For example, when `n` is 3, this + * evaluation contains metrics for when Dialogflow retrieves 3 smart replies + * with the model. + * + * Generated from protobuf field int32 n = 1; + * @return int + */ + public function getN() + { + return $this->n; + } + + /** + * Number of retrieved smart replies. For example, when `n` is 3, this + * evaluation contains metrics for when Dialogflow retrieves 3 smart replies + * with the model. + * + * Generated from protobuf field int32 n = 1; + * @param int $var + * @return $this + */ + public function setN($var) + { + GPBUtil::checkInt32($var); + $this->n = $var; + + return $this; + } + + /** + * Defined as `number of queries whose top n smart replies have at least one + * similar (token match similarity above the defined threshold) reply as the + * real reply` divided by `number of queries with at least one smart reply`. + * Value ranges from 0.0 to 1.0 inclusive. + * + * Generated from protobuf field float recall = 2; + * @return float + */ + public function getRecall() + { + return $this->recall; + } + + /** + * Defined as `number of queries whose top n smart replies have at least one + * similar (token match similarity above the defined threshold) reply as the + * real reply` divided by `number of queries with at least one smart reply`. + * Value ranges from 0.0 to 1.0 inclusive. + * + * Generated from protobuf field float recall = 2; + * @param float $var + * @return $this + */ + public function setRecall($var) + { + GPBUtil::checkFloat($var); + $this->recall = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SmartReplyModelMetadata.php b/vendor/google/cloud-dialogflow/src/V2/SmartReplyModelMetadata.php new file mode 100644 index 0000000..5de4374 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SmartReplyModelMetadata.php @@ -0,0 +1,71 @@ +google.cloud.dialogflow.v2.SmartReplyModelMetadata + */ +class SmartReplyModelMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Type of the smart reply model. If not provided, model_type is + * used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.ModelType training_model_type = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $training_model_type = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $training_model_type + * Optional. Type of the smart reply model. If not provided, model_type is + * used. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Type of the smart reply model. If not provided, model_type is + * used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.ModelType training_model_type = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getTrainingModelType() + { + return $this->training_model_type; + } + + /** + * Optional. Type of the smart reply model. If not provided, model_type is + * used. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationModel.ModelType training_model_type = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setTrainingModelType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\ConversationModel\ModelType::class); + $this->training_model_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SpeechContext.php b/vendor/google/cloud-dialogflow/src/V2/SpeechContext.php new file mode 100644 index 0000000..2f9398e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SpeechContext.php @@ -0,0 +1,162 @@ +google.cloud.dialogflow.v2.SpeechContext + */ +class SpeechContext extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * This list can be used to: + * * improve accuracy for words and phrases you expect the user to say, + * e.g. typical commands for your Dialogflow agent + * * add additional words to the speech recognizer vocabulary + * * ... + * See the [Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/quotas) for usage + * limits. + * + * Generated from protobuf field repeated string phrases = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $phrases; + /** + * Optional. Boost for this context compared to other contexts: + * * If the boost is positive, Dialogflow will increase the probability that + * the phrases in this context are recognized over similar sounding phrases. + * * If the boost is unspecified or non-positive, Dialogflow will not apply + * any boost. + * Dialogflow recommends that you use boosts in the range (0, 20] and that you + * find a value that fits your use case with binary search. + * + * Generated from protobuf field float boost = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $boost = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $phrases + * Optional. A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * This list can be used to: + * * improve accuracy for words and phrases you expect the user to say, + * e.g. typical commands for your Dialogflow agent + * * add additional words to the speech recognizer vocabulary + * * ... + * See the [Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/quotas) for usage + * limits. + * @type float $boost + * Optional. Boost for this context compared to other contexts: + * * If the boost is positive, Dialogflow will increase the probability that + * the phrases in this context are recognized over similar sounding phrases. + * * If the boost is unspecified or non-positive, Dialogflow will not apply + * any boost. + * Dialogflow recommends that you use boosts in the range (0, 20] and that you + * find a value that fits your use case with binary search. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * Optional. A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * This list can be used to: + * * improve accuracy for words and phrases you expect the user to say, + * e.g. typical commands for your Dialogflow agent + * * add additional words to the speech recognizer vocabulary + * * ... + * See the [Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/quotas) for usage + * limits. + * + * Generated from protobuf field repeated string phrases = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPhrases() + { + return $this->phrases; + } + + /** + * Optional. A list of strings containing words and phrases that the speech + * recognizer should recognize with higher likelihood. + * This list can be used to: + * * improve accuracy for words and phrases you expect the user to say, + * e.g. typical commands for your Dialogflow agent + * * add additional words to the speech recognizer vocabulary + * * ... + * See the [Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/quotas) for usage + * limits. + * + * Generated from protobuf field repeated string phrases = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPhrases($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->phrases = $arr; + + return $this; + } + + /** + * Optional. Boost for this context compared to other contexts: + * * If the boost is positive, Dialogflow will increase the probability that + * the phrases in this context are recognized over similar sounding phrases. + * * If the boost is unspecified or non-positive, Dialogflow will not apply + * any boost. + * Dialogflow recommends that you use boosts in the range (0, 20] and that you + * find a value that fits your use case with binary search. + * + * Generated from protobuf field float boost = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getBoost() + { + return $this->boost; + } + + /** + * Optional. Boost for this context compared to other contexts: + * * If the boost is positive, Dialogflow will increase the probability that + * the phrases in this context are recognized over similar sounding phrases. + * * If the boost is unspecified or non-positive, Dialogflow will not apply + * any boost. + * Dialogflow recommends that you use boosts in the range (0, 20] and that you + * find a value that fits your use case with binary search. + * + * Generated from protobuf field float boost = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setBoost($var) + { + GPBUtil::checkFloat($var); + $this->boost = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SpeechModelVariant.php b/vendor/google/cloud-dialogflow/src/V2/SpeechModelVariant.php new file mode 100644 index 0000000..46aefc3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SpeechModelVariant.php @@ -0,0 +1,92 @@ +google.cloud.dialogflow.v2.SpeechModelVariant + */ +class SpeechModelVariant +{ + /** + * No model variant specified. In this case Dialogflow defaults to + * USE_BEST_AVAILABLE. + * + * Generated from protobuf enum SPEECH_MODEL_VARIANT_UNSPECIFIED = 0; + */ + const SPEECH_MODEL_VARIANT_UNSPECIFIED = 0; + /** + * Use the best available variant of the [Speech model][model] that the caller + * is eligible for. + * Please see the [Dialogflow + * docs](https://cloud.google.com/dialogflow/docs/data-logging) for + * how to make your project eligible for enhanced models. + * + * Generated from protobuf enum USE_BEST_AVAILABLE = 1; + */ + const USE_BEST_AVAILABLE = 1; + /** + * Use standard model variant even if an enhanced model is available. See the + * [Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) + * for details about enhanced models. + * + * Generated from protobuf enum USE_STANDARD = 2; + */ + const USE_STANDARD = 2; + /** + * Use an enhanced model variant: + * * If an enhanced variant does not exist for the given + * [model][google.cloud.dialogflow.v2.InputAudioConfig.model] and request + * language, Dialogflow falls back to the standard variant. + * The [Cloud Speech + * documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) + * describes which models have enhanced variants. + * * If the API caller isn't eligible for enhanced models, Dialogflow returns + * an error. Please see the [Dialogflow + * docs](https://cloud.google.com/dialogflow/docs/data-logging) + * for how to make your project eligible. + * + * Generated from protobuf enum USE_ENHANCED = 3; + */ + const USE_ENHANCED = 3; + + private static $valueToName = [ + self::SPEECH_MODEL_VARIANT_UNSPECIFIED => 'SPEECH_MODEL_VARIANT_UNSPECIFIED', + self::USE_BEST_AVAILABLE => 'USE_BEST_AVAILABLE', + self::USE_STANDARD => 'USE_STANDARD', + self::USE_ENHANCED => 'USE_ENHANCED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SpeechToTextConfig.php b/vendor/google/cloud-dialogflow/src/V2/SpeechToTextConfig.php new file mode 100644 index 0000000..8f7bcc8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SpeechToTextConfig.php @@ -0,0 +1,474 @@ +google.cloud.dialogflow.v2.SpeechToTextConfig + */ +class SpeechToTextConfig extends \Google\Protobuf\Internal\Message +{ + /** + * The speech model used in speech to text. + * `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as + * `USE_ENHANCED`. It can be overridden in + * [AnalyzeContentRequest][google.cloud.dialogflow.v2.AnalyzeContentRequest] + * and + * [StreamingAnalyzeContentRequest][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest] + * request. If enhanced model variant is specified and an enhanced version of + * the specified model for the language does not exist, then it would emit an + * error. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechModelVariant speech_model_variant = 1; + */ + protected $speech_model_variant = 0; + /** + * Which Speech model to select. Select the + * model best suited to your domain to get best results. If a model is not + * explicitly specified, then Dialogflow auto-selects a model based on other + * parameters in the SpeechToTextConfig and Agent settings. + * If enhanced speech model is enabled for the agent and an enhanced + * version of the specified model for the language does not exist, then the + * speech is recognized using the standard version of the specified model. + * Refer to + * [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) + * for more details. + * If you specify a model, the following models typically have the best + * performance: + * - phone_call (best for Agent Assist and telephony) + * - latest_short (best for Dialogflow non-telephony) + * - command_and_search + * Leave this field unspecified to use + * [Agent Speech + * settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) + * for model selection. + * + * Generated from protobuf field string model = 2; + */ + protected $model = ''; + /** + * List of names of Cloud Speech phrase sets that are used for transcription. + * For phrase set limitations, please refer to [Cloud Speech API quotas and + * limits](https://cloud.google.com/speech-to-text/quotas#content). + * + * Generated from protobuf field repeated string phrase_sets = 4 [(.google.api.resource_reference) = { + */ + private $phrase_sets; + /** + * Audio encoding of the audio content to process. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioEncoding audio_encoding = 6; + */ + protected $audio_encoding = 0; + /** + * Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * + * Generated from protobuf field int32 sample_rate_hertz = 7; + */ + protected $sample_rate_hertz = 0; + /** + * The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 8; + */ + protected $language_code = ''; + /** + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * + * Generated from protobuf field bool enable_word_info = 9; + */ + protected $enable_word_info = false; + /** + * Use timeout based endpointing, interpreting endpointer sensitivity as + * seconds of timeout value. + * + * Generated from protobuf field bool use_timeout_based_endpointing = 11; + */ + protected $use_timeout_based_endpointing = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $speech_model_variant + * The speech model used in speech to text. + * `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as + * `USE_ENHANCED`. It can be overridden in + * [AnalyzeContentRequest][google.cloud.dialogflow.v2.AnalyzeContentRequest] + * and + * [StreamingAnalyzeContentRequest][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest] + * request. If enhanced model variant is specified and an enhanced version of + * the specified model for the language does not exist, then it would emit an + * error. + * @type string $model + * Which Speech model to select. Select the + * model best suited to your domain to get best results. If a model is not + * explicitly specified, then Dialogflow auto-selects a model based on other + * parameters in the SpeechToTextConfig and Agent settings. + * If enhanced speech model is enabled for the agent and an enhanced + * version of the specified model for the language does not exist, then the + * speech is recognized using the standard version of the specified model. + * Refer to + * [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) + * for more details. + * If you specify a model, the following models typically have the best + * performance: + * - phone_call (best for Agent Assist and telephony) + * - latest_short (best for Dialogflow non-telephony) + * - command_and_search + * Leave this field unspecified to use + * [Agent Speech + * settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) + * for model selection. + * @type array|\Google\Protobuf\Internal\RepeatedField $phrase_sets + * List of names of Cloud Speech phrase sets that are used for transcription. + * For phrase set limitations, please refer to [Cloud Speech API quotas and + * limits](https://cloud.google.com/speech-to-text/quotas#content). + * @type int $audio_encoding + * Audio encoding of the audio content to process. + * @type int $sample_rate_hertz + * Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * @type string $language_code + * The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * @type bool $enable_word_info + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * @type bool $use_timeout_based_endpointing + * Use timeout based endpointing, interpreting endpointer sensitivity as + * seconds of timeout value. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * The speech model used in speech to text. + * `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as + * `USE_ENHANCED`. It can be overridden in + * [AnalyzeContentRequest][google.cloud.dialogflow.v2.AnalyzeContentRequest] + * and + * [StreamingAnalyzeContentRequest][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest] + * request. If enhanced model variant is specified and an enhanced version of + * the specified model for the language does not exist, then it would emit an + * error. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechModelVariant speech_model_variant = 1; + * @return int + */ + public function getSpeechModelVariant() + { + return $this->speech_model_variant; + } + + /** + * The speech model used in speech to text. + * `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated as + * `USE_ENHANCED`. It can be overridden in + * [AnalyzeContentRequest][google.cloud.dialogflow.v2.AnalyzeContentRequest] + * and + * [StreamingAnalyzeContentRequest][google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest] + * request. If enhanced model variant is specified and an enhanced version of + * the specified model for the language does not exist, then it would emit an + * error. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SpeechModelVariant speech_model_variant = 1; + * @param int $var + * @return $this + */ + public function setSpeechModelVariant($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SpeechModelVariant::class); + $this->speech_model_variant = $var; + + return $this; + } + + /** + * Which Speech model to select. Select the + * model best suited to your domain to get best results. If a model is not + * explicitly specified, then Dialogflow auto-selects a model based on other + * parameters in the SpeechToTextConfig and Agent settings. + * If enhanced speech model is enabled for the agent and an enhanced + * version of the specified model for the language does not exist, then the + * speech is recognized using the standard version of the specified model. + * Refer to + * [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) + * for more details. + * If you specify a model, the following models typically have the best + * performance: + * - phone_call (best for Agent Assist and telephony) + * - latest_short (best for Dialogflow non-telephony) + * - command_and_search + * Leave this field unspecified to use + * [Agent Speech + * settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) + * for model selection. + * + * Generated from protobuf field string model = 2; + * @return string + */ + public function getModel() + { + return $this->model; + } + + /** + * Which Speech model to select. Select the + * model best suited to your domain to get best results. If a model is not + * explicitly specified, then Dialogflow auto-selects a model based on other + * parameters in the SpeechToTextConfig and Agent settings. + * If enhanced speech model is enabled for the agent and an enhanced + * version of the specified model for the language does not exist, then the + * speech is recognized using the standard version of the specified model. + * Refer to + * [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) + * for more details. + * If you specify a model, the following models typically have the best + * performance: + * - phone_call (best for Agent Assist and telephony) + * - latest_short (best for Dialogflow non-telephony) + * - command_and_search + * Leave this field unspecified to use + * [Agent Speech + * settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) + * for model selection. + * + * Generated from protobuf field string model = 2; + * @param string $var + * @return $this + */ + public function setModel($var) + { + GPBUtil::checkString($var, True); + $this->model = $var; + + return $this; + } + + /** + * List of names of Cloud Speech phrase sets that are used for transcription. + * For phrase set limitations, please refer to [Cloud Speech API quotas and + * limits](https://cloud.google.com/speech-to-text/quotas#content). + * + * Generated from protobuf field repeated string phrase_sets = 4 [(.google.api.resource_reference) = { + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPhraseSets() + { + return $this->phrase_sets; + } + + /** + * List of names of Cloud Speech phrase sets that are used for transcription. + * For phrase set limitations, please refer to [Cloud Speech API quotas and + * limits](https://cloud.google.com/speech-to-text/quotas#content). + * + * Generated from protobuf field repeated string phrase_sets = 4 [(.google.api.resource_reference) = { + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPhraseSets($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->phrase_sets = $arr; + + return $this; + } + + /** + * Audio encoding of the audio content to process. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioEncoding audio_encoding = 6; + * @return int + */ + public function getAudioEncoding() + { + return $this->audio_encoding; + } + + /** + * Audio encoding of the audio content to process. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AudioEncoding audio_encoding = 6; + * @param int $var + * @return $this + */ + public function setAudioEncoding($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\AudioEncoding::class); + $this->audio_encoding = $var; + + return $this; + } + + /** + * Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * + * Generated from protobuf field int32 sample_rate_hertz = 7; + * @return int + */ + public function getSampleRateHertz() + { + return $this->sample_rate_hertz; + } + + /** + * Sample rate (in Hertz) of the audio content sent in the query. + * Refer to [Cloud Speech API + * documentation](https://cloud.google.com/speech-to-text/docs/basics) for + * more details. + * + * Generated from protobuf field int32 sample_rate_hertz = 7; + * @param int $var + * @return $this + */ + public function setSampleRateHertz($var) + { + GPBUtil::checkInt32($var); + $this->sample_rate_hertz = $var; + + return $this; + } + + /** + * The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 8; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * The language of the supplied audio. Dialogflow does not do + * translations. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 8; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * + * Generated from protobuf field bool enable_word_info = 9; + * @return bool + */ + public function getEnableWordInfo() + { + return $this->enable_word_info; + } + + /** + * If `true`, Dialogflow returns + * [SpeechWordInfo][google.cloud.dialogflow.v2.SpeechWordInfo] in + * [StreamingRecognitionResult][google.cloud.dialogflow.v2.StreamingRecognitionResult] + * with information about the recognized speech words, e.g. start and end time + * offsets. If false or unspecified, Speech doesn't return any word-level + * information. + * + * Generated from protobuf field bool enable_word_info = 9; + * @param bool $var + * @return $this + */ + public function setEnableWordInfo($var) + { + GPBUtil::checkBool($var); + $this->enable_word_info = $var; + + return $this; + } + + /** + * Use timeout based endpointing, interpreting endpointer sensitivity as + * seconds of timeout value. + * + * Generated from protobuf field bool use_timeout_based_endpointing = 11; + * @return bool + */ + public function getUseTimeoutBasedEndpointing() + { + return $this->use_timeout_based_endpointing; + } + + /** + * Use timeout based endpointing, interpreting endpointer sensitivity as + * seconds of timeout value. + * + * Generated from protobuf field bool use_timeout_based_endpointing = 11; + * @param bool $var + * @return $this + */ + public function setUseTimeoutBasedEndpointing($var) + { + GPBUtil::checkBool($var); + $this->use_timeout_based_endpointing = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SpeechWordInfo.php b/vendor/google/cloud-dialogflow/src/V2/SpeechWordInfo.php new file mode 100644 index 0000000..6070b60 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SpeechWordInfo.php @@ -0,0 +1,225 @@ +google.cloud.dialogflow.v2.SpeechWordInfo + */ +class SpeechWordInfo extends \Google\Protobuf\Internal\Message +{ + /** + * The word this info is for. + * + * Generated from protobuf field string word = 3; + */ + protected $word = ''; + /** + * Time offset relative to the beginning of the audio that corresponds to the + * start of the spoken word. This is an experimental feature and the accuracy + * of the time offset can vary. + * + * Generated from protobuf field .google.protobuf.Duration start_offset = 1; + */ + protected $start_offset = null; + /** + * Time offset relative to the beginning of the audio that corresponds to the + * end of the spoken word. This is an experimental feature and the accuracy of + * the time offset can vary. + * + * Generated from protobuf field .google.protobuf.Duration end_offset = 2; + */ + protected $end_offset = null; + /** + * The Speech confidence between 0.0 and 1.0 for this word. A higher number + * indicates an estimated greater likelihood that the recognized word is + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be fully stable over time for the same + * audio input. Users should also not rely on it to always be provided. + * + * Generated from protobuf field float confidence = 4; + */ + protected $confidence = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $word + * The word this info is for. + * @type \Google\Protobuf\Duration $start_offset + * Time offset relative to the beginning of the audio that corresponds to the + * start of the spoken word. This is an experimental feature and the accuracy + * of the time offset can vary. + * @type \Google\Protobuf\Duration $end_offset + * Time offset relative to the beginning of the audio that corresponds to the + * end of the spoken word. This is an experimental feature and the accuracy of + * the time offset can vary. + * @type float $confidence + * The Speech confidence between 0.0 and 1.0 for this word. A higher number + * indicates an estimated greater likelihood that the recognized word is + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be fully stable over time for the same + * audio input. Users should also not rely on it to always be provided. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * The word this info is for. + * + * Generated from protobuf field string word = 3; + * @return string + */ + public function getWord() + { + return $this->word; + } + + /** + * The word this info is for. + * + * Generated from protobuf field string word = 3; + * @param string $var + * @return $this + */ + public function setWord($var) + { + GPBUtil::checkString($var, True); + $this->word = $var; + + return $this; + } + + /** + * Time offset relative to the beginning of the audio that corresponds to the + * start of the spoken word. This is an experimental feature and the accuracy + * of the time offset can vary. + * + * Generated from protobuf field .google.protobuf.Duration start_offset = 1; + * @return \Google\Protobuf\Duration|null + */ + public function getStartOffset() + { + return $this->start_offset; + } + + public function hasStartOffset() + { + return isset($this->start_offset); + } + + public function clearStartOffset() + { + unset($this->start_offset); + } + + /** + * Time offset relative to the beginning of the audio that corresponds to the + * start of the spoken word. This is an experimental feature and the accuracy + * of the time offset can vary. + * + * Generated from protobuf field .google.protobuf.Duration start_offset = 1; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setStartOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->start_offset = $var; + + return $this; + } + + /** + * Time offset relative to the beginning of the audio that corresponds to the + * end of the spoken word. This is an experimental feature and the accuracy of + * the time offset can vary. + * + * Generated from protobuf field .google.protobuf.Duration end_offset = 2; + * @return \Google\Protobuf\Duration|null + */ + public function getEndOffset() + { + return $this->end_offset; + } + + public function hasEndOffset() + { + return isset($this->end_offset); + } + + public function clearEndOffset() + { + unset($this->end_offset); + } + + /** + * Time offset relative to the beginning of the audio that corresponds to the + * end of the spoken word. This is an experimental feature and the accuracy of + * the time offset can vary. + * + * Generated from protobuf field .google.protobuf.Duration end_offset = 2; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setEndOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->end_offset = $var; + + return $this; + } + + /** + * The Speech confidence between 0.0 and 1.0 for this word. A higher number + * indicates an estimated greater likelihood that the recognized word is + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be fully stable over time for the same + * audio input. Users should also not rely on it to always be provided. + * + * Generated from protobuf field float confidence = 4; + * @return float + */ + public function getConfidence() + { + return $this->confidence; + } + + /** + * The Speech confidence between 0.0 and 1.0 for this word. A higher number + * indicates an estimated greater likelihood that the recognized word is + * correct. The default of 0.0 is a sentinel value indicating that confidence + * was not set. + * This field is not guaranteed to be fully stable over time for the same + * audio input. Users should also not rely on it to always be provided. + * + * Generated from protobuf field float confidence = 4; + * @param float $var + * @return $this + */ + public function setConfidence($var) + { + GPBUtil::checkFloat($var); + $this->confidence = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SsmlVoiceGender.php b/vendor/google/cloud-dialogflow/src/V2/SsmlVoiceGender.php new file mode 100644 index 0000000..2508c1b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SsmlVoiceGender.php @@ -0,0 +1,70 @@ +google.cloud.dialogflow.v2.SsmlVoiceGender + */ +class SsmlVoiceGender +{ + /** + * An unspecified gender, which means that the client doesn't care which + * gender the selected voice will have. + * + * Generated from protobuf enum SSML_VOICE_GENDER_UNSPECIFIED = 0; + */ + const SSML_VOICE_GENDER_UNSPECIFIED = 0; + /** + * A male voice. + * + * Generated from protobuf enum SSML_VOICE_GENDER_MALE = 1; + */ + const SSML_VOICE_GENDER_MALE = 1; + /** + * A female voice. + * + * Generated from protobuf enum SSML_VOICE_GENDER_FEMALE = 2; + */ + const SSML_VOICE_GENDER_FEMALE = 2; + /** + * A gender-neutral voice. + * + * Generated from protobuf enum SSML_VOICE_GENDER_NEUTRAL = 3; + */ + const SSML_VOICE_GENDER_NEUTRAL = 3; + + private static $valueToName = [ + self::SSML_VOICE_GENDER_UNSPECIFIED => 'SSML_VOICE_GENDER_UNSPECIFIED', + self::SSML_VOICE_GENDER_MALE => 'SSML_VOICE_GENDER_MALE', + self::SSML_VOICE_GENDER_FEMALE => 'SSML_VOICE_GENDER_FEMALE', + self::SSML_VOICE_GENDER_NEUTRAL => 'SSML_VOICE_GENDER_NEUTRAL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentRequest.php b/vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentRequest.php new file mode 100644 index 0000000..8096f68 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentRequest.php @@ -0,0 +1,697 @@ +google.cloud.dialogflow.v2.StreamingAnalyzeContentRequest + */ +class StreamingAnalyzeContentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string participant = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $participant = ''; + /** + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * StreamingAnalyzeContent. If this configuration is not supplied, speech + * synthesis is disabled. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig reply_audio_config = 4; + */ + protected $reply_audio_config = null; + /** + * Parameters for a Dialogflow virtual-agent query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 7; + */ + protected $query_params = null; + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 8; + */ + protected $assist_query_params = null; + /** + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * + * Generated from protobuf field .google.protobuf.Struct cx_parameters = 13; + */ + protected $cx_parameters = null; + /** + * Optional. Enable full bidirectional streaming. You can keep streaming the + * audio until timeout, and there's no need to half close the stream to get + * the response. + * Restrictions: + * - Timeout: 3 mins. + * - Audio Encoding: only supports + * [AudioEncoding.AUDIO_ENCODING_LINEAR_16][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_LINEAR_16] + * and + * [AudioEncoding.AUDIO_ENCODING_MULAW][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_MULAW] + * - Lifecycle: conversation should be in `Assist Stage`, go to + * [Conversations.CreateConversation][google.cloud.dialogflow.v2.Conversations.CreateConversation] + * for more information. + * InvalidArgument Error will be returned if the one of restriction checks + * failed. + * You can find more details in + * https://cloud.google.com/agent-assist/docs/extended-streaming + * + * Generated from protobuf field bool enable_extended_streaming = 11 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_extended_streaming = false; + /** + * Optional. Enable partial responses from Dialogflow CX agent. If this flag + * is not enabled, response stream still contains only one final response even + * if some `Fulfillment`s in Dialogflow CX agent have been configured to + * return partial responses. + * + * Generated from protobuf field bool enable_partial_automated_agent_reply = 12 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_partial_automated_agent_reply = false; + /** + * If true, `StreamingAnalyzeContentResponse.debugging_info` will get + * populated. + * + * Generated from protobuf field bool enable_debugging_info = 19; + */ + protected $enable_debugging_info = false; + protected $config; + protected $input; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $participant + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * @type \Google\Cloud\Dialogflow\V2\InputAudioConfig $audio_config + * Instructs the speech recognizer how to process the speech audio. + * @type \Google\Cloud\Dialogflow\V2\InputTextConfig $text_config + * The natural language text to be processed. + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $reply_audio_config + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * StreamingAnalyzeContent. If this configuration is not supplied, speech + * synthesis is disabled. + * @type string $input_audio + * The input audio content to be recognized. Must be sent if `audio_config` + * is set in the first message. The complete audio over all streaming + * messages must not exceed 1 minute. + * @type string $input_text + * The UTF-8 encoded natural language text to be processed. Must be sent if + * `text_config` is set in the first message. Text length must not exceed + * 256 bytes for virtual agent interactions. The `input_text` field can be + * only sent once, and would cancel the speech recognition if any ongoing. + * @type \Google\Cloud\Dialogflow\V2\TelephonyDtmfEvents $input_dtmf + * The DTMF digits used to invoke intent and fill in parameter value. + * This input is ignored if the previous response indicated that DTMF input + * is not accepted. + * @type \Google\Cloud\Dialogflow\V2\QueryParameters $query_params + * Parameters for a Dialogflow virtual-agent query. + * @type \Google\Cloud\Dialogflow\V2\AssistQueryParameters $assist_query_params + * Parameters for a human assist query. + * @type \Google\Protobuf\Struct $cx_parameters + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * @type bool $enable_extended_streaming + * Optional. Enable full bidirectional streaming. You can keep streaming the + * audio until timeout, and there's no need to half close the stream to get + * the response. + * Restrictions: + * - Timeout: 3 mins. + * - Audio Encoding: only supports + * [AudioEncoding.AUDIO_ENCODING_LINEAR_16][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_LINEAR_16] + * and + * [AudioEncoding.AUDIO_ENCODING_MULAW][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_MULAW] + * - Lifecycle: conversation should be in `Assist Stage`, go to + * [Conversations.CreateConversation][google.cloud.dialogflow.v2.Conversations.CreateConversation] + * for more information. + * InvalidArgument Error will be returned if the one of restriction checks + * failed. + * You can find more details in + * https://cloud.google.com/agent-assist/docs/extended-streaming + * @type bool $enable_partial_automated_agent_reply + * Optional. Enable partial responses from Dialogflow CX agent. If this flag + * is not enabled, response stream still contains only one final response even + * if some `Fulfillment`s in Dialogflow CX agent have been configured to + * return partial responses. + * @type bool $enable_debugging_info + * If true, `StreamingAnalyzeContentResponse.debugging_info` will get + * populated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string participant = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParticipant() + { + return $this->participant; + } + + /** + * Required. The name of the participant this text comes from. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string participant = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParticipant($var) + { + GPBUtil::checkString($var, True); + $this->participant = $var; + + return $this; + } + + /** + * Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig audio_config = 2; + * @return \Google\Cloud\Dialogflow\V2\InputAudioConfig|null + */ + public function getAudioConfig() + { + return $this->readOneof(2); + } + + public function hasAudioConfig() + { + return $this->hasOneof(2); + } + + /** + * Instructs the speech recognizer how to process the speech audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputAudioConfig audio_config = 2; + * @param \Google\Cloud\Dialogflow\V2\InputAudioConfig $var + * @return $this + */ + public function setAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InputAudioConfig::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The natural language text to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputTextConfig text_config = 3; + * @return \Google\Cloud\Dialogflow\V2\InputTextConfig|null + */ + public function getTextConfig() + { + return $this->readOneof(3); + } + + public function hasTextConfig() + { + return $this->hasOneof(3); + } + + /** + * The natural language text to be processed. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.InputTextConfig text_config = 3; + * @param \Google\Cloud\Dialogflow\V2\InputTextConfig $var + * @return $this + */ + public function setTextConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\InputTextConfig::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * StreamingAnalyzeContent. If this configuration is not supplied, speech + * synthesis is disabled. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig reply_audio_config = 4; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getReplyAudioConfig() + { + return $this->reply_audio_config; + } + + public function hasReplyAudioConfig() + { + return isset($this->reply_audio_config); + } + + public function clearReplyAudioConfig() + { + unset($this->reply_audio_config); + } + + /** + * Speech synthesis configuration. + * The speech synthesis settings for a virtual agent that may be configured + * for the associated conversation profile are not used when calling + * StreamingAnalyzeContent. If this configuration is not supplied, speech + * synthesis is disabled. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig reply_audio_config = 4; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setReplyAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->reply_audio_config = $var; + + return $this; + } + + /** + * The input audio content to be recognized. Must be sent if `audio_config` + * is set in the first message. The complete audio over all streaming + * messages must not exceed 1 minute. + * + * Generated from protobuf field bytes input_audio = 5; + * @return string + */ + public function getInputAudio() + { + return $this->readOneof(5); + } + + public function hasInputAudio() + { + return $this->hasOneof(5); + } + + /** + * The input audio content to be recognized. Must be sent if `audio_config` + * is set in the first message. The complete audio over all streaming + * messages must not exceed 1 minute. + * + * Generated from protobuf field bytes input_audio = 5; + * @param string $var + * @return $this + */ + public function setInputAudio($var) + { + GPBUtil::checkString($var, False); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * The UTF-8 encoded natural language text to be processed. Must be sent if + * `text_config` is set in the first message. Text length must not exceed + * 256 bytes for virtual agent interactions. The `input_text` field can be + * only sent once, and would cancel the speech recognition if any ongoing. + * + * Generated from protobuf field string input_text = 6; + * @return string + */ + public function getInputText() + { + return $this->readOneof(6); + } + + public function hasInputText() + { + return $this->hasOneof(6); + } + + /** + * The UTF-8 encoded natural language text to be processed. Must be sent if + * `text_config` is set in the first message. Text length must not exceed + * 256 bytes for virtual agent interactions. The `input_text` field can be + * only sent once, and would cancel the speech recognition if any ongoing. + * + * Generated from protobuf field string input_text = 6; + * @param string $var + * @return $this + */ + public function setInputText($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(6, $var); + + return $this; + } + + /** + * The DTMF digits used to invoke intent and fill in parameter value. + * This input is ignored if the previous response indicated that DTMF input + * is not accepted. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TelephonyDtmfEvents input_dtmf = 9; + * @return \Google\Cloud\Dialogflow\V2\TelephonyDtmfEvents|null + */ + public function getInputDtmf() + { + return $this->readOneof(9); + } + + public function hasInputDtmf() + { + return $this->hasOneof(9); + } + + /** + * The DTMF digits used to invoke intent and fill in parameter value. + * This input is ignored if the previous response indicated that DTMF input + * is not accepted. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TelephonyDtmfEvents input_dtmf = 9; + * @param \Google\Cloud\Dialogflow\V2\TelephonyDtmfEvents $var + * @return $this + */ + public function setInputDtmf($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\TelephonyDtmfEvents::class); + $this->writeOneof(9, $var); + + return $this; + } + + /** + * Parameters for a Dialogflow virtual-agent query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 7; + * @return \Google\Cloud\Dialogflow\V2\QueryParameters|null + */ + public function getQueryParams() + { + return $this->query_params; + } + + public function hasQueryParams() + { + return isset($this->query_params); + } + + public function clearQueryParams() + { + unset($this->query_params); + } + + /** + * Parameters for a Dialogflow virtual-agent query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 7; + * @param \Google\Cloud\Dialogflow\V2\QueryParameters $var + * @return $this + */ + public function setQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryParameters::class); + $this->query_params = $var; + + return $this; + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 8; + * @return \Google\Cloud\Dialogflow\V2\AssistQueryParameters|null + */ + public function getAssistQueryParams() + { + return $this->assist_query_params; + } + + public function hasAssistQueryParams() + { + return isset($this->assist_query_params); + } + + public function clearAssistQueryParams() + { + unset($this->assist_query_params); + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 8; + * @param \Google\Cloud\Dialogflow\V2\AssistQueryParameters $var + * @return $this + */ + public function setAssistQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AssistQueryParameters::class); + $this->assist_query_params = $var; + + return $this; + } + + /** + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * + * Generated from protobuf field .google.protobuf.Struct cx_parameters = 13; + * @return \Google\Protobuf\Struct|null + */ + public function getCxParameters() + { + return $this->cx_parameters; + } + + public function hasCxParameters() + { + return isset($this->cx_parameters); + } + + public function clearCxParameters() + { + unset($this->cx_parameters); + } + + /** + * Additional parameters to be put into Dialogflow CX session parameters. To + * remove a parameter from the session, clients should explicitly set the + * parameter value to null. + * Note: this field should only be used if you are connecting to a Dialogflow + * CX agent. + * + * Generated from protobuf field .google.protobuf.Struct cx_parameters = 13; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setCxParameters($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->cx_parameters = $var; + + return $this; + } + + /** + * Optional. Enable full bidirectional streaming. You can keep streaming the + * audio until timeout, and there's no need to half close the stream to get + * the response. + * Restrictions: + * - Timeout: 3 mins. + * - Audio Encoding: only supports + * [AudioEncoding.AUDIO_ENCODING_LINEAR_16][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_LINEAR_16] + * and + * [AudioEncoding.AUDIO_ENCODING_MULAW][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_MULAW] + * - Lifecycle: conversation should be in `Assist Stage`, go to + * [Conversations.CreateConversation][google.cloud.dialogflow.v2.Conversations.CreateConversation] + * for more information. + * InvalidArgument Error will be returned if the one of restriction checks + * failed. + * You can find more details in + * https://cloud.google.com/agent-assist/docs/extended-streaming + * + * Generated from protobuf field bool enable_extended_streaming = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableExtendedStreaming() + { + return $this->enable_extended_streaming; + } + + /** + * Optional. Enable full bidirectional streaming. You can keep streaming the + * audio until timeout, and there's no need to half close the stream to get + * the response. + * Restrictions: + * - Timeout: 3 mins. + * - Audio Encoding: only supports + * [AudioEncoding.AUDIO_ENCODING_LINEAR_16][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_LINEAR_16] + * and + * [AudioEncoding.AUDIO_ENCODING_MULAW][google.cloud.dialogflow.v2.AudioEncoding.AUDIO_ENCODING_MULAW] + * - Lifecycle: conversation should be in `Assist Stage`, go to + * [Conversations.CreateConversation][google.cloud.dialogflow.v2.Conversations.CreateConversation] + * for more information. + * InvalidArgument Error will be returned if the one of restriction checks + * failed. + * You can find more details in + * https://cloud.google.com/agent-assist/docs/extended-streaming + * + * Generated from protobuf field bool enable_extended_streaming = 11 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableExtendedStreaming($var) + { + GPBUtil::checkBool($var); + $this->enable_extended_streaming = $var; + + return $this; + } + + /** + * Optional. Enable partial responses from Dialogflow CX agent. If this flag + * is not enabled, response stream still contains only one final response even + * if some `Fulfillment`s in Dialogflow CX agent have been configured to + * return partial responses. + * + * Generated from protobuf field bool enable_partial_automated_agent_reply = 12 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnablePartialAutomatedAgentReply() + { + return $this->enable_partial_automated_agent_reply; + } + + /** + * Optional. Enable partial responses from Dialogflow CX agent. If this flag + * is not enabled, response stream still contains only one final response even + * if some `Fulfillment`s in Dialogflow CX agent have been configured to + * return partial responses. + * + * Generated from protobuf field bool enable_partial_automated_agent_reply = 12 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnablePartialAutomatedAgentReply($var) + { + GPBUtil::checkBool($var); + $this->enable_partial_automated_agent_reply = $var; + + return $this; + } + + /** + * If true, `StreamingAnalyzeContentResponse.debugging_info` will get + * populated. + * + * Generated from protobuf field bool enable_debugging_info = 19; + * @return bool + */ + public function getEnableDebuggingInfo() + { + return $this->enable_debugging_info; + } + + /** + * If true, `StreamingAnalyzeContentResponse.debugging_info` will get + * populated. + * + * Generated from protobuf field bool enable_debugging_info = 19; + * @param bool $var + * @return $this + */ + public function setEnableDebuggingInfo($var) + { + GPBUtil::checkBool($var); + $this->enable_debugging_info = $var; + + return $this; + } + + /** + * @return string + */ + public function getConfig() + { + return $this->whichOneof("config"); + } + + /** + * @return string + */ + public function getInput() + { + return $this->whichOneof("input"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentResponse.php b/vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentResponse.php new file mode 100644 index 0000000..59c3aa8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/StreamingAnalyzeContentResponse.php @@ -0,0 +1,534 @@ += 1) messages contain + * `human_agent_suggestion_results`, `end_user_suggestion_results` or + * `message`. + * + * Generated from protobuf message google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse + */ +class StreamingAnalyzeContentResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The result of speech recognition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult recognition_result = 1; + */ + protected $recognition_result = null; + /** + * The output text content. + * This field is set if an automated agent responded with a text for the user. + * + * Generated from protobuf field string reply_text = 2; + */ + protected $reply_text = ''; + /** + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - The `reply_audio_config` field is specified in the request. + * - The automated agent, which this output comes from, responded with audio. + * In such case, the `reply_audio.config` field contains settings used to + * synthesize the speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudio reply_audio = 3; + */ + protected $reply_audio = null; + /** + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.reply_audio] + * instead. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply automated_agent_reply = 4; + */ + protected $automated_agent_reply = null; + /** + * Message analyzed by CCAI. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message message = 6; + */ + protected $message = null; + /** + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult human_agent_suggestion_results = 7; + */ + private $human_agent_suggestion_results; + /** + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult end_user_suggestion_results = 8; + */ + private $end_user_suggestion_results; + /** + * Indicates the parameters of DTMF. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DtmfParameters dtmf_parameters = 10; + */ + protected $dtmf_parameters = null; + /** + * Debugging info that would get populated when + * `StreamingAnalyzeContentRequest.enable_debugging_info` is set to true. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CloudConversationDebuggingInfo debugging_info = 11; + */ + protected $debugging_info = null; + /** + * The name of the actual Cloud speech model used for speech recognition. + * + * Generated from protobuf field string speech_model = 13; + */ + protected $speech_model = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult $recognition_result + * The result of speech recognition. + * @type string $reply_text + * The output text content. + * This field is set if an automated agent responded with a text for the user. + * @type \Google\Cloud\Dialogflow\V2\OutputAudio $reply_audio + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - The `reply_audio_config` field is specified in the request. + * - The automated agent, which this output comes from, responded with audio. + * In such case, the `reply_audio.config` field contains settings used to + * synthesize the speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * @type \Google\Cloud\Dialogflow\V2\AutomatedAgentReply $automated_agent_reply + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.reply_audio] + * instead. + * @type \Google\Cloud\Dialogflow\V2\Message $message + * Message analyzed by CCAI. + * @type array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $human_agent_suggestion_results + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * @type array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $end_user_suggestion_results + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * @type \Google\Cloud\Dialogflow\V2\DtmfParameters $dtmf_parameters + * Indicates the parameters of DTMF. + * @type \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo $debugging_info + * Debugging info that would get populated when + * `StreamingAnalyzeContentRequest.enable_debugging_info` is set to true. + * @type string $speech_model + * The name of the actual Cloud speech model used for speech recognition. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * The result of speech recognition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult recognition_result = 1; + * @return \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult|null + */ + public function getRecognitionResult() + { + return $this->recognition_result; + } + + public function hasRecognitionResult() + { + return isset($this->recognition_result); + } + + public function clearRecognitionResult() + { + unset($this->recognition_result); + } + + /** + * The result of speech recognition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult recognition_result = 1; + * @param \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult $var + * @return $this + */ + public function setRecognitionResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult::class); + $this->recognition_result = $var; + + return $this; + } + + /** + * The output text content. + * This field is set if an automated agent responded with a text for the user. + * + * Generated from protobuf field string reply_text = 2; + * @return string + */ + public function getReplyText() + { + return $this->reply_text; + } + + /** + * The output text content. + * This field is set if an automated agent responded with a text for the user. + * + * Generated from protobuf field string reply_text = 2; + * @param string $var + * @return $this + */ + public function setReplyText($var) + { + GPBUtil::checkString($var, True); + $this->reply_text = $var; + + return $this; + } + + /** + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - The `reply_audio_config` field is specified in the request. + * - The automated agent, which this output comes from, responded with audio. + * In such case, the `reply_audio.config` field contains settings used to + * synthesize the speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudio reply_audio = 3; + * @return \Google\Cloud\Dialogflow\V2\OutputAudio|null + */ + public function getReplyAudio() + { + return $this->reply_audio; + } + + public function hasReplyAudio() + { + return isset($this->reply_audio); + } + + public function clearReplyAudio() + { + unset($this->reply_audio); + } + + /** + * The audio data bytes encoded as specified in the request. + * This field is set if: + * - The `reply_audio_config` field is specified in the request. + * - The automated agent, which this output comes from, responded with audio. + * In such case, the `reply_audio.config` field contains settings used to + * synthesize the speech. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudio reply_audio = 3; + * @param \Google\Cloud\Dialogflow\V2\OutputAudio $var + * @return $this + */ + public function setReplyAudio($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudio::class); + $this->reply_audio = $var; + + return $this; + } + + /** + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.reply_audio] + * instead. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply automated_agent_reply = 4; + * @return \Google\Cloud\Dialogflow\V2\AutomatedAgentReply|null + */ + public function getAutomatedAgentReply() + { + return $this->automated_agent_reply; + } + + public function hasAutomatedAgentReply() + { + return isset($this->automated_agent_reply); + } + + public function clearAutomatedAgentReply() + { + unset($this->automated_agent_reply); + } + + /** + * Note that in [AutomatedAgentReply.DetectIntentResponse][], + * [Sessions.DetectIntentResponse.output_audio][] + * and [Sessions.DetectIntentResponse.output_audio_config][] + * are always empty, use + * [reply_audio][google.cloud.dialogflow.v2.StreamingAnalyzeContentResponse.reply_audio] + * instead. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AutomatedAgentReply automated_agent_reply = 4; + * @param \Google\Cloud\Dialogflow\V2\AutomatedAgentReply $var + * @return $this + */ + public function setAutomatedAgentReply($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AutomatedAgentReply::class); + $this->automated_agent_reply = $var; + + return $this; + } + + /** + * Message analyzed by CCAI. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message message = 6; + * @return \Google\Cloud\Dialogflow\V2\Message|null + */ + public function getMessage() + { + return $this->message; + } + + public function hasMessage() + { + return isset($this->message); + } + + public function clearMessage() + { + unset($this->message); + } + + /** + * Message analyzed by CCAI. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Message message = 6; + * @param \Google\Cloud\Dialogflow\V2\Message $var + * @return $this + */ + public function setMessage($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Message::class); + $this->message = $var; + + return $this; + } + + /** + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult human_agent_suggestion_results = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getHumanAgentSuggestionResults() + { + return $this->human_agent_suggestion_results; + } + + /** + * The suggestions for most recent human agent. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.human_agent_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.human_agent_suggestion_config]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult human_agent_suggestion_results = 7; + * @param array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setHumanAgentSuggestionResults($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SuggestionResult::class); + $this->human_agent_suggestion_results = $arr; + + return $this; + } + + /** + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult end_user_suggestion_results = 8; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEndUserSuggestionResults() + { + return $this->end_user_suggestion_results; + } + + /** + * The suggestions for end user. The order is the same as + * [HumanAgentAssistantConfig.SuggestionConfig.feature_configs][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.SuggestionConfig.feature_configs] + * of + * [HumanAgentAssistantConfig.end_user_suggestion_config][google.cloud.dialogflow.v2.HumanAgentAssistantConfig.end_user_suggestion_config]. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SuggestionResult end_user_suggestion_results = 8; + * @param array<\Google\Cloud\Dialogflow\V2\SuggestionResult>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEndUserSuggestionResults($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SuggestionResult::class); + $this->end_user_suggestion_results = $arr; + + return $this; + } + + /** + * Indicates the parameters of DTMF. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DtmfParameters dtmf_parameters = 10; + * @return \Google\Cloud\Dialogflow\V2\DtmfParameters|null + */ + public function getDtmfParameters() + { + return $this->dtmf_parameters; + } + + public function hasDtmfParameters() + { + return isset($this->dtmf_parameters); + } + + public function clearDtmfParameters() + { + unset($this->dtmf_parameters); + } + + /** + * Indicates the parameters of DTMF. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.DtmfParameters dtmf_parameters = 10; + * @param \Google\Cloud\Dialogflow\V2\DtmfParameters $var + * @return $this + */ + public function setDtmfParameters($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\DtmfParameters::class); + $this->dtmf_parameters = $var; + + return $this; + } + + /** + * Debugging info that would get populated when + * `StreamingAnalyzeContentRequest.enable_debugging_info` is set to true. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CloudConversationDebuggingInfo debugging_info = 11; + * @return \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo|null + */ + public function getDebuggingInfo() + { + return $this->debugging_info; + } + + public function hasDebuggingInfo() + { + return isset($this->debugging_info); + } + + public function clearDebuggingInfo() + { + unset($this->debugging_info); + } + + /** + * Debugging info that would get populated when + * `StreamingAnalyzeContentRequest.enable_debugging_info` is set to true. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CloudConversationDebuggingInfo debugging_info = 11; + * @param \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo $var + * @return $this + */ + public function setDebuggingInfo($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo::class); + $this->debugging_info = $var; + + return $this; + } + + /** + * The name of the actual Cloud speech model used for speech recognition. + * + * Generated from protobuf field string speech_model = 13; + * @return string + */ + public function getSpeechModel() + { + return $this->speech_model; + } + + /** + * The name of the actual Cloud speech model used for speech recognition. + * + * Generated from protobuf field string speech_model = 13; + * @param string $var + * @return $this + */ + public function setSpeechModel($var) + { + GPBUtil::checkString($var, True); + $this->speech_model = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentRequest.php new file mode 100644 index 0000000..ab8b801 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentRequest.php @@ -0,0 +1,523 @@ +google.cloud.dialogflow.v2.StreamingDetectIntentRequest + */ +class StreamingDetectIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the session the query is sent to. + * Format of the session name: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment. If `User ID` is not specified, we are using + * "-". It's up to the API caller to choose an appropriate `Session ID` and + * `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * Generated from protobuf field string session = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $session = ''; + /** + * The parameters of this query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 2; + */ + protected $query_params = null; + /** + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryInput query_input = 3 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $query_input = null; + /** + * Please use + * [InputAudioConfig.single_utterance][google.cloud.dialogflow.v2.InputAudioConfig.single_utterance] + * instead. If `false` (default), recognition does not cease until the client + * closes the stream. If `true`, the recognizer will detect a single spoken + * utterance in input audio. Recognition ceases when it detects the audio's + * voice has stopped or paused. In this case, once a detected intent is + * received, the client should close the stream and start a new request with a + * new stream as needed. This setting is ignored when `query_input` is a piece + * of text or an event. + * + * Generated from protobuf field bool single_utterance = 4 [deprecated = true]; + * @deprecated + */ + protected $single_utterance = false; + /** + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 5; + */ + protected $output_audio_config = null; + /** + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * + * Generated from protobuf field .google.protobuf.FieldMask output_audio_config_mask = 7; + */ + protected $output_audio_config_mask = null; + /** + * The input audio content to be recognized. Must be sent if + * `query_input` was set to a streaming input audio config. The complete audio + * over all streaming messages must not exceed 1 minute. + * + * Generated from protobuf field bytes input_audio = 6; + */ + protected $input_audio = ''; + /** + * if true, `StreamingDetectIntentResponse.debugging_info` will get populated. + * + * Generated from protobuf field bool enable_debugging_info = 8; + */ + protected $enable_debugging_info = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $session + * Required. The name of the session the query is sent to. + * Format of the session name: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment. If `User ID` is not specified, we are using + * "-". It's up to the API caller to choose an appropriate `Session ID` and + * `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * @type \Google\Cloud\Dialogflow\V2\QueryParameters $query_params + * The parameters of this query. + * @type \Google\Cloud\Dialogflow\V2\QueryInput $query_input + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * @type bool $single_utterance + * Please use + * [InputAudioConfig.single_utterance][google.cloud.dialogflow.v2.InputAudioConfig.single_utterance] + * instead. If `false` (default), recognition does not cease until the client + * closes the stream. If `true`, the recognizer will detect a single spoken + * utterance in input audio. Recognition ceases when it detects the audio's + * voice has stopped or paused. In this case, once a detected intent is + * received, the client should close the stream and start a new request with a + * new stream as needed. This setting is ignored when `query_input` is a piece + * of text or an event. + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $output_audio_config + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * @type \Google\Protobuf\FieldMask $output_audio_config_mask + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * @type string $input_audio + * The input audio content to be recognized. Must be sent if + * `query_input` was set to a streaming input audio config. The complete audio + * over all streaming messages must not exceed 1 minute. + * @type bool $enable_debugging_info + * if true, `StreamingDetectIntentResponse.debugging_info` will get populated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the session the query is sent to. + * Format of the session name: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment. If `User ID` is not specified, we are using + * "-". It's up to the API caller to choose an appropriate `Session ID` and + * `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * Generated from protobuf field string session = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getSession() + { + return $this->session; + } + + /** + * Required. The name of the session the query is sent to. + * Format of the session name: + * `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume + * default 'draft' environment. If `User ID` is not specified, we are using + * "-". It's up to the API caller to choose an appropriate `Session ID` and + * `User Id`. They can be a random number or some type of user and session + * identifiers (preferably hashed). The length of the `Session ID` and + * `User ID` must not exceed 36 characters. + * For more information, see the [API interactions + * guide](https://cloud.google.com/dialogflow/docs/api-overview). + * Note: Always use agent versions for production traffic. + * See [Versions and + * environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). + * + * Generated from protobuf field string session = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setSession($var) + { + GPBUtil::checkString($var, True); + $this->session = $var; + + return $this; + } + + /** + * The parameters of this query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 2; + * @return \Google\Cloud\Dialogflow\V2\QueryParameters|null + */ + public function getQueryParams() + { + return $this->query_params; + } + + public function hasQueryParams() + { + return isset($this->query_params); + } + + public function clearQueryParams() + { + unset($this->query_params); + } + + /** + * The parameters of this query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryParameters query_params = 2; + * @param \Google\Cloud\Dialogflow\V2\QueryParameters $var + * @return $this + */ + public function setQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryParameters::class); + $this->query_params = $var; + + return $this; + } + + /** + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryInput query_input = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\QueryInput|null + */ + public function getQueryInput() + { + return $this->query_input; + } + + public function hasQueryInput() + { + return isset($this->query_input); + } + + public function clearQueryInput() + { + unset($this->query_input); + } + + /** + * Required. The input specification. It can be set to: + * 1. an audio config which instructs the speech recognizer how to process + * the speech audio, + * 2. a conversational query in the form of text, or + * 3. an event that specifies which intent to trigger. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryInput query_input = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\QueryInput $var + * @return $this + */ + public function setQueryInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryInput::class); + $this->query_input = $var; + + return $this; + } + + /** + * Please use + * [InputAudioConfig.single_utterance][google.cloud.dialogflow.v2.InputAudioConfig.single_utterance] + * instead. If `false` (default), recognition does not cease until the client + * closes the stream. If `true`, the recognizer will detect a single spoken + * utterance in input audio. Recognition ceases when it detects the audio's + * voice has stopped or paused. In this case, once a detected intent is + * received, the client should close the stream and start a new request with a + * new stream as needed. This setting is ignored when `query_input` is a piece + * of text or an event. + * + * Generated from protobuf field bool single_utterance = 4 [deprecated = true]; + * @return bool + * @deprecated + */ + public function getSingleUtterance() + { + if ($this->single_utterance !== false) { + @trigger_error('single_utterance is deprecated.', E_USER_DEPRECATED); + } + return $this->single_utterance; + } + + /** + * Please use + * [InputAudioConfig.single_utterance][google.cloud.dialogflow.v2.InputAudioConfig.single_utterance] + * instead. If `false` (default), recognition does not cease until the client + * closes the stream. If `true`, the recognizer will detect a single spoken + * utterance in input audio. Recognition ceases when it detects the audio's + * voice has stopped or paused. In this case, once a detected intent is + * received, the client should close the stream and start a new request with a + * new stream as needed. This setting is ignored when `query_input` is a piece + * of text or an event. + * + * Generated from protobuf field bool single_utterance = 4 [deprecated = true]; + * @param bool $var + * @return $this + * @deprecated + */ + public function setSingleUtterance($var) + { + @trigger_error('single_utterance is deprecated.', E_USER_DEPRECATED); + GPBUtil::checkBool($var); + $this->single_utterance = $var; + + return $this; + } + + /** + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 5; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getOutputAudioConfig() + { + return $this->output_audio_config; + } + + public function hasOutputAudioConfig() + { + return isset($this->output_audio_config); + } + + public function clearOutputAudioConfig() + { + unset($this->output_audio_config); + } + + /** + * Instructs the speech synthesizer how to generate the output + * audio. If this field is not set and agent-level speech synthesizer is not + * configured, no output audio is generated. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 5; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setOutputAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->output_audio_config = $var; + + return $this; + } + + /** + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * + * Generated from protobuf field .google.protobuf.FieldMask output_audio_config_mask = 7; + * @return \Google\Protobuf\FieldMask|null + */ + public function getOutputAudioConfigMask() + { + return $this->output_audio_config_mask; + } + + public function hasOutputAudioConfigMask() + { + return isset($this->output_audio_config_mask); + } + + public function clearOutputAudioConfigMask() + { + unset($this->output_audio_config_mask); + } + + /** + * Mask for + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * indicating which settings in this request-level config should override + * speech synthesizer settings defined at agent-level. + * If unspecified or empty, + * [output_audio_config][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.output_audio_config] + * replaces the agent-level config in its entirety. + * + * Generated from protobuf field .google.protobuf.FieldMask output_audio_config_mask = 7; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setOutputAudioConfigMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->output_audio_config_mask = $var; + + return $this; + } + + /** + * The input audio content to be recognized. Must be sent if + * `query_input` was set to a streaming input audio config. The complete audio + * over all streaming messages must not exceed 1 minute. + * + * Generated from protobuf field bytes input_audio = 6; + * @return string + */ + public function getInputAudio() + { + return $this->input_audio; + } + + /** + * The input audio content to be recognized. Must be sent if + * `query_input` was set to a streaming input audio config. The complete audio + * over all streaming messages must not exceed 1 minute. + * + * Generated from protobuf field bytes input_audio = 6; + * @param string $var + * @return $this + */ + public function setInputAudio($var) + { + GPBUtil::checkString($var, False); + $this->input_audio = $var; + + return $this; + } + + /** + * if true, `StreamingDetectIntentResponse.debugging_info` will get populated. + * + * Generated from protobuf field bool enable_debugging_info = 8; + * @return bool + */ + public function getEnableDebuggingInfo() + { + return $this->enable_debugging_info; + } + + /** + * if true, `StreamingDetectIntentResponse.debugging_info` will get populated. + * + * Generated from protobuf field bool enable_debugging_info = 8; + * @param bool $var + * @return $this + */ + public function setEnableDebuggingInfo($var) + { + GPBUtil::checkBool($var); + $this->enable_debugging_info = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentResponse.php b/vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentResponse.php new file mode 100644 index 0000000..29d710b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/StreamingDetectIntentResponse.php @@ -0,0 +1,377 @@ +google.cloud.dialogflow.v2.StreamingDetectIntentResponse + */ +class StreamingDetectIntentResponse extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * + * Generated from protobuf field string response_id = 1; + */ + protected $response_id = ''; + /** + * The result of speech recognition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult recognition_result = 2; + */ + protected $recognition_result = null; + /** + * The result of the conversational query or event processing. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 3; + */ + protected $query_result = null; + /** + * Specifies the status of the webhook request. + * + * Generated from protobuf field .google.rpc.Status webhook_status = 4; + */ + protected $webhook_status = null; + /** + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field bytes output_audio = 5; + */ + protected $output_audio = ''; + /** + * The config used by the speech synthesizer to generate the output audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 6; + */ + protected $output_audio_config = null; + /** + * Debugging info that would get populated when + * [StreamingDetectIntentRequest.enable_debugging_info][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.enable_debugging_info] + * is set to true. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CloudConversationDebuggingInfo debugging_info = 8; + */ + protected $debugging_info = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $response_id + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * @type \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult $recognition_result + * The result of speech recognition. + * @type \Google\Cloud\Dialogflow\V2\QueryResult $query_result + * The result of the conversational query or event processing. + * @type \Google\Rpc\Status $webhook_status + * Specifies the status of the webhook request. + * @type string $output_audio + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * @type \Google\Cloud\Dialogflow\V2\OutputAudioConfig $output_audio_config + * The config used by the speech synthesizer to generate the output audio. + * @type \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo $debugging_info + * Debugging info that would get populated when + * [StreamingDetectIntentRequest.enable_debugging_info][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.enable_debugging_info] + * is set to true. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * + * Generated from protobuf field string response_id = 1; + * @return string + */ + public function getResponseId() + { + return $this->response_id; + } + + /** + * The unique identifier of the response. It can be used to + * locate a response in the training example set or for reporting issues. + * + * Generated from protobuf field string response_id = 1; + * @param string $var + * @return $this + */ + public function setResponseId($var) + { + GPBUtil::checkString($var, True); + $this->response_id = $var; + + return $this; + } + + /** + * The result of speech recognition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult recognition_result = 2; + * @return \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult|null + */ + public function getRecognitionResult() + { + return $this->recognition_result; + } + + public function hasRecognitionResult() + { + return isset($this->recognition_result); + } + + public function clearRecognitionResult() + { + unset($this->recognition_result); + } + + /** + * The result of speech recognition. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult recognition_result = 2; + * @param \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult $var + * @return $this + */ + public function setRecognitionResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult::class); + $this->recognition_result = $var; + + return $this; + } + + /** + * The result of the conversational query or event processing. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 3; + * @return \Google\Cloud\Dialogflow\V2\QueryResult|null + */ + public function getQueryResult() + { + return $this->query_result; + } + + public function hasQueryResult() + { + return isset($this->query_result); + } + + public function clearQueryResult() + { + unset($this->query_result); + } + + /** + * The result of the conversational query or event processing. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 3; + * @param \Google\Cloud\Dialogflow\V2\QueryResult $var + * @return $this + */ + public function setQueryResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryResult::class); + $this->query_result = $var; + + return $this; + } + + /** + * Specifies the status of the webhook request. + * + * Generated from protobuf field .google.rpc.Status webhook_status = 4; + * @return \Google\Rpc\Status|null + */ + public function getWebhookStatus() + { + return $this->webhook_status; + } + + public function hasWebhookStatus() + { + return isset($this->webhook_status); + } + + public function clearWebhookStatus() + { + unset($this->webhook_status); + } + + /** + * Specifies the status of the webhook request. + * + * Generated from protobuf field .google.rpc.Status webhook_status = 4; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setWebhookStatus($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->webhook_status = $var; + + return $this; + } + + /** + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field bytes output_audio = 5; + * @return string + */ + public function getOutputAudio() + { + return $this->output_audio; + } + + /** + * The audio data bytes encoded as specified in the request. + * Note: The output audio is generated based on the values of default platform + * text responses found in the `query_result.fulfillment_messages` field. If + * multiple default text responses exist, they will be concatenated when + * generating audio. If no default platform text responses exist, the + * generated audio content will be empty. + * In some scenarios, multiple output audio fields may be present in the + * response structure. In these cases, only the top-most-level audio output + * has content. + * + * Generated from protobuf field bytes output_audio = 5; + * @param string $var + * @return $this + */ + public function setOutputAudio($var) + { + GPBUtil::checkString($var, False); + $this->output_audio = $var; + + return $this; + } + + /** + * The config used by the speech synthesizer to generate the output audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 6; + * @return \Google\Cloud\Dialogflow\V2\OutputAudioConfig|null + */ + public function getOutputAudioConfig() + { + return $this->output_audio_config; + } + + public function hasOutputAudioConfig() + { + return isset($this->output_audio_config); + } + + public function clearOutputAudioConfig() + { + unset($this->output_audio_config); + } + + /** + * The config used by the speech synthesizer to generate the output audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioConfig output_audio_config = 6; + * @param \Google\Cloud\Dialogflow\V2\OutputAudioConfig $var + * @return $this + */ + public function setOutputAudioConfig($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OutputAudioConfig::class); + $this->output_audio_config = $var; + + return $this; + } + + /** + * Debugging info that would get populated when + * [StreamingDetectIntentRequest.enable_debugging_info][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.enable_debugging_info] + * is set to true. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CloudConversationDebuggingInfo debugging_info = 8; + * @return \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo|null + */ + public function getDebuggingInfo() + { + return $this->debugging_info; + } + + public function hasDebuggingInfo() + { + return isset($this->debugging_info); + } + + public function clearDebuggingInfo() + { + unset($this->debugging_info); + } + + /** + * Debugging info that would get populated when + * [StreamingDetectIntentRequest.enable_debugging_info][google.cloud.dialogflow.v2.StreamingDetectIntentRequest.enable_debugging_info] + * is set to true. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.CloudConversationDebuggingInfo debugging_info = 8; + * @param \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo $var + * @return $this + */ + public function setDebuggingInfo($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\CloudConversationDebuggingInfo::class); + $this->debugging_info = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult.php b/vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult.php new file mode 100644 index 0000000..705e93e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult.php @@ -0,0 +1,363 @@ +google.cloud.dialogflow.v2.StreamingRecognitionResult + */ +class StreamingRecognitionResult extends \Google\Protobuf\Internal\Message +{ + /** + * Type of the result message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType message_type = 1; + */ + protected $message_type = 0; + /** + * Transcript text representing the words that the user spoke. + * Populated if and only if `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field string transcript = 2; + */ + protected $transcript = ''; + /** + * If `false`, the `StreamingRecognitionResult` represents an + * interim result that may change. If `true`, the recognizer will not return + * any further hypotheses about this piece of the audio. May only be populated + * for `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field bool is_final = 3; + */ + protected $is_final = false; + /** + * The Speech confidence between 0.0 and 1.0 for the current portion of audio. + * A higher number indicates an estimated greater likelihood that the + * recognized words are correct. The default of 0.0 is a sentinel value + * indicating that confidence was not set. + * This field is typically only provided if `is_final` is true and you should + * not rely on it being accurate or even set. + * + * Generated from protobuf field float confidence = 4; + */ + protected $confidence = 0.0; + /** + * Word-specific information for the words recognized by Speech in + * [transcript][google.cloud.dialogflow.v2.StreamingRecognitionResult.transcript]. + * Populated if and only if `message_type` = `TRANSCRIPT` and + * [InputAudioConfig.enable_word_info] is set. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SpeechWordInfo speech_word_info = 7; + */ + private $speech_word_info; + /** + * Time offset of the end of this Speech recognition result relative to the + * beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field .google.protobuf.Duration speech_end_offset = 8; + */ + protected $speech_end_offset = null; + /** + * Detected language code for the transcript. + * + * Generated from protobuf field string language_code = 10; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $message_type + * Type of the result message. + * @type string $transcript + * Transcript text representing the words that the user spoke. + * Populated if and only if `message_type` = `TRANSCRIPT`. + * @type bool $is_final + * If `false`, the `StreamingRecognitionResult` represents an + * interim result that may change. If `true`, the recognizer will not return + * any further hypotheses about this piece of the audio. May only be populated + * for `message_type` = `TRANSCRIPT`. + * @type float $confidence + * The Speech confidence between 0.0 and 1.0 for the current portion of audio. + * A higher number indicates an estimated greater likelihood that the + * recognized words are correct. The default of 0.0 is a sentinel value + * indicating that confidence was not set. + * This field is typically only provided if `is_final` is true and you should + * not rely on it being accurate or even set. + * @type array<\Google\Cloud\Dialogflow\V2\SpeechWordInfo>|\Google\Protobuf\Internal\RepeatedField $speech_word_info + * Word-specific information for the words recognized by Speech in + * [transcript][google.cloud.dialogflow.v2.StreamingRecognitionResult.transcript]. + * Populated if and only if `message_type` = `TRANSCRIPT` and + * [InputAudioConfig.enable_word_info] is set. + * @type \Google\Protobuf\Duration $speech_end_offset + * Time offset of the end of this Speech recognition result relative to the + * beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`. + * @type string $language_code + * Detected language code for the transcript. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Type of the result message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType message_type = 1; + * @return int + */ + public function getMessageType() + { + return $this->message_type; + } + + /** + * Type of the result message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType message_type = 1; + * @param int $var + * @return $this + */ + public function setMessageType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\StreamingRecognitionResult\MessageType::class); + $this->message_type = $var; + + return $this; + } + + /** + * Transcript text representing the words that the user spoke. + * Populated if and only if `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field string transcript = 2; + * @return string + */ + public function getTranscript() + { + return $this->transcript; + } + + /** + * Transcript text representing the words that the user spoke. + * Populated if and only if `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field string transcript = 2; + * @param string $var + * @return $this + */ + public function setTranscript($var) + { + GPBUtil::checkString($var, True); + $this->transcript = $var; + + return $this; + } + + /** + * If `false`, the `StreamingRecognitionResult` represents an + * interim result that may change. If `true`, the recognizer will not return + * any further hypotheses about this piece of the audio. May only be populated + * for `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field bool is_final = 3; + * @return bool + */ + public function getIsFinal() + { + return $this->is_final; + } + + /** + * If `false`, the `StreamingRecognitionResult` represents an + * interim result that may change. If `true`, the recognizer will not return + * any further hypotheses about this piece of the audio. May only be populated + * for `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field bool is_final = 3; + * @param bool $var + * @return $this + */ + public function setIsFinal($var) + { + GPBUtil::checkBool($var); + $this->is_final = $var; + + return $this; + } + + /** + * The Speech confidence between 0.0 and 1.0 for the current portion of audio. + * A higher number indicates an estimated greater likelihood that the + * recognized words are correct. The default of 0.0 is a sentinel value + * indicating that confidence was not set. + * This field is typically only provided if `is_final` is true and you should + * not rely on it being accurate or even set. + * + * Generated from protobuf field float confidence = 4; + * @return float + */ + public function getConfidence() + { + return $this->confidence; + } + + /** + * The Speech confidence between 0.0 and 1.0 for the current portion of audio. + * A higher number indicates an estimated greater likelihood that the + * recognized words are correct. The default of 0.0 is a sentinel value + * indicating that confidence was not set. + * This field is typically only provided if `is_final` is true and you should + * not rely on it being accurate or even set. + * + * Generated from protobuf field float confidence = 4; + * @param float $var + * @return $this + */ + public function setConfidence($var) + { + GPBUtil::checkFloat($var); + $this->confidence = $var; + + return $this; + } + + /** + * Word-specific information for the words recognized by Speech in + * [transcript][google.cloud.dialogflow.v2.StreamingRecognitionResult.transcript]. + * Populated if and only if `message_type` = `TRANSCRIPT` and + * [InputAudioConfig.enable_word_info] is set. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SpeechWordInfo speech_word_info = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSpeechWordInfo() + { + return $this->speech_word_info; + } + + /** + * Word-specific information for the words recognized by Speech in + * [transcript][google.cloud.dialogflow.v2.StreamingRecognitionResult.transcript]. + * Populated if and only if `message_type` = `TRANSCRIPT` and + * [InputAudioConfig.enable_word_info] is set. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SpeechWordInfo speech_word_info = 7; + * @param array<\Google\Cloud\Dialogflow\V2\SpeechWordInfo>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSpeechWordInfo($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SpeechWordInfo::class); + $this->speech_word_info = $arr; + + return $this; + } + + /** + * Time offset of the end of this Speech recognition result relative to the + * beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field .google.protobuf.Duration speech_end_offset = 8; + * @return \Google\Protobuf\Duration|null + */ + public function getSpeechEndOffset() + { + return $this->speech_end_offset; + } + + public function hasSpeechEndOffset() + { + return isset($this->speech_end_offset); + } + + public function clearSpeechEndOffset() + { + unset($this->speech_end_offset); + } + + /** + * Time offset of the end of this Speech recognition result relative to the + * beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`. + * + * Generated from protobuf field .google.protobuf.Duration speech_end_offset = 8; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setSpeechEndOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->speech_end_offset = $var; + + return $this; + } + + /** + * Detected language code for the transcript. + * + * Generated from protobuf field string language_code = 10; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Detected language code for the transcript. + * + * Generated from protobuf field string language_code = 10; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult/MessageType.php b/vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult/MessageType.php new file mode 100644 index 0000000..67985a3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/StreamingRecognitionResult/MessageType.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.StreamingRecognitionResult.MessageType + */ +class MessageType +{ + /** + * Not specified. Should never be used. + * + * Generated from protobuf enum MESSAGE_TYPE_UNSPECIFIED = 0; + */ + const MESSAGE_TYPE_UNSPECIFIED = 0; + /** + * Message contains a (possibly partial) transcript. + * + * Generated from protobuf enum TRANSCRIPT = 1; + */ + const TRANSCRIPT = 1; + /** + * This event indicates that the server has detected the end of the user's + * speech utterance and expects no additional inputs. + * Therefore, the server will not process additional audio (although it may + * subsequently return additional results). The client should stop sending + * additional audio data, half-close the gRPC connection, and wait for any + * additional results until the server closes the gRPC connection. This + * message is only sent if `single_utterance` was set to `true`, and is not + * used otherwise. + * + * Generated from protobuf enum END_OF_SINGLE_UTTERANCE = 2; + */ + const END_OF_SINGLE_UTTERANCE = 2; + + private static $valueToName = [ + self::MESSAGE_TYPE_UNSPECIFIED => 'MESSAGE_TYPE_UNSPECIFIED', + self::TRANSCRIPT => 'TRANSCRIPT', + self::END_OF_SINGLE_UTTERANCE => 'END_OF_SINGLE_UTTERANCE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestArticlesRequest.php b/vendor/google/cloud-dialogflow/src/V2/SuggestArticlesRequest.php new file mode 100644 index 0000000..aa503b5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestArticlesRequest.php @@ -0,0 +1,228 @@ +google.cloud.dialogflow.v2.SuggestArticlesRequest + */ +class SuggestArticlesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesRequest.latest_message] + * to use as context when compiling the suggestion. By default 20 and at + * most 50. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $context_size = 0; + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 4; + */ + protected $assist_query_params = null; + + /** + * @param string $parent Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\SuggestArticlesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * @type string $latest_message + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesRequest.latest_message] + * to use as context when compiling the suggestion. By default 20 and at + * most 50. + * @type \Google\Cloud\Dialogflow\V2\AssistQueryParameters $assist_query_params + * Parameters for a human assist query. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesRequest.latest_message] + * to use as context when compiling the suggestion. By default 20 and at + * most 50. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesRequest.latest_message] + * to use as context when compiling the suggestion. By default 20 and at + * most 50. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 4; + * @return \Google\Cloud\Dialogflow\V2\AssistQueryParameters|null + */ + public function getAssistQueryParams() + { + return $this->assist_query_params; + } + + public function hasAssistQueryParams() + { + return isset($this->assist_query_params); + } + + public function clearAssistQueryParams() + { + unset($this->assist_query_params); + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 4; + * @param \Google\Cloud\Dialogflow\V2\AssistQueryParameters $var + * @return $this + */ + public function setAssistQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AssistQueryParameters::class); + $this->assist_query_params = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestArticlesResponse.php b/vendor/google/cloud-dialogflow/src/V2/SuggestArticlesResponse.php new file mode 100644 index 0000000..3d93722 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestArticlesResponse.php @@ -0,0 +1,168 @@ +google.cloud.dialogflow.v2.SuggestArticlesResponse + */ +class SuggestArticlesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Articles ordered by score in descending order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ArticleAnswer article_answers = 1; + */ + private $article_answers; + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + */ + protected $latest_message = ''; + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestArticlesRequest.context_size][google.cloud.dialogflow.v2.SuggestArticlesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\ArticleAnswer>|\Google\Protobuf\Internal\RepeatedField $article_answers + * Articles ordered by score in descending order. + * @type string $latest_message + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestArticlesRequest.context_size][google.cloud.dialogflow.v2.SuggestArticlesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Articles ordered by score in descending order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ArticleAnswer article_answers = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getArticleAnswers() + { + return $this->article_answers; + } + + /** + * Articles ordered by score in descending order. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ArticleAnswer article_answers = 1; + * @param array<\Google\Cloud\Dialogflow\V2\ArticleAnswer>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setArticleAnswers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\ArticleAnswer::class); + $this->article_answers = $arr; + + return $this; + } + + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestArticlesRequest.context_size][google.cloud.dialogflow.v2.SuggestArticlesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestArticlesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestArticlesRequest.context_size][google.cloud.dialogflow.v2.SuggestArticlesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryRequest.php b/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryRequest.php new file mode 100644 index 0000000..e648058 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryRequest.php @@ -0,0 +1,232 @@ +google.cloud.dialogflow.v2.SuggestConversationSummaryRequest + */ +class SuggestConversationSummaryRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation to fetch suggestion for. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $conversation = ''; + /** + * Optional. The name of the latest conversation message used as context for + * compiling suggestion. If empty, the latest message of the conversation will + * be used. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * + * Generated from protobuf field int32 context_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $context_size = 0; + /** + * Optional. Parameters for a human assist query. Only used for POC/demo + * purpose. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $assist_query_params = null; + + /** + * @param string $conversation Required. The conversation to fetch suggestion for. + * Format: `projects//locations//conversations/`. Please see + * {@see ConversationsClient::conversationName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\SuggestConversationSummaryRequest + * + * @experimental + */ + public static function build(string $conversation): self + { + return (new self()) + ->setConversation($conversation); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation + * Required. The conversation to fetch suggestion for. + * Format: `projects//locations//conversations/`. + * @type string $latest_message + * Optional. The name of the latest conversation message used as context for + * compiling suggestion. If empty, the latest message of the conversation will + * be used. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * @type \Google\Cloud\Dialogflow\V2\AssistQueryParameters $assist_query_params + * Optional. Parameters for a human assist query. Only used for POC/demo + * purpose. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation to fetch suggestion for. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getConversation() + { + return $this->conversation; + } + + /** + * Required. The conversation to fetch suggestion for. + * Format: `projects//locations//conversations/`. + * + * Generated from protobuf field string conversation = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setConversation($var) + { + GPBUtil::checkString($var, True); + $this->conversation = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message used as context for + * compiling suggestion. If empty, the latest message of the conversation will + * be used. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message used as context for + * compiling suggestion. If empty, the latest message of the conversation will + * be used. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * + * Generated from protobuf field int32 context_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 500 and at most 1000. + * + * Generated from protobuf field int32 context_size = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + + /** + * Optional. Parameters for a human assist query. Only used for POC/demo + * purpose. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\AssistQueryParameters|null + */ + public function getAssistQueryParams() + { + return $this->assist_query_params; + } + + public function hasAssistQueryParams() + { + return isset($this->assist_query_params); + } + + public function clearAssistQueryParams() + { + unset($this->assist_query_params); + } + + /** + * Optional. Parameters for a human assist query. Only used for POC/demo + * purpose. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\AssistQueryParameters $var + * @return $this + */ + public function setAssistQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AssistQueryParameters::class); + $this->assist_query_params = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse.php b/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse.php new file mode 100644 index 0000000..448a7f5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse.php @@ -0,0 +1,178 @@ +google.cloud.dialogflow.v2.SuggestConversationSummaryResponse + */ +class SuggestConversationSummaryResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Generated summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary summary = 1; + */ + protected $summary = null; + /** + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [SuggestConversationSummaryRequest.context_size][google.cloud.dialogflow.v2.SuggestConversationSummaryRequest.context_size] + * field in the request if there weren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\SuggestConversationSummaryResponse\Summary $summary + * Generated summary. + * @type string $latest_message + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [SuggestConversationSummaryRequest.context_size][google.cloud.dialogflow.v2.SuggestConversationSummaryRequest.context_size] + * field in the request if there weren't that many messages in the + * conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * Generated summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary summary = 1; + * @return \Google\Cloud\Dialogflow\V2\SuggestConversationSummaryResponse\Summary|null + */ + public function getSummary() + { + return $this->summary; + } + + public function hasSummary() + { + return isset($this->summary); + } + + public function clearSummary() + { + unset($this->summary); + } + + /** + * Generated summary. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary summary = 1; + * @param \Google\Cloud\Dialogflow\V2\SuggestConversationSummaryResponse\Summary $var + * @return $this + */ + public function setSummary($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestConversationSummaryResponse\Summary::class); + $this->summary = $var; + + return $this; + } + + /** + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used as context for + * compiling suggestion. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [SuggestConversationSummaryRequest.context_size][google.cloud.dialogflow.v2.SuggestConversationSummaryRequest.context_size] + * field in the request if there weren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.latest_message] + * used to compile the suggestion. It may be smaller than the + * [SuggestConversationSummaryRequest.context_size][google.cloud.dialogflow.v2.SuggestConversationSummaryRequest.context_size] + * field in the request if there weren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse/Summary.php b/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse/Summary.php new file mode 100644 index 0000000..fa38bfa --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestConversationSummaryResponse/Summary.php @@ -0,0 +1,186 @@ +google.cloud.dialogflow.v2.SuggestConversationSummaryResponse.Summary + */ +class Summary extends \Google\Protobuf\Internal\Message +{ + /** + * The summary content that is concatenated into one string. + * + * Generated from protobuf field string text = 1; + */ + protected $text = ''; + /** + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * + * Generated from protobuf field map text_sections = 4; + */ + private $text_sections; + /** + * The name of the answer record. Format: + * "projects//answerRecords/" + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + */ + protected $answer_record = ''; + /** + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * + * Generated from protobuf field string baseline_model_version = 5; + */ + protected $baseline_model_version = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * The summary content that is concatenated into one string. + * @type array|\Google\Protobuf\Internal\MapField $text_sections + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * @type string $answer_record + * The name of the answer record. Format: + * "projects//answerRecords/" + * @type string $baseline_model_version + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Conversation::initOnce(); + parent::__construct($data); + } + + /** + * The summary content that is concatenated into one string. + * + * Generated from protobuf field string text = 1; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * The summary content that is concatenated into one string. + * + * Generated from protobuf field string text = 1; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * + * Generated from protobuf field map text_sections = 4; + * @return \Google\Protobuf\Internal\MapField + */ + public function getTextSections() + { + return $this->text_sections; + } + + /** + * The summary content that is divided into sections. The key is the + * section's name and the value is the section's content. There is no + * specific format for the key or value. + * + * Generated from protobuf field map text_sections = 4; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setTextSections($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->text_sections = $arr; + + return $this; + } + + /** + * The name of the answer record. Format: + * "projects//answerRecords/" + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * The name of the answer record. Format: + * "projects//answerRecords/" + * + * Generated from protobuf field string answer_record = 3 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + + /** + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * + * Generated from protobuf field string baseline_model_version = 5; + * @return string + */ + public function getBaselineModelVersion() + { + return $this->baseline_model_version; + } + + /** + * The baseline model version used to generate this summary. It is empty if + * a baseline model was not used to generate this summary. + * + * Generated from protobuf field string baseline_model_version = 5; + * @param string $var + * @return $this + */ + public function setBaselineModelVersion($var) + { + GPBUtil::checkString($var, True); + $this->baseline_model_version = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersRequest.php b/vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersRequest.php new file mode 100644 index 0000000..7858270 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersRequest.php @@ -0,0 +1,224 @@ +google.cloud.dialogflow.v2.SuggestFaqAnswersRequest + */ +class SuggestFaqAnswersRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $context_size = 0; + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 4; + */ + protected $assist_query_params = null; + + /** + * @param string $parent Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\SuggestFaqAnswersRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * @type string $latest_message + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * @type \Google\Cloud\Dialogflow\V2\AssistQueryParameters $assist_query_params + * Parameters for a human assist query. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 4; + * @return \Google\Cloud\Dialogflow\V2\AssistQueryParameters|null + */ + public function getAssistQueryParams() + { + return $this->assist_query_params; + } + + public function hasAssistQueryParams() + { + return isset($this->assist_query_params); + } + + public function clearAssistQueryParams() + { + unset($this->assist_query_params); + } + + /** + * Parameters for a human assist query. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AssistQueryParameters assist_query_params = 4; + * @param \Google\Cloud\Dialogflow\V2\AssistQueryParameters $var + * @return $this + */ + public function setAssistQueryParams($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AssistQueryParameters::class); + $this->assist_query_params = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersResponse.php b/vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersResponse.php new file mode 100644 index 0000000..2dc230a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestFaqAnswersResponse.php @@ -0,0 +1,168 @@ +google.cloud.dialogflow.v2.SuggestFaqAnswersResponse + */ +class SuggestFaqAnswersResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Answers extracted from FAQ documents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.FaqAnswer faq_answers = 1; + */ + private $faq_answers; + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + */ + protected $latest_message = ''; + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestFaqAnswersResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestFaqAnswersRequest.context_size][google.cloud.dialogflow.v2.SuggestFaqAnswersRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\FaqAnswer>|\Google\Protobuf\Internal\RepeatedField $faq_answers + * Answers extracted from FAQ documents. + * @type string $latest_message + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestFaqAnswersResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestFaqAnswersRequest.context_size][google.cloud.dialogflow.v2.SuggestFaqAnswersRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Answers extracted from FAQ documents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.FaqAnswer faq_answers = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFaqAnswers() + { + return $this->faq_answers; + } + + /** + * Answers extracted from FAQ documents. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.FaqAnswer faq_answers = 1; + * @param array<\Google\Cloud\Dialogflow\V2\FaqAnswer>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFaqAnswers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\FaqAnswer::class); + $this->faq_answers = $arr; + + return $this; + } + + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestFaqAnswersResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestFaqAnswersRequest.context_size][google.cloud.dialogflow.v2.SuggestFaqAnswersRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestFaqAnswersResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestFaqAnswersRequest.context_size][google.cloud.dialogflow.v2.SuggestFaqAnswersRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistRequest.php b/vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistRequest.php new file mode 100644 index 0000000..65d133f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistRequest.php @@ -0,0 +1,214 @@ +google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest + */ +class SuggestKnowledgeAssistRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant to fetch suggestions for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * Optional. The name of the latest conversation message to compile + * suggestions for. If empty, it will be the latest message of the + * conversation. Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.latest_message] + * to use as context when compiling the suggestion. The context size is by + * default 100 and at most 100. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $context_size = 0; + /** + * Optional. The previously suggested query for the given conversation. This + * helps identify whether the next suggestion we generate is reasonably + * different from the previous one. This is useful to avoid similar + * suggestions within the conversation. + * + * Generated from protobuf field string previous_suggested_query = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $previous_suggested_query = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the participant to fetch suggestions for. + * Format: `projects//locations//conversations//participants/`. + * @type string $latest_message + * Optional. The name of the latest conversation message to compile + * suggestions for. If empty, it will be the latest message of the + * conversation. Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.latest_message] + * to use as context when compiling the suggestion. The context size is by + * default 100 and at most 100. + * @type string $previous_suggested_query + * Optional. The previously suggested query for the given conversation. This + * helps identify whether the next suggestion we generate is reasonably + * different from the previous one. This is useful to avoid similar + * suggestions within the conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant to fetch suggestions for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the participant to fetch suggestions for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * Optional. The name of the latest conversation message to compile + * suggestions for. If empty, it will be the latest message of the + * conversation. Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * Optional. The name of the latest conversation message to compile + * suggestions for. If empty, it will be the latest message of the + * conversation. Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.latest_message] + * to use as context when compiling the suggestion. The context size is by + * default 100 and at most 100. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Optional. Max number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.latest_message] + * to use as context when compiling the suggestion. The context size is by + * default 100 and at most 100. + * + * Generated from protobuf field int32 context_size = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + + /** + * Optional. The previously suggested query for the given conversation. This + * helps identify whether the next suggestion we generate is reasonably + * different from the previous one. This is useful to avoid similar + * suggestions within the conversation. + * + * Generated from protobuf field string previous_suggested_query = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getPreviousSuggestedQuery() + { + return $this->previous_suggested_query; + } + + /** + * Optional. The previously suggested query for the given conversation. This + * helps identify whether the next suggestion we generate is reasonably + * different from the previous one. This is useful to avoid similar + * suggestions within the conversation. + * + * Generated from protobuf field string previous_suggested_query = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setPreviousSuggestedQuery($var) + { + GPBUtil::checkString($var, True); + $this->previous_suggested_query = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistResponse.php b/vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistResponse.php new file mode 100644 index 0000000..c153303 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestKnowledgeAssistResponse.php @@ -0,0 +1,170 @@ +google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse + */ +class SuggestKnowledgeAssistResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Knowledge Assist suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer knowledge_assist_answer = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $knowledge_assist_answer = null; + /** + * The name of the latest conversation message used to compile suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + */ + protected $latest_message = ''; + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestKnowledgeAssistRequest.context_size][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.context_size] + * field in the request if there are fewer messages in the conversation. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer $knowledge_assist_answer + * Output only. Knowledge Assist suggestion. + * @type string $latest_message + * The name of the latest conversation message used to compile suggestion for. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestKnowledgeAssistRequest.context_size][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.context_size] + * field in the request if there are fewer messages in the conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Knowledge Assist suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer knowledge_assist_answer = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer|null + */ + public function getKnowledgeAssistAnswer() + { + return $this->knowledge_assist_answer; + } + + public function hasKnowledgeAssistAnswer() + { + return isset($this->knowledge_assist_answer); + } + + public function clearKnowledgeAssistAnswer() + { + unset($this->knowledge_assist_answer); + } + + /** + * Output only. Knowledge Assist suggestion. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeAssistAnswer knowledge_assist_answer = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer $var + * @return $this + */ + public function setKnowledgeAssistAnswer($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeAssistAnswer::class); + $this->knowledge_assist_answer = $var; + + return $this; + } + + /** + * The name of the latest conversation message used to compile suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used to compile suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2; + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestKnowledgeAssistRequest.context_size][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.context_size] + * field in the request if there are fewer messages in the conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestKnowledgeAssistRequest.context_size][google.cloud.dialogflow.v2.SuggestKnowledgeAssistRequest.context_size] + * field in the request if there are fewer messages in the conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesRequest.php b/vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesRequest.php new file mode 100644 index 0000000..3849f06 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesRequest.php @@ -0,0 +1,232 @@ +google.cloud.dialogflow.v2.SuggestSmartRepliesRequest + */ +class SuggestSmartRepliesRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + /** + * The current natural language text segment to compile suggestion + * for. This provides a way for user to get follow up smart reply suggestion + * after a smart reply selection, without sending a text message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput current_text_input = 4; + */ + protected $current_text_input = null; + /** + * The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * @param string $parent Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. Please see + * {@see ParticipantsClient::participantName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\SuggestSmartRepliesRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * @type \Google\Cloud\Dialogflow\V2\TextInput $current_text_input + * The current natural language text segment to compile suggestion + * for. This provides a way for user to get follow up smart reply suggestion + * after a smart reply selection, without sending a text message. + * @type string $latest_message + * The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The name of the participant to fetch suggestion for. + * Format: `projects//locations//conversations//participants/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + + /** + * The current natural language text segment to compile suggestion + * for. This provides a way for user to get follow up smart reply suggestion + * after a smart reply selection, without sending a text message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput current_text_input = 4; + * @return \Google\Cloud\Dialogflow\V2\TextInput|null + */ + public function getCurrentTextInput() + { + return $this->current_text_input; + } + + public function hasCurrentTextInput() + { + return isset($this->current_text_input); + } + + public function clearCurrentTextInput() + { + unset($this->current_text_input); + } + + /** + * The current natural language text segment to compile suggestion + * for. This provides a way for user to get follow up smart reply suggestion + * after a smart reply selection, without sending a text message. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.TextInput current_text_input = 4; + * @param \Google\Cloud\Dialogflow\V2\TextInput $var + * @return $this + */ + public function setCurrentTextInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\TextInput::class); + $this->current_text_input = $var; + + return $this; + } + + /** + * The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message to compile suggestion + * for. If empty, it will be the latest message of the conversation. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Max number of messages prior to and including + * [latest_message] to use as context when compiling the + * suggestion. By default 20 and at most 50. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesResponse.php b/vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesResponse.php new file mode 100644 index 0000000..0938283 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestSmartRepliesResponse.php @@ -0,0 +1,176 @@ +google.cloud.dialogflow.v2.SuggestSmartRepliesResponse + */ +class SuggestSmartRepliesResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Multiple reply options provided by smart reply service. The + * order is based on the rank of the model prediction. + * The maximum number of the returned replies is set in SmartReplyConfig. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SmartReplyAnswer smart_reply_answers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + private $smart_reply_answers; + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + */ + protected $latest_message = ''; + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestSmartRepliesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestSmartRepliesRequest.context_size][google.cloud.dialogflow.v2.SuggestSmartRepliesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + */ + protected $context_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SmartReplyAnswer>|\Google\Protobuf\Internal\RepeatedField $smart_reply_answers + * Output only. Multiple reply options provided by smart reply service. The + * order is based on the rank of the model prediction. + * The maximum number of the returned replies is set in SmartReplyConfig. + * @type string $latest_message + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * @type int $context_size + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestSmartRepliesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestSmartRepliesRequest.context_size][google.cloud.dialogflow.v2.SuggestSmartRepliesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Multiple reply options provided by smart reply service. The + * order is based on the rank of the model prediction. + * The maximum number of the returned replies is set in SmartReplyConfig. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SmartReplyAnswer smart_reply_answers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSmartReplyAnswers() + { + return $this->smart_reply_answers; + } + + /** + * Output only. Multiple reply options provided by smart reply service. The + * order is based on the rank of the model prediction. + * The maximum number of the returned replies is set in SmartReplyConfig. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SmartReplyAnswer smart_reply_answers = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param array<\Google\Cloud\Dialogflow\V2\SmartReplyAnswer>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSmartReplyAnswers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SmartReplyAnswer::class); + $this->smart_reply_answers = $arr; + + return $this; + } + + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @return string + */ + public function getLatestMessage() + { + return $this->latest_message; + } + + /** + * The name of the latest conversation message used to compile + * suggestion for. + * Format: `projects//locations//conversations//messages/`. + * + * Generated from protobuf field string latest_message = 2 [(.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setLatestMessage($var) + { + GPBUtil::checkString($var, True); + $this->latest_message = $var; + + return $this; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestSmartRepliesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestSmartRepliesRequest.context_size][google.cloud.dialogflow.v2.SuggestSmartRepliesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @return int + */ + public function getContextSize() + { + return $this->context_size; + } + + /** + * Number of messages prior to and including + * [latest_message][google.cloud.dialogflow.v2.SuggestSmartRepliesResponse.latest_message] + * to compile the suggestion. It may be smaller than the + * [SuggestSmartRepliesRequest.context_size][google.cloud.dialogflow.v2.SuggestSmartRepliesRequest.context_size] + * field in the request if there aren't that many messages in the + * conversation. + * + * Generated from protobuf field int32 context_size = 3; + * @param int $var + * @return $this + */ + public function setContextSize($var) + { + GPBUtil::checkInt32($var); + $this->context_size = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestionFeature.php b/vendor/google/cloud-dialogflow/src/V2/SuggestionFeature.php new file mode 100644 index 0000000..f04dab6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestionFeature.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.SuggestionFeature + */ +class SuggestionFeature extends \Google\Protobuf\Internal\Message +{ + /** + * Type of Human Agent Assistant API feature to request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type type = 1; + */ + protected $type = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $type + * Type of Human Agent Assistant API feature to request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Type of Human Agent Assistant API feature to request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type type = 1; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * Type of Human Agent Assistant API feature to request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestionFeature.Type type = 1; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SuggestionFeature\Type::class); + $this->type = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestionFeature/Type.php b/vendor/google/cloud-dialogflow/src/V2/SuggestionFeature/Type.php new file mode 100644 index 0000000..d02c31b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestionFeature/Type.php @@ -0,0 +1,90 @@ +google.cloud.dialogflow.v2.SuggestionFeature.Type + */ +class Type +{ + /** + * Unspecified feature type. + * + * Generated from protobuf enum TYPE_UNSPECIFIED = 0; + */ + const TYPE_UNSPECIFIED = 0; + /** + * Run article suggestion model for chat. + * + * Generated from protobuf enum ARTICLE_SUGGESTION = 1; + */ + const ARTICLE_SUGGESTION = 1; + /** + * Run FAQ model for chat. + * + * Generated from protobuf enum FAQ = 2; + */ + const FAQ = 2; + /** + * Run smart reply model for chat. + * + * Generated from protobuf enum SMART_REPLY = 3; + */ + const SMART_REPLY = 3; + /** + * Run conversation summarization model for chat. + * + * Generated from protobuf enum CONVERSATION_SUMMARIZATION = 8; + */ + const CONVERSATION_SUMMARIZATION = 8; + /** + * Run knowledge search with text input from agent or text generated query. + * + * Generated from protobuf enum KNOWLEDGE_SEARCH = 14; + */ + const KNOWLEDGE_SEARCH = 14; + /** + * Run knowledge assist with automatic query generation. + * + * Generated from protobuf enum KNOWLEDGE_ASSIST = 15; + */ + const KNOWLEDGE_ASSIST = 15; + + private static $valueToName = [ + self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED', + self::ARTICLE_SUGGESTION => 'ARTICLE_SUGGESTION', + self::FAQ => 'FAQ', + self::SMART_REPLY => 'SMART_REPLY', + self::CONVERSATION_SUMMARIZATION => 'CONVERSATION_SUMMARIZATION', + self::KNOWLEDGE_SEARCH => 'KNOWLEDGE_SEARCH', + self::KNOWLEDGE_ASSIST => 'KNOWLEDGE_ASSIST', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestionInput.php b/vendor/google/cloud-dialogflow/src/V2/SuggestionInput.php new file mode 100644 index 0000000..bd6a714 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestionInput.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.SuggestionInput + */ +class SuggestionInput extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The ID of a suggestion selected by the human agent. + * The suggestion(s) were generated in a previous call to + * request Dialogflow assist. + * The format is: + * `projects//locations//answerRecords/` where is an alphanumeric string. + * + * Generated from protobuf field string answer_record = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $answer_record = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $answer_record + * Required. The ID of a suggestion selected by the human agent. + * The suggestion(s) were generated in a previous call to + * request Dialogflow assist. + * The format is: + * `projects//locations//answerRecords/` where is an alphanumeric string. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The ID of a suggestion selected by the human agent. + * The suggestion(s) were generated in a previous call to + * request Dialogflow assist. + * The format is: + * `projects//locations//answerRecords/` where is an alphanumeric string. + * + * Generated from protobuf field string answer_record = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + /** + * Required. The ID of a suggestion selected by the human agent. + * The suggestion(s) were generated in a previous call to + * request Dialogflow assist. + * The format is: + * `projects//locations//answerRecords/` where is an alphanumeric string. + * + * Generated from protobuf field string answer_record = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkString($var, True); + $this->answer_record = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SuggestionResult.php b/vendor/google/cloud-dialogflow/src/V2/SuggestionResult.php new file mode 100644 index 0000000..9a42ba1 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SuggestionResult.php @@ -0,0 +1,249 @@ +google.cloud.dialogflow.v2.SuggestionResult + */ +class SuggestionResult extends \Google\Protobuf\Internal\Message +{ + protected $suggestion_response; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Rpc\Status $error + * Error status if the request failed. + * @type \Google\Cloud\Dialogflow\V2\SuggestArticlesResponse $suggest_articles_response + * SuggestArticlesResponse if request is for ARTICLE_SUGGESTION. + * @type \Google\Cloud\Dialogflow\V2\SuggestKnowledgeAssistResponse $suggest_knowledge_assist_response + * SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST. + * @type \Google\Cloud\Dialogflow\V2\SuggestFaqAnswersResponse $suggest_faq_answers_response + * SuggestFaqAnswersResponse if request is for FAQ_ANSWER. + * @type \Google\Cloud\Dialogflow\V2\SuggestSmartRepliesResponse $suggest_smart_replies_response + * SuggestSmartRepliesResponse if request is for SMART_REPLY. + * @type \Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse $generate_suggestions_response + * Suggestions generated using generators triggered by customer or agent + * messages. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Error status if the request failed. + * + * Generated from protobuf field .google.rpc.Status error = 1; + * @return \Google\Rpc\Status|null + */ + public function getError() + { + return $this->readOneof(1); + } + + public function hasError() + { + return $this->hasOneof(1); + } + + /** + * Error status if the request failed. + * + * Generated from protobuf field .google.rpc.Status error = 1; + * @param \Google\Rpc\Status $var + * @return $this + */ + public function setError($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Status::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * SuggestArticlesResponse if request is for ARTICLE_SUGGESTION. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestArticlesResponse suggest_articles_response = 2; + * @return \Google\Cloud\Dialogflow\V2\SuggestArticlesResponse|null + */ + public function getSuggestArticlesResponse() + { + return $this->readOneof(2); + } + + public function hasSuggestArticlesResponse() + { + return $this->hasOneof(2); + } + + /** + * SuggestArticlesResponse if request is for ARTICLE_SUGGESTION. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestArticlesResponse suggest_articles_response = 2; + * @param \Google\Cloud\Dialogflow\V2\SuggestArticlesResponse $var + * @return $this + */ + public function setSuggestArticlesResponse($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestArticlesResponse::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse suggest_knowledge_assist_response = 8; + * @return \Google\Cloud\Dialogflow\V2\SuggestKnowledgeAssistResponse|null + */ + public function getSuggestKnowledgeAssistResponse() + { + return $this->readOneof(8); + } + + public function hasSuggestKnowledgeAssistResponse() + { + return $this->hasOneof(8); + } + + /** + * SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestKnowledgeAssistResponse suggest_knowledge_assist_response = 8; + * @param \Google\Cloud\Dialogflow\V2\SuggestKnowledgeAssistResponse $var + * @return $this + */ + public function setSuggestKnowledgeAssistResponse($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestKnowledgeAssistResponse::class); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * SuggestFaqAnswersResponse if request is for FAQ_ANSWER. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestFaqAnswersResponse suggest_faq_answers_response = 3; + * @return \Google\Cloud\Dialogflow\V2\SuggestFaqAnswersResponse|null + */ + public function getSuggestFaqAnswersResponse() + { + return $this->readOneof(3); + } + + public function hasSuggestFaqAnswersResponse() + { + return $this->hasOneof(3); + } + + /** + * SuggestFaqAnswersResponse if request is for FAQ_ANSWER. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestFaqAnswersResponse suggest_faq_answers_response = 3; + * @param \Google\Cloud\Dialogflow\V2\SuggestFaqAnswersResponse $var + * @return $this + */ + public function setSuggestFaqAnswersResponse($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestFaqAnswersResponse::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * SuggestSmartRepliesResponse if request is for SMART_REPLY. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestSmartRepliesResponse suggest_smart_replies_response = 4; + * @return \Google\Cloud\Dialogflow\V2\SuggestSmartRepliesResponse|null + */ + public function getSuggestSmartRepliesResponse() + { + return $this->readOneof(4); + } + + public function hasSuggestSmartRepliesResponse() + { + return $this->hasOneof(4); + } + + /** + * SuggestSmartRepliesResponse if request is for SMART_REPLY. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SuggestSmartRepliesResponse suggest_smart_replies_response = 4; + * @param \Google\Cloud\Dialogflow\V2\SuggestSmartRepliesResponse $var + * @return $this + */ + public function setSuggestSmartRepliesResponse($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SuggestSmartRepliesResponse::class); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Suggestions generated using generators triggered by customer or agent + * messages. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateSuggestionsResponse generate_suggestions_response = 9; + * @return \Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse|null + */ + public function getGenerateSuggestionsResponse() + { + return $this->readOneof(9); + } + + public function hasGenerateSuggestionsResponse() + { + return $this->hasOneof(9); + } + + /** + * Suggestions generated using generators triggered by customer or agent + * messages. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.GenerateSuggestionsResponse generate_suggestions_response = 9; + * @param \Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse $var + * @return $this + */ + public function setGenerateSuggestionsResponse($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse::class); + $this->writeOneof(9, $var); + + return $this; + } + + /** + * @return string + */ + public function getSuggestionResponse() + { + return $this->whichOneof("suggestion_response"); + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SummarizationContext.php b/vendor/google/cloud-dialogflow/src/V2/SummarizationContext.php new file mode 100644 index 0000000..3b8dacc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SummarizationContext.php @@ -0,0 +1,185 @@ +google.cloud.dialogflow.v2.SummarizationContext + */ +class SummarizationContext extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. List of sections. Note it contains both predefined section sand + * customer defined sections. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarizationSection summarization_sections = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $summarization_sections; + /** + * Optional. List of few shot examples. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.FewShotExample few_shot_examples = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $few_shot_examples; + /** + * Optional. Version of the feature. If not set, default to latest version. + * Current candidates are ["1.0"]. + * + * Generated from protobuf field string version = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $version = ''; + /** + * Optional. The target language of the generated summary. The language code + * for conversation will be used if this field is empty. Supported 2.0 and + * later versions. + * + * Generated from protobuf field string output_language_code = 6 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $output_language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SummarizationSection>|\Google\Protobuf\Internal\RepeatedField $summarization_sections + * Optional. List of sections. Note it contains both predefined section sand + * customer defined sections. + * @type array<\Google\Cloud\Dialogflow\V2\FewShotExample>|\Google\Protobuf\Internal\RepeatedField $few_shot_examples + * Optional. List of few shot examples. + * @type string $version + * Optional. Version of the feature. If not set, default to latest version. + * Current candidates are ["1.0"]. + * @type string $output_language_code + * Optional. The target language of the generated summary. The language code + * for conversation will be used if this field is empty. Supported 2.0 and + * later versions. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. List of sections. Note it contains both predefined section sand + * customer defined sections. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarizationSection summarization_sections = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSummarizationSections() + { + return $this->summarization_sections; + } + + /** + * Optional. List of sections. Note it contains both predefined section sand + * customer defined sections. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarizationSection summarization_sections = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SummarizationSection>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSummarizationSections($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SummarizationSection::class); + $this->summarization_sections = $arr; + + return $this; + } + + /** + * Optional. List of few shot examples. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.FewShotExample few_shot_examples = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFewShotExamples() + { + return $this->few_shot_examples; + } + + /** + * Optional. List of few shot examples. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.FewShotExample few_shot_examples = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\FewShotExample>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFewShotExamples($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\FewShotExample::class); + $this->few_shot_examples = $arr; + + return $this; + } + + /** + * Optional. Version of the feature. If not set, default to latest version. + * Current candidates are ["1.0"]. + * + * Generated from protobuf field string version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getVersion() + { + return $this->version; + } + + /** + * Optional. Version of the feature. If not set, default to latest version. + * Current candidates are ["1.0"]. + * + * Generated from protobuf field string version = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkString($var, True); + $this->version = $var; + + return $this; + } + + /** + * Optional. The target language of the generated summary. The language code + * for conversation will be used if this field is empty. Supported 2.0 and + * later versions. + * + * Generated from protobuf field string output_language_code = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getOutputLanguageCode() + { + return $this->output_language_code; + } + + /** + * Optional. The target language of the generated summary. The language code + * for conversation will be used if this field is empty. Supported 2.0 and + * later versions. + * + * Generated from protobuf field string output_language_code = 6 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setOutputLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->output_language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SummarizationSection.php b/vendor/google/cloud-dialogflow/src/V2/SummarizationSection.php new file mode 100644 index 0000000..c1ffe61 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SummarizationSection.php @@ -0,0 +1,139 @@ +google.cloud.dialogflow.v2.SummarizationSection + */ +class SummarizationSection extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Name of the section, for example, "situation". + * + * Generated from protobuf field string key = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $key = ''; + /** + * Optional. Definition of the section, for example, "what the customer needs + * help with or has question about." + * + * Generated from protobuf field string definition = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $definition = ''; + /** + * Optional. Type of the summarization section. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationSection.Type type = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $type = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $key + * Optional. Name of the section, for example, "situation". + * @type string $definition + * Optional. Definition of the section, for example, "what the customer needs + * help with or has question about." + * @type int $type + * Optional. Type of the summarization section. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Name of the section, for example, "situation". + * + * Generated from protobuf field string key = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getKey() + { + return $this->key; + } + + /** + * Optional. Name of the section, for example, "situation". + * + * Generated from protobuf field string key = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setKey($var) + { + GPBUtil::checkString($var, True); + $this->key = $var; + + return $this; + } + + /** + * Optional. Definition of the section, for example, "what the customer needs + * help with or has question about." + * + * Generated from protobuf field string definition = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDefinition() + { + return $this->definition; + } + + /** + * Optional. Definition of the section, for example, "what the customer needs + * help with or has question about." + * + * Generated from protobuf field string definition = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDefinition($var) + { + GPBUtil::checkString($var, True); + $this->definition = $var; + + return $this; + } + + /** + * Optional. Type of the summarization section. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationSection.Type type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * Optional. Type of the summarization section. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SummarizationSection.Type type = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SummarizationSection\Type::class); + $this->type = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SummarizationSection/Type.php b/vendor/google/cloud-dialogflow/src/V2/SummarizationSection/Type.php new file mode 100644 index 0000000..9aecaac --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SummarizationSection/Type.php @@ -0,0 +1,123 @@ +google.cloud.dialogflow.v2.SummarizationSection.Type + */ +class Type +{ + /** + * Undefined section type, does not return anything. + * + * Generated from protobuf enum TYPE_UNSPECIFIED = 0; + */ + const TYPE_UNSPECIFIED = 0; + /** + * What the customer needs help with or has question about. + * Section name: "situation". + * + * Generated from protobuf enum SITUATION = 1; + */ + const SITUATION = 1; + /** + * What the agent does to help the customer. + * Section name: "action". + * + * Generated from protobuf enum ACTION = 2; + */ + const ACTION = 2; + /** + * Result of the customer service. A single word describing the result + * of the conversation. + * Section name: "resolution". + * + * Generated from protobuf enum RESOLUTION = 3; + */ + const RESOLUTION = 3; + /** + * Reason for cancellation if the customer requests for a cancellation. + * "N/A" otherwise. + * Section name: "reason_for_cancellation". + * + * Generated from protobuf enum REASON_FOR_CANCELLATION = 4; + */ + const REASON_FOR_CANCELLATION = 4; + /** + * "Unsatisfied" or "Satisfied" depending on the customer's feelings at + * the end of the conversation. + * Section name: "customer_satisfaction". + * + * Generated from protobuf enum CUSTOMER_SATISFACTION = 5; + */ + const CUSTOMER_SATISFACTION = 5; + /** + * Key entities extracted from the conversation, such as ticket number, + * order number, dollar amount, etc. + * Section names are prefixed by "entities/". + * + * Generated from protobuf enum ENTITIES = 6; + */ + const ENTITIES = 6; + /** + * Customer defined sections. + * + * Generated from protobuf enum CUSTOMER_DEFINED = 7; + */ + const CUSTOMER_DEFINED = 7; + /** + * Concise version of the situation section. This type is only available if + * type SITUATION is not selected. + * + * Generated from protobuf enum SITUATION_CONCISE = 9; + */ + const SITUATION_CONCISE = 9; + /** + * Concise version of the action section. This type is only available if + * type ACTION is not selected. + * + * Generated from protobuf enum ACTION_CONCISE = 10; + */ + const ACTION_CONCISE = 10; + + private static $valueToName = [ + self::TYPE_UNSPECIFIED => 'TYPE_UNSPECIFIED', + self::SITUATION => 'SITUATION', + self::ACTION => 'ACTION', + self::RESOLUTION => 'RESOLUTION', + self::REASON_FOR_CANCELLATION => 'REASON_FOR_CANCELLATION', + self::CUSTOMER_SATISFACTION => 'CUSTOMER_SATISFACTION', + self::ENTITIES => 'ENTITIES', + self::CUSTOMER_DEFINED => 'CUSTOMER_DEFINED', + self::SITUATION_CONCISE => 'SITUATION_CONCISE', + self::ACTION_CONCISE => 'ACTION_CONCISE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SummarizationSectionList.php b/vendor/google/cloud-dialogflow/src/V2/SummarizationSectionList.php new file mode 100644 index 0000000..d565c6b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SummarizationSectionList.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.SummarizationSectionList + */ +class SummarizationSectionList extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Summarization sections. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarizationSection summarization_sections = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $summarization_sections; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SummarizationSection>|\Google\Protobuf\Internal\RepeatedField $summarization_sections + * Optional. Summarization sections. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Summarization sections. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarizationSection summarization_sections = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSummarizationSections() + { + return $this->summarization_sections; + } + + /** + * Optional. Summarization sections. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarizationSection summarization_sections = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param array<\Google\Cloud\Dialogflow\V2\SummarizationSection>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSummarizationSections($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SummarizationSection::class); + $this->summarization_sections = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SummarySuggestion.php b/vendor/google/cloud-dialogflow/src/V2/SummarySuggestion.php new file mode 100644 index 0000000..5928401 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SummarySuggestion.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.SummarySuggestion + */ +class SummarySuggestion extends \Google\Protobuf\Internal\Message +{ + /** + * Required. All the parts of generated summary. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarySuggestion.SummarySection summary_sections = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + private $summary_sections; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\SummarySuggestion\SummarySection>|\Google\Protobuf\Internal\RepeatedField $summary_sections + * Required. All the parts of generated summary. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. All the parts of generated summary. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarySuggestion.SummarySection summary_sections = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSummarySections() + { + return $this->summary_sections; + } + + /** + * Required. All the parts of generated summary. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SummarySuggestion.SummarySection summary_sections = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param array<\Google\Cloud\Dialogflow\V2\SummarySuggestion\SummarySection>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSummarySections($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SummarySuggestion\SummarySection::class); + $this->summary_sections = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/SummarySuggestion/SummarySection.php b/vendor/google/cloud-dialogflow/src/V2/SummarySuggestion/SummarySection.php new file mode 100644 index 0000000..bd5f9b2 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SummarySuggestion/SummarySection.php @@ -0,0 +1,102 @@ +google.cloud.dialogflow.v2.SummarySuggestion.SummarySection + */ +class SummarySection extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Name of the section. + * + * Generated from protobuf field string section = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $section = ''; + /** + * Required. Summary text for the section. + * + * Generated from protobuf field string summary = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $summary = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $section + * Required. Name of the section. + * @type string $summary + * Required. Summary text for the section. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. Name of the section. + * + * Generated from protobuf field string section = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getSection() + { + return $this->section; + } + + /** + * Required. Name of the section. + * + * Generated from protobuf field string section = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setSection($var) + { + GPBUtil::checkString($var, True); + $this->section = $var; + + return $this; + } + + /** + * Required. Summary text for the section. + * + * Generated from protobuf field string summary = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getSummary() + { + return $this->summary; + } + + /** + * Required. Summary text for the section. + * + * Generated from protobuf field string summary = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setSummary($var) + { + GPBUtil::checkString($var, True); + $this->summary = $var; + + return $this; + } + +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/SynthesizeSpeechConfig.php b/vendor/google/cloud-dialogflow/src/V2/SynthesizeSpeechConfig.php new file mode 100644 index 0000000..d0507cc --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/SynthesizeSpeechConfig.php @@ -0,0 +1,269 @@ +google.cloud.dialogflow.v2.SynthesizeSpeechConfig + */ +class SynthesizeSpeechConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal + * native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 + * is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other + * values < 0.25 or > 4.0 will return an error. + * + * Generated from protobuf field double speaking_rate = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $speaking_rate = 0.0; + /** + * Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 + * semitones from the original pitch. -20 means decrease 20 semitones from the + * original pitch. + * + * Generated from protobuf field double pitch = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $pitch = 0.0; + /** + * Optional. Volume gain (in dB) of the normal native volume supported by the + * specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of + * 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) + * will play at approximately half the amplitude of the normal native signal + * amplitude. A value of +6.0 (dB) will play at approximately twice the + * amplitude of the normal native signal amplitude. We strongly recommend not + * to exceed +10 (dB) as there's usually no effective increase in loudness for + * any value greater than that. + * + * Generated from protobuf field double volume_gain_db = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $volume_gain_db = 0.0; + /** + * Optional. An identifier which selects 'audio effects' profiles that are + * applied on (post synthesized) text to speech. Effects are applied on top of + * each other in the order they are given. + * + * Generated from protobuf field repeated string effects_profile_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $effects_profile_id; + /** + * Optional. The desired voice of the synthesized audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.VoiceSelectionParams voice = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $voice = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $speaking_rate + * Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal + * native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 + * is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other + * values < 0.25 or > 4.0 will return an error. + * @type float $pitch + * Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 + * semitones from the original pitch. -20 means decrease 20 semitones from the + * original pitch. + * @type float $volume_gain_db + * Optional. Volume gain (in dB) of the normal native volume supported by the + * specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of + * 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) + * will play at approximately half the amplitude of the normal native signal + * amplitude. A value of +6.0 (dB) will play at approximately twice the + * amplitude of the normal native signal amplitude. We strongly recommend not + * to exceed +10 (dB) as there's usually no effective increase in loudness for + * any value greater than that. + * @type array|\Google\Protobuf\Internal\RepeatedField $effects_profile_id + * Optional. An identifier which selects 'audio effects' profiles that are + * applied on (post synthesized) text to speech. Effects are applied on top of + * each other in the order they are given. + * @type \Google\Cloud\Dialogflow\V2\VoiceSelectionParams $voice + * Optional. The desired voice of the synthesized audio. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal + * native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 + * is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other + * values < 0.25 or > 4.0 will return an error. + * + * Generated from protobuf field double speaking_rate = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getSpeakingRate() + { + return $this->speaking_rate; + } + + /** + * Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal + * native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 + * is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other + * values < 0.25 or > 4.0 will return an error. + * + * Generated from protobuf field double speaking_rate = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setSpeakingRate($var) + { + GPBUtil::checkDouble($var); + $this->speaking_rate = $var; + + return $this; + } + + /** + * Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 + * semitones from the original pitch. -20 means decrease 20 semitones from the + * original pitch. + * + * Generated from protobuf field double pitch = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getPitch() + { + return $this->pitch; + } + + /** + * Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 + * semitones from the original pitch. -20 means decrease 20 semitones from the + * original pitch. + * + * Generated from protobuf field double pitch = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setPitch($var) + { + GPBUtil::checkDouble($var); + $this->pitch = $var; + + return $this; + } + + /** + * Optional. Volume gain (in dB) of the normal native volume supported by the + * specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of + * 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) + * will play at approximately half the amplitude of the normal native signal + * amplitude. A value of +6.0 (dB) will play at approximately twice the + * amplitude of the normal native signal amplitude. We strongly recommend not + * to exceed +10 (dB) as there's usually no effective increase in loudness for + * any value greater than that. + * + * Generated from protobuf field double volume_gain_db = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return float + */ + public function getVolumeGainDb() + { + return $this->volume_gain_db; + } + + /** + * Optional. Volume gain (in dB) of the normal native volume supported by the + * specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of + * 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) + * will play at approximately half the amplitude of the normal native signal + * amplitude. A value of +6.0 (dB) will play at approximately twice the + * amplitude of the normal native signal amplitude. We strongly recommend not + * to exceed +10 (dB) as there's usually no effective increase in loudness for + * any value greater than that. + * + * Generated from protobuf field double volume_gain_db = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param float $var + * @return $this + */ + public function setVolumeGainDb($var) + { + GPBUtil::checkDouble($var); + $this->volume_gain_db = $var; + + return $this; + } + + /** + * Optional. An identifier which selects 'audio effects' profiles that are + * applied on (post synthesized) text to speech. Effects are applied on top of + * each other in the order they are given. + * + * Generated from protobuf field repeated string effects_profile_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEffectsProfileId() + { + return $this->effects_profile_id; + } + + /** + * Optional. An identifier which selects 'audio effects' profiles that are + * applied on (post synthesized) text to speech. Effects are applied on top of + * each other in the order they are given. + * + * Generated from protobuf field repeated string effects_profile_id = 5 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEffectsProfileId($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->effects_profile_id = $arr; + + return $this; + } + + /** + * Optional. The desired voice of the synthesized audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.VoiceSelectionParams voice = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Cloud\Dialogflow\V2\VoiceSelectionParams|null + */ + public function getVoice() + { + return $this->voice; + } + + public function hasVoice() + { + return isset($this->voice); + } + + public function clearVoice() + { + unset($this->voice); + } + + /** + * Optional. The desired voice of the synthesized audio. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.VoiceSelectionParams voice = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Cloud\Dialogflow\V2\VoiceSelectionParams $var + * @return $this + */ + public function setVoice($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\VoiceSelectionParams::class); + $this->voice = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/TelephonyDtmf.php b/vendor/google/cloud-dialogflow/src/V2/TelephonyDtmf.php new file mode 100644 index 0000000..c647551 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/TelephonyDtmf.php @@ -0,0 +1,160 @@ +google.cloud.dialogflow.v2.TelephonyDtmf + */ +class TelephonyDtmf +{ + /** + * Not specified. This value may be used to indicate an absent digit. + * + * Generated from protobuf enum TELEPHONY_DTMF_UNSPECIFIED = 0; + */ + const TELEPHONY_DTMF_UNSPECIFIED = 0; + /** + * Number: '1'. + * + * Generated from protobuf enum DTMF_ONE = 1; + */ + const DTMF_ONE = 1; + /** + * Number: '2'. + * + * Generated from protobuf enum DTMF_TWO = 2; + */ + const DTMF_TWO = 2; + /** + * Number: '3'. + * + * Generated from protobuf enum DTMF_THREE = 3; + */ + const DTMF_THREE = 3; + /** + * Number: '4'. + * + * Generated from protobuf enum DTMF_FOUR = 4; + */ + const DTMF_FOUR = 4; + /** + * Number: '5'. + * + * Generated from protobuf enum DTMF_FIVE = 5; + */ + const DTMF_FIVE = 5; + /** + * Number: '6'. + * + * Generated from protobuf enum DTMF_SIX = 6; + */ + const DTMF_SIX = 6; + /** + * Number: '7'. + * + * Generated from protobuf enum DTMF_SEVEN = 7; + */ + const DTMF_SEVEN = 7; + /** + * Number: '8'. + * + * Generated from protobuf enum DTMF_EIGHT = 8; + */ + const DTMF_EIGHT = 8; + /** + * Number: '9'. + * + * Generated from protobuf enum DTMF_NINE = 9; + */ + const DTMF_NINE = 9; + /** + * Number: '0'. + * + * Generated from protobuf enum DTMF_ZERO = 10; + */ + const DTMF_ZERO = 10; + /** + * Letter: 'A'. + * + * Generated from protobuf enum DTMF_A = 11; + */ + const DTMF_A = 11; + /** + * Letter: 'B'. + * + * Generated from protobuf enum DTMF_B = 12; + */ + const DTMF_B = 12; + /** + * Letter: 'C'. + * + * Generated from protobuf enum DTMF_C = 13; + */ + const DTMF_C = 13; + /** + * Letter: 'D'. + * + * Generated from protobuf enum DTMF_D = 14; + */ + const DTMF_D = 14; + /** + * Asterisk/star: '*'. + * + * Generated from protobuf enum DTMF_STAR = 15; + */ + const DTMF_STAR = 15; + /** + * Pound/diamond/hash/square/gate/octothorpe: '#'. + * + * Generated from protobuf enum DTMF_POUND = 16; + */ + const DTMF_POUND = 16; + + private static $valueToName = [ + self::TELEPHONY_DTMF_UNSPECIFIED => 'TELEPHONY_DTMF_UNSPECIFIED', + self::DTMF_ONE => 'DTMF_ONE', + self::DTMF_TWO => 'DTMF_TWO', + self::DTMF_THREE => 'DTMF_THREE', + self::DTMF_FOUR => 'DTMF_FOUR', + self::DTMF_FIVE => 'DTMF_FIVE', + self::DTMF_SIX => 'DTMF_SIX', + self::DTMF_SEVEN => 'DTMF_SEVEN', + self::DTMF_EIGHT => 'DTMF_EIGHT', + self::DTMF_NINE => 'DTMF_NINE', + self::DTMF_ZERO => 'DTMF_ZERO', + self::DTMF_A => 'DTMF_A', + self::DTMF_B => 'DTMF_B', + self::DTMF_C => 'DTMF_C', + self::DTMF_D => 'DTMF_D', + self::DTMF_STAR => 'DTMF_STAR', + self::DTMF_POUND => 'DTMF_POUND', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/TelephonyDtmfEvents.php b/vendor/google/cloud-dialogflow/src/V2/TelephonyDtmfEvents.php new file mode 100644 index 0000000..ad3a6c6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/TelephonyDtmfEvents.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.TelephonyDtmfEvents + */ +class TelephonyDtmfEvents extends \Google\Protobuf\Internal\Message +{ + /** + * A sequence of TelephonyDtmf digits. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TelephonyDtmf dtmf_events = 1; + */ + private $dtmf_events; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $dtmf_events + * A sequence of TelephonyDtmf digits. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * A sequence of TelephonyDtmf digits. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TelephonyDtmf dtmf_events = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDtmfEvents() + { + return $this->dtmf_events; + } + + /** + * A sequence of TelephonyDtmf digits. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.TelephonyDtmf dtmf_events = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDtmfEvents($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Cloud\Dialogflow\V2\TelephonyDtmf::class); + $this->dtmf_events = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/TextInput.php b/vendor/google/cloud-dialogflow/src/V2/TextInput.php new file mode 100644 index 0000000..601c894 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/TextInput.php @@ -0,0 +1,118 @@ +google.cloud.dialogflow.v2.TextInput + */ +class TextInput extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The UTF-8 encoded natural language text to be processed. + * Text length must not exceed 256 characters for virtual agent interactions. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $text = ''; + /** + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * Required. The UTF-8 encoded natural language text to be processed. + * Text length must not exceed 256 characters for virtual agent interactions. + * @type string $language_code + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Session::initOnce(); + parent::__construct($data); + } + + /** + * Required. The UTF-8 encoded natural language text to be processed. + * Text length must not exceed 256 characters for virtual agent interactions. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Required. The UTF-8 encoded natural language text to be processed. + * Text length must not exceed 256 characters for virtual agent interactions. + * + * Generated from protobuf field string text = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Required. The language of this conversational query. See [Language + * Support](https://cloud.google.com/dialogflow/docs/reference/language) + * for a list of the currently supported language codes. Note that queries in + * the same session do not necessarily need to specify the same language. + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/TextToSpeechSettings.php b/vendor/google/cloud-dialogflow/src/V2/TextToSpeechSettings.php new file mode 100644 index 0000000..ab020b9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/TextToSpeechSettings.php @@ -0,0 +1,197 @@ +google.cloud.dialogflow.v2.TextToSpeechSettings + */ +class TextToSpeechSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Indicates whether text to speech is enabled. Even when this field + * is false, other settings in this proto are still retained. + * + * Generated from protobuf field bool enable_text_to_speech = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $enable_text_to_speech = false; + /** + * Required. Audio encoding of the synthesized audio content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioEncoding output_audio_encoding = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $output_audio_encoding = 0; + /** + * Optional. The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * + * Generated from protobuf field int32 sample_rate_hertz = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $sample_rate_hertz = 0; + /** + * Optional. Configuration of how speech should be synthesized, mapping from + * language (https://cloud.google.com/dialogflow/docs/reference/language) to + * SynthesizeSpeechConfig. + * + * Generated from protobuf field map synthesize_speech_configs = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private $synthesize_speech_configs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $enable_text_to_speech + * Optional. Indicates whether text to speech is enabled. Even when this field + * is false, other settings in this proto are still retained. + * @type int $output_audio_encoding + * Required. Audio encoding of the synthesized audio content. + * @type int $sample_rate_hertz + * Optional. The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * @type array|\Google\Protobuf\Internal\MapField $synthesize_speech_configs + * Optional. Configuration of how speech should be synthesized, mapping from + * language (https://cloud.google.com/dialogflow/docs/reference/language) to + * SynthesizeSpeechConfig. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Indicates whether text to speech is enabled. Even when this field + * is false, other settings in this proto are still retained. + * + * Generated from protobuf field bool enable_text_to_speech = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getEnableTextToSpeech() + { + return $this->enable_text_to_speech; + } + + /** + * Optional. Indicates whether text to speech is enabled. Even when this field + * is false, other settings in this proto are still retained. + * + * Generated from protobuf field bool enable_text_to_speech = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setEnableTextToSpeech($var) + { + GPBUtil::checkBool($var); + $this->enable_text_to_speech = $var; + + return $this; + } + + /** + * Required. Audio encoding of the synthesized audio content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioEncoding output_audio_encoding = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return int + */ + public function getOutputAudioEncoding() + { + return $this->output_audio_encoding; + } + + /** + * Required. Audio encoding of the synthesized audio content. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OutputAudioEncoding output_audio_encoding = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param int $var + * @return $this + */ + public function setOutputAudioEncoding($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\OutputAudioEncoding::class); + $this->output_audio_encoding = $var; + + return $this; + } + + /** + * Optional. The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * + * Generated from protobuf field int32 sample_rate_hertz = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getSampleRateHertz() + { + return $this->sample_rate_hertz; + } + + /** + * Optional. The synthesis sample rate (in hertz) for this audio. If not + * provided, then the synthesizer will use the default sample rate based on + * the audio encoding. If this is different from the voice's natural sample + * rate, then the synthesizer will honor this request by converting to the + * desired sample rate (which might result in worse audio quality). + * + * Generated from protobuf field int32 sample_rate_hertz = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setSampleRateHertz($var) + { + GPBUtil::checkInt32($var); + $this->sample_rate_hertz = $var; + + return $this; + } + + /** + * Optional. Configuration of how speech should be synthesized, mapping from + * language (https://cloud.google.com/dialogflow/docs/reference/language) to + * SynthesizeSpeechConfig. + * + * Generated from protobuf field map synthesize_speech_configs = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\Internal\MapField + */ + public function getSynthesizeSpeechConfigs() + { + return $this->synthesize_speech_configs; + } + + /** + * Optional. Configuration of how speech should be synthesized, mapping from + * language (https://cloud.google.com/dialogflow/docs/reference/language) to + * SynthesizeSpeechConfig. + * + * Generated from protobuf field map synthesize_speech_configs = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setSynthesizeSpeechConfigs($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SynthesizeSpeechConfig::class); + $this->synthesize_speech_configs = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/TrainAgentRequest.php b/vendor/google/cloud-dialogflow/src/V2/TrainAgentRequest.php new file mode 100644 index 0000000..0f5f6c5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/TrainAgentRequest.php @@ -0,0 +1,87 @@ +google.cloud.dialogflow.v2.TrainAgentRequest + */ +class TrainAgentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The project that the agent to train is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $parent = ''; + + /** + * @param string $parent Required. The project that the agent to train is associated with. + * Format: `projects/`. Please see + * {@see AgentsClient::projectName()} for help formatting this field. + * + * @return \Google\Cloud\Dialogflow\V2\TrainAgentRequest + * + * @experimental + */ + public static function build(string $parent): self + { + return (new self()) + ->setParent($parent); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $parent + * Required. The project that the agent to train is associated with. + * Format: `projects/`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Agent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The project that the agent to train is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getParent() + { + return $this->parent; + } + + /** + * Required. The project that the agent to train is associated with. + * Format: `projects/`. + * + * Generated from protobuf field string parent = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setParent($var) + { + GPBUtil::checkString($var, True); + $this->parent = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/TriggerEvent.php b/vendor/google/cloud-dialogflow/src/V2/TriggerEvent.php new file mode 100644 index 0000000..08b1a5a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/TriggerEvent.php @@ -0,0 +1,77 @@ +google.cloud.dialogflow.v2.TriggerEvent + */ +class TriggerEvent +{ + /** + * Default value for TriggerEvent. + * + * Generated from protobuf enum TRIGGER_EVENT_UNSPECIFIED = 0; + */ + const TRIGGER_EVENT_UNSPECIFIED = 0; + /** + * Triggers when each chat message or voice utterance ends. + * + * Generated from protobuf enum END_OF_UTTERANCE = 1; + */ + const END_OF_UTTERANCE = 1; + /** + * Triggers on the conversation manually by API calls, such as + * Conversations.GenerateStatelessSuggestion and + * Conversations.GenerateSuggestions. + * + * Generated from protobuf enum MANUAL_CALL = 2; + */ + const MANUAL_CALL = 2; + /** + * Triggers after each customer message only. + * + * Generated from protobuf enum CUSTOMER_MESSAGE = 3; + */ + const CUSTOMER_MESSAGE = 3; + /** + * Triggers after each agent message only. + * + * Generated from protobuf enum AGENT_MESSAGE = 4; + */ + const AGENT_MESSAGE = 4; + + private static $valueToName = [ + self::TRIGGER_EVENT_UNSPECIFIED => 'TRIGGER_EVENT_UNSPECIFIED', + self::END_OF_UTTERANCE => 'END_OF_UTTERANCE', + self::MANUAL_CALL => 'MANUAL_CALL', + self::CUSTOMER_MESSAGE => 'CUSTOMER_MESSAGE', + self::AGENT_MESSAGE => 'AGENT_MESSAGE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelOperationMetadata.php b/vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelOperationMetadata.php new file mode 100644 index 0000000..95fe6f8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelOperationMetadata.php @@ -0,0 +1,121 @@ +google.cloud.dialogflow.v2.UndeployConversationModelOperationMetadata + */ +class UndeployConversationModelOperationMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + */ + protected $conversation_model = ''; + /** + * Timestamp when the request to undeploy conversation model was submitted. + * The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + */ + protected $create_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $conversation_model + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * @type \Google\Protobuf\Timestamp $create_time + * Timestamp when the request to undeploy conversation model was submitted. + * The time is measured on server side. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @return string + */ + public function getConversationModel() + { + return $this->conversation_model; + } + + /** + * The resource name of the conversation model. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string conversation_model = 1; + * @param string $var + * @return $this + */ + public function setConversationModel($var) + { + GPBUtil::checkString($var, True); + $this->conversation_model = $var; + + return $this; + } + + /** + * Timestamp when the request to undeploy conversation model was submitted. + * The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Timestamp when the request to undeploy conversation model was submitted. + * The time is measured on server side. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 3; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelRequest.php b/vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelRequest.php new file mode 100644 index 0000000..fcc391d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UndeployConversationModelRequest.php @@ -0,0 +1,72 @@ +google.cloud.dialogflow.v2.UndeployConversationModelRequest + */ +class UndeployConversationModelRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation model to undeploy. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Required. The conversation model to undeploy. Format: + * `projects//conversationModels/` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationModel::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation model to undeploy. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Required. The conversation model to undeploy. Format: + * `projects//conversationModels/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateAnswerRecordRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateAnswerRecordRequest.php new file mode 100644 index 0000000..a70cc65 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateAnswerRecordRequest.php @@ -0,0 +1,137 @@ +google.cloud.dialogflow.v2.UpdateAnswerRecordRequest + */ +class UpdateAnswerRecordRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. Answer record to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerRecord answer_record = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $answer_record = null; + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\AnswerRecord $answerRecord Required. Answer record to update. + * @param \Google\Protobuf\FieldMask $updateMask Required. The mask to control which fields get updated. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateAnswerRecordRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\AnswerRecord $answerRecord, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setAnswerRecord($answerRecord) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\AnswerRecord $answer_record + * Required. Answer record to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Required. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AnswerRecord::initOnce(); + parent::__construct($data); + } + + /** + * Required. Answer record to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerRecord answer_record = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\AnswerRecord|null + */ + public function getAnswerRecord() + { + return $this->answer_record; + } + + public function hasAnswerRecord() + { + return isset($this->answer_record); + } + + public function clearAnswerRecord() + { + unset($this->answer_record); + } + + /** + * Required. Answer record to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.AnswerRecord answer_record = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\AnswerRecord $var + * @return $this + */ + public function setAnswerRecord($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\AnswerRecord::class); + $this->answer_record = $var; + + return $this; + } + + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateContextRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateContextRequest.php new file mode 100644 index 0000000..e8e4bb8 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateContextRequest.php @@ -0,0 +1,137 @@ +google.cloud.dialogflow.v2.UpdateContextRequest + */ +class UpdateContextRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The context to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Context context = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $context = null; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Context $context Required. The context to update. + * @param \Google\Protobuf\FieldMask $updateMask Optional. The mask to control which fields get updated. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateContextRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Context $context, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setContext($context) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Context $context + * Required. The context to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Context::initOnce(); + parent::__construct($data); + } + + /** + * Required. The context to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Context context = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Context|null + */ + public function getContext() + { + return $this->context; + } + + public function hasContext() + { + return isset($this->context); + } + + public function clearContext() + { + unset($this->context); + } + + /** + * Required. The context to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Context context = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Context $var + * @return $this + */ + public function setContext($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Context::class); + $this->context = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateConversationProfileRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateConversationProfileRequest.php new file mode 100644 index 0000000..3d1cf19 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateConversationProfileRequest.php @@ -0,0 +1,137 @@ +google.cloud.dialogflow.v2.UpdateConversationProfileRequest + */ +class UpdateConversationProfileRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The conversation profile to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $conversation_profile = null; + /** + * Required. The mask to control which fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\ConversationProfile $conversationProfile Required. The conversation profile to update. + * @param \Google\Protobuf\FieldMask $updateMask Required. The mask to control which fields to update. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateConversationProfileRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\ConversationProfile $conversationProfile, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setConversationProfile($conversationProfile) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\ConversationProfile $conversation_profile + * Required. The conversation profile to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Required. The mask to control which fields to update. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ConversationProfile::initOnce(); + parent::__construct($data); + } + + /** + * Required. The conversation profile to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\ConversationProfile|null + */ + public function getConversationProfile() + { + return $this->conversation_profile; + } + + public function hasConversationProfile() + { + return isset($this->conversation_profile); + } + + public function clearConversationProfile() + { + unset($this->conversation_profile); + } + + /** + * Required. The conversation profile to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ConversationProfile conversation_profile = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\ConversationProfile $var + * @return $this + */ + public function setConversationProfile($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\ConversationProfile::class); + $this->conversation_profile = $var; + + return $this; + } + + /** + * Required. The mask to control which fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Required. The mask to control which fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateDocumentRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateDocumentRequest.php new file mode 100644 index 0000000..a7ed1d6 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateDocumentRequest.php @@ -0,0 +1,147 @@ +google.cloud.dialogflow.v2.UpdateDocumentRequest + */ +class UpdateDocumentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The document to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document document = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $document = null; + /** + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Document $document Required. The document to update. + * @param \Google\Protobuf\FieldMask $updateMask Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateDocumentRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Document $document, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setDocument($document) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Document $document + * Required. The document to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Document::initOnce(); + parent::__construct($data); + } + + /** + * Required. The document to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document document = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Document|null + */ + public function getDocument() + { + return $this->document; + } + + public function hasDocument() + { + return isset($this->document); + } + + public function clearDocument() + { + unset($this->document); + } + + /** + * Required. The document to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Document document = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Document $var + * @return $this + */ + public function setDocument($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Document::class); + $this->document = $var; + + return $this; + } + + /** + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateEntityTypeRequest.php new file mode 100644 index 0000000..0af3206 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateEntityTypeRequest.php @@ -0,0 +1,204 @@ +google.cloud.dialogflow.v2.UpdateEntityTypeRequest + */ +class UpdateEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The entity type to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType entity_type = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $entity_type = null; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\EntityType $entityType Required. The entity type to update. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateEntityTypeRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\EntityType $entityType): self + { + return (new self()) + ->setEntityType($entityType); + } + + /** + * @param \Google\Cloud\Dialogflow\V2\EntityType $entityType Required. The entity type to update. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\UpdateEntityTypeRequest + * + * @experimental + */ + public static function buildFromEntityTypeLanguageCode(\Google\Cloud\Dialogflow\V2\EntityType $entityType, string $languageCode): self + { + return (new self()) + ->setEntityType($entityType) + ->setLanguageCode($languageCode); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\EntityType $entity_type + * Required. The entity type to update. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\EntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The entity type to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType entity_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\EntityType|null + */ + public function getEntityType() + { + return $this->entity_type; + } + + public function hasEntityType() + { + return isset($this->entity_type); + } + + public function clearEntityType() + { + unset($this->entity_type); + } + + /** + * Required. The entity type to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EntityType entity_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\EntityType $var + * @return $this + */ + public function setEntityType($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EntityType::class); + $this->entity_type = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateEnvironmentRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateEnvironmentRequest.php new file mode 100644 index 0000000..de77205 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateEnvironmentRequest.php @@ -0,0 +1,168 @@ +google.cloud.dialogflow.v2.UpdateEnvironmentRequest + */ +class UpdateEnvironmentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The environment to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment environment = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $environment = null; + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mask = null; + /** + * Optional. This field is used to prevent accidental overwrite of the default + * environment, which is an operation that cannot be undone. To confirm that + * the caller desires this overwrite, this field must be explicitly set to + * true when updating the default environment (environment ID = `-`). + * + * Generated from protobuf field bool allow_load_to_draft_and_discard_changes = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $allow_load_to_draft_and_discard_changes = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Environment $environment + * Required. The environment to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Required. The mask to control which fields get updated. + * @type bool $allow_load_to_draft_and_discard_changes + * Optional. This field is used to prevent accidental overwrite of the default + * environment, which is an operation that cannot be undone. To confirm that + * the caller desires this overwrite, this field must be explicitly set to + * true when updating the default environment (environment ID = `-`). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Environment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The environment to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment environment = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Environment|null + */ + public function getEnvironment() + { + return $this->environment; + } + + public function hasEnvironment() + { + return isset($this->environment); + } + + public function clearEnvironment() + { + unset($this->environment); + } + + /** + * Required. The environment to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Environment environment = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Environment $var + * @return $this + */ + public function setEnvironment($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Environment::class); + $this->environment = $var; + + return $this; + } + + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + + /** + * Optional. This field is used to prevent accidental overwrite of the default + * environment, which is an operation that cannot be undone. To confirm that + * the caller desires this overwrite, this field must be explicitly set to + * true when updating the default environment (environment ID = `-`). + * + * Generated from protobuf field bool allow_load_to_draft_and_discard_changes = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return bool + */ + public function getAllowLoadToDraftAndDiscardChanges() + { + return $this->allow_load_to_draft_and_discard_changes; + } + + /** + * Optional. This field is used to prevent accidental overwrite of the default + * environment, which is an operation that cannot be undone. To confirm that + * the caller desires this overwrite, this field must be explicitly set to + * true when updating the default environment (environment ID = `-`). + * + * Generated from protobuf field bool allow_load_to_draft_and_discard_changes = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param bool $var + * @return $this + */ + public function setAllowLoadToDraftAndDiscardChanges($var) + { + GPBUtil::checkBool($var); + $this->allow_load_to_draft_and_discard_changes = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateFulfillmentRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateFulfillmentRequest.php new file mode 100644 index 0000000..3688f9f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateFulfillmentRequest.php @@ -0,0 +1,142 @@ +google.cloud.dialogflow.v2.UpdateFulfillmentRequest + */ +class UpdateFulfillmentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The fulfillment to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment fulfillment = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $fulfillment = null; + /** + * Required. The mask to control which fields get updated. If the mask is not + * present, all fields will be updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Fulfillment $fulfillment Required. The fulfillment to update. + * @param \Google\Protobuf\FieldMask $updateMask Required. The mask to control which fields get updated. If the mask is not + * present, all fields will be updated. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateFulfillmentRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Fulfillment $fulfillment, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setFulfillment($fulfillment) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Fulfillment $fulfillment + * Required. The fulfillment to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Required. The mask to control which fields get updated. If the mask is not + * present, all fields will be updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Fulfillment::initOnce(); + parent::__construct($data); + } + + /** + * Required. The fulfillment to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment fulfillment = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Fulfillment|null + */ + public function getFulfillment() + { + return $this->fulfillment; + } + + public function hasFulfillment() + { + return isset($this->fulfillment); + } + + public function clearFulfillment() + { + unset($this->fulfillment); + } + + /** + * Required. The fulfillment to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Fulfillment fulfillment = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Fulfillment $var + * @return $this + */ + public function setFulfillment($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Fulfillment::class); + $this->fulfillment = $var; + + return $this; + } + + /** + * Required. The mask to control which fields get updated. If the mask is not + * present, all fields will be updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Required. The mask to control which fields get updated. If the mask is not + * present, all fields will be updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateGeneratorRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateGeneratorRequest.php new file mode 100644 index 0000000..583853e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateGeneratorRequest.php @@ -0,0 +1,141 @@ +google.cloud.dialogflow.v2.UpdateGeneratorRequest + */ +class UpdateGeneratorRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The generator to update. + * The name field of generator is to identify the generator to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $generator = null; + /** + * Optional. The list of fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Generator $generator Required. The generator to update. + * The name field of generator is to identify the generator to update. + * @param \Google\Protobuf\FieldMask $updateMask Optional. The list of fields to update. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateGeneratorRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Generator $generator, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setGenerator($generator) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Generator $generator + * Required. The generator to update. + * The name field of generator is to identify the generator to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The list of fields to update. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Generator::initOnce(); + parent::__construct($data); + } + + /** + * Required. The generator to update. + * The name field of generator is to identify the generator to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Generator|null + */ + public function getGenerator() + { + return $this->generator; + } + + public function hasGenerator() + { + return isset($this->generator); + } + + public function clearGenerator() + { + unset($this->generator); + } + + /** + * Required. The generator to update. + * The name field of generator is to identify the generator to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Generator generator = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Generator $var + * @return $this + */ + public function setGenerator($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Generator::class); + $this->generator = $var; + + return $this; + } + + /** + * Optional. The list of fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The list of fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateIntentRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateIntentRequest.php new file mode 100644 index 0000000..0d2f04d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateIntentRequest.php @@ -0,0 +1,246 @@ +google.cloud.dialogflow.v2.UpdateIntentRequest + */ +class UpdateIntentRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The intent to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $intent = null; + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $language_code = ''; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $intent_view = 0; + + /** + * @param \Google\Cloud\Dialogflow\V2\Intent $intent Required. The intent to update. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * @return \Google\Cloud\Dialogflow\V2\UpdateIntentRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Intent $intent, string $languageCode): self + { + return (new self()) + ->setIntent($intent) + ->setLanguageCode($languageCode); + } + + /** + * @param \Google\Cloud\Dialogflow\V2\Intent $intent Required. The intent to update. + * @param string $languageCode Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @param \Google\Protobuf\FieldMask $updateMask Optional. The mask to control which fields get updated. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateIntentRequest + * + * @experimental + */ + public static function buildFromIntentLanguageCodeUpdateMask(\Google\Cloud\Dialogflow\V2\Intent $intent, string $languageCode, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setIntent($intent) + ->setLanguageCode($languageCode) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Intent $intent + * Required. The intent to update. + * @type string $language_code + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * @type int $intent_view + * Optional. The resource view to apply to the returned intent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Intent::initOnce(); + parent::__construct($data); + } + + /** + * Required. The intent to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Intent|null + */ + public function getIntent() + { + return $this->intent; + } + + public function hasIntent() + { + return isset($this->intent); + } + + public function clearIntent() + { + unset($this->intent); + } + + /** + * Required. The intent to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Intent intent = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Intent $var + * @return $this + */ + public function setIntent($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Intent::class); + $this->intent = $var; + + return $this; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. The language used to access language-specific data. + * If not specified, the agent's default language is used. + * For more information, see + * [Multilingual intent and entity + * data](https://cloud.google.com/dialogflow/docs/agents-multilingual#intent-entity). + * + * Generated from protobuf field string language_code = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getIntentView() + { + return $this->intent_view; + } + + /** + * Optional. The resource view to apply to the returned intent. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.IntentView intent_view = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setIntentView($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\IntentView::class); + $this->intent_view = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateKnowledgeBaseRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateKnowledgeBaseRequest.php new file mode 100644 index 0000000..827f8ac --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateKnowledgeBaseRequest.php @@ -0,0 +1,147 @@ +google.cloud.dialogflow.v2.UpdateKnowledgeBaseRequest + */ +class UpdateKnowledgeBaseRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The knowledge base to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeBase knowledge_base = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $knowledge_base = null; + /** + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\KnowledgeBase $knowledgeBase Required. The knowledge base to update. + * @param \Google\Protobuf\FieldMask $updateMask Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateKnowledgeBaseRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\KnowledgeBase $knowledgeBase, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setKnowledgeBase($knowledgeBase) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\KnowledgeBase $knowledge_base + * Required. The knowledge base to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\KnowledgeBase::initOnce(); + parent::__construct($data); + } + + /** + * Required. The knowledge base to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeBase knowledge_base = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\KnowledgeBase|null + */ + public function getKnowledgeBase() + { + return $this->knowledge_base; + } + + public function hasKnowledgeBase() + { + return isset($this->knowledge_base); + } + + public function clearKnowledgeBase() + { + unset($this->knowledge_base); + } + + /** + * Required. The knowledge base to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.KnowledgeBase knowledge_base = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\KnowledgeBase $var + * @return $this + */ + public function setKnowledgeBase($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\KnowledgeBase::class); + $this->knowledge_base = $var; + + return $this; + } + + /** + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. Not specified means `update all`. + * Currently, only `display_name` can be updated, an InvalidArgument will be + * returned for attempting to update other fields. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateParticipantRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateParticipantRequest.php new file mode 100644 index 0000000..75d3294 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateParticipantRequest.php @@ -0,0 +1,137 @@ +google.cloud.dialogflow.v2.UpdateParticipantRequest + */ +class UpdateParticipantRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The participant to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant participant = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $participant = null; + /** + * Required. The mask to specify which fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Participant $participant Required. The participant to update. + * @param \Google\Protobuf\FieldMask $updateMask Required. The mask to specify which fields to update. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateParticipantRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Participant $participant, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setParticipant($participant) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Participant $participant + * Required. The participant to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Required. The mask to specify which fields to update. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Participant::initOnce(); + parent::__construct($data); + } + + /** + * Required. The participant to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant participant = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Participant|null + */ + public function getParticipant() + { + return $this->participant; + } + + public function hasParticipant() + { + return isset($this->participant); + } + + public function clearParticipant() + { + unset($this->participant); + } + + /** + * Required. The participant to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Participant participant = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Participant $var + * @return $this + */ + public function setParticipant($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Participant::class); + $this->participant = $var; + + return $this; + } + + /** + * Required. The mask to specify which fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Required. The mask to specify which fields to update. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateSessionEntityTypeRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateSessionEntityTypeRequest.php new file mode 100644 index 0000000..27308cf --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateSessionEntityTypeRequest.php @@ -0,0 +1,150 @@ +google.cloud.dialogflow.v2.UpdateSessionEntityTypeRequest + */ +class UpdateSessionEntityTypeRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The session entity type to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType session_entity_type = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $session_entity_type = null; + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\SessionEntityType $sessionEntityType Required. The session entity type to update. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateSessionEntityTypeRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\SessionEntityType $sessionEntityType): self + { + return (new self()) + ->setSessionEntityType($sessionEntityType); + } + + /** + * @param \Google\Cloud\Dialogflow\V2\SessionEntityType $sessionEntityType Required. The session entity type to update. + * @param \Google\Protobuf\FieldMask $updateMask Optional. The mask to control which fields get updated. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateSessionEntityTypeRequest + * + * @experimental + */ + public static function buildFromSessionEntityTypeUpdateMask(\Google\Cloud\Dialogflow\V2\SessionEntityType $sessionEntityType, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setSessionEntityType($sessionEntityType) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\SessionEntityType $session_entity_type + * Required. The session entity type to update. + * @type \Google\Protobuf\FieldMask $update_mask + * Optional. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\SessionEntityType::initOnce(); + parent::__construct($data); + } + + /** + * Required. The session entity type to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType session_entity_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\SessionEntityType|null + */ + public function getSessionEntityType() + { + return $this->session_entity_type; + } + + public function hasSessionEntityType() + { + return isset($this->session_entity_type); + } + + public function clearSessionEntityType() + { + unset($this->session_entity_type); + } + + /** + * Required. The session entity type to update. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SessionEntityType session_entity_type = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\SessionEntityType $var + * @return $this + */ + public function setSessionEntityType($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\SessionEntityType::class); + $this->session_entity_type = $var; + + return $this; + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Optional. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/UpdateVersionRequest.php b/vendor/google/cloud-dialogflow/src/V2/UpdateVersionRequest.php new file mode 100644 index 0000000..a5327be --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/UpdateVersionRequest.php @@ -0,0 +1,158 @@ +google.cloud.dialogflow.v2.UpdateVersionRequest + */ +class UpdateVersionRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The version to update. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version version = 1 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $version = null; + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $update_mask = null; + + /** + * @param \Google\Cloud\Dialogflow\V2\Version $version Required. The version to update. + * Supported formats: + * + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * @param \Google\Protobuf\FieldMask $updateMask Required. The mask to control which fields get updated. + * + * @return \Google\Cloud\Dialogflow\V2\UpdateVersionRequest + * + * @experimental + */ + public static function build(\Google\Cloud\Dialogflow\V2\Version $version, \Google\Protobuf\FieldMask $updateMask): self + { + return (new self()) + ->setVersion($version) + ->setUpdateMask($updateMask); + } + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Dialogflow\V2\Version $version + * Required. The version to update. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * @type \Google\Protobuf\FieldMask $update_mask + * Required. The mask to control which fields get updated. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * Required. The version to update. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version version = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Dialogflow\V2\Version|null + */ + public function getVersion() + { + return $this->version; + } + + public function hasVersion() + { + return isset($this->version); + } + + public function clearVersion() + { + unset($this->version); + } + + /** + * Required. The version to update. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version version = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Dialogflow\V2\Version $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\Version::class); + $this->version = $var; + + return $this; + } + + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * Required. The mask to control which fields get updated. + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ValidationError.php b/vendor/google/cloud-dialogflow/src/V2/ValidationError.php new file mode 100644 index 0000000..77f102d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ValidationError.php @@ -0,0 +1,183 @@ +google.cloud.dialogflow.v2.ValidationError + */ +class ValidationError extends \Google\Protobuf\Internal\Message +{ + /** + * The severity of the error. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ValidationError.Severity severity = 1; + */ + protected $severity = 0; + /** + * The names of the entries that the error is associated with. + * Format: + * - `projects//agent`, if the error is associated with the entire + * agent. + * - `projects//agent/intents/`, if the error is + * associated with certain intents. + * - `projects//agent/intents//trainingPhrases/`, if the error is associated with + * certain intent training phrases. + * - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. + * - `projects//agent/entities/`, if the error is + * associated with certain entities. + * + * Generated from protobuf field repeated string entries = 3; + */ + private $entries; + /** + * The detailed error message. + * + * Generated from protobuf field string error_message = 4; + */ + protected $error_message = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $severity + * The severity of the error. + * @type array|\Google\Protobuf\Internal\RepeatedField $entries + * The names of the entries that the error is associated with. + * Format: + * - `projects//agent`, if the error is associated with the entire + * agent. + * - `projects//agent/intents/`, if the error is + * associated with certain intents. + * - `projects//agent/intents//trainingPhrases/`, if the error is associated with + * certain intent training phrases. + * - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. + * - `projects//agent/entities/`, if the error is + * associated with certain entities. + * @type string $error_message + * The detailed error message. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ValidationResult::initOnce(); + parent::__construct($data); + } + + /** + * The severity of the error. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ValidationError.Severity severity = 1; + * @return int + */ + public function getSeverity() + { + return $this->severity; + } + + /** + * The severity of the error. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.ValidationError.Severity severity = 1; + * @param int $var + * @return $this + */ + public function setSeverity($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\ValidationError\Severity::class); + $this->severity = $var; + + return $this; + } + + /** + * The names of the entries that the error is associated with. + * Format: + * - `projects//agent`, if the error is associated with the entire + * agent. + * - `projects//agent/intents/`, if the error is + * associated with certain intents. + * - `projects//agent/intents//trainingPhrases/`, if the error is associated with + * certain intent training phrases. + * - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. + * - `projects//agent/entities/`, if the error is + * associated with certain entities. + * + * Generated from protobuf field repeated string entries = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEntries() + { + return $this->entries; + } + + /** + * The names of the entries that the error is associated with. + * Format: + * - `projects//agent`, if the error is associated with the entire + * agent. + * - `projects//agent/intents/`, if the error is + * associated with certain intents. + * - `projects//agent/intents//trainingPhrases/`, if the error is associated with + * certain intent training phrases. + * - `projects//agent/intents//parameters/`, if the error is associated with certain intent parameters. + * - `projects//agent/entities/`, if the error is + * associated with certain entities. + * + * Generated from protobuf field repeated string entries = 3; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEntries($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->entries = $arr; + + return $this; + } + + /** + * The detailed error message. + * + * Generated from protobuf field string error_message = 4; + * @return string + */ + public function getErrorMessage() + { + return $this->error_message; + } + + /** + * The detailed error message. + * + * Generated from protobuf field string error_message = 4; + * @param string $var + * @return $this + */ + public function setErrorMessage($var) + { + GPBUtil::checkString($var, True); + $this->error_message = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/ValidationError/Severity.php b/vendor/google/cloud-dialogflow/src/V2/ValidationError/Severity.php new file mode 100644 index 0000000..cb39693 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ValidationError/Severity.php @@ -0,0 +1,76 @@ +google.cloud.dialogflow.v2.ValidationError.Severity + */ +class Severity +{ + /** + * Not specified. This value should never be used. + * + * Generated from protobuf enum SEVERITY_UNSPECIFIED = 0; + */ + const SEVERITY_UNSPECIFIED = 0; + /** + * The agent doesn't follow Dialogflow best practices. + * + * Generated from protobuf enum INFO = 1; + */ + const INFO = 1; + /** + * The agent may not behave as expected. + * + * Generated from protobuf enum WARNING = 2; + */ + const WARNING = 2; + /** + * The agent may experience partial failures. + * + * Generated from protobuf enum ERROR = 3; + */ + const ERROR = 3; + /** + * The agent may completely fail. + * + * Generated from protobuf enum CRITICAL = 4; + */ + const CRITICAL = 4; + + private static $valueToName = [ + self::SEVERITY_UNSPECIFIED => 'SEVERITY_UNSPECIFIED', + self::INFO => 'INFO', + self::WARNING => 'WARNING', + self::ERROR => 'ERROR', + self::CRITICAL => 'CRITICAL', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/ValidationResult.php b/vendor/google/cloud-dialogflow/src/V2/ValidationResult.php new file mode 100644 index 0000000..2ccd637 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/ValidationResult.php @@ -0,0 +1,67 @@ +google.cloud.dialogflow.v2.ValidationResult + */ +class ValidationResult extends \Google\Protobuf\Internal\Message +{ + /** + * Contains all validation errors. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ValidationError validation_errors = 1; + */ + private $validation_errors; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Dialogflow\V2\ValidationError>|\Google\Protobuf\Internal\RepeatedField $validation_errors + * Contains all validation errors. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\ValidationResult::initOnce(); + parent::__construct($data); + } + + /** + * Contains all validation errors. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ValidationError validation_errors = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getValidationErrors() + { + return $this->validation_errors; + } + + /** + * Contains all validation errors. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.ValidationError validation_errors = 1; + * @param array<\Google\Cloud\Dialogflow\V2\ValidationError>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setValidationErrors($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\ValidationError::class); + $this->validation_errors = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Version.php b/vendor/google/cloud-dialogflow/src/V2/Version.php new file mode 100644 index 0000000..8e7a86f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Version.php @@ -0,0 +1,254 @@ +google.cloud.dialogflow.v2.Version + */ +class Version extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. The unique identifier of this agent version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $name = ''; + /** + * Optional. The developer-provided description of this version. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $description = ''; + /** + * Output only. The sequential number of this version. This field is read-only + * which means it cannot be set by create and update methods. + * + * Generated from protobuf field int32 version_number = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $version_number = 0; + /** + * Output only. The creation time of this version. This field is read-only, + * i.e., it cannot be set by create and update methods. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $create_time = null; + /** + * Output only. The status of this version. This field is read-only and cannot + * be set by create and update methods. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version.VersionStatus status = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $status = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Output only. The unique identifier of this agent version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * @type string $description + * Optional. The developer-provided description of this version. + * @type int $version_number + * Output only. The sequential number of this version. This field is read-only + * which means it cannot be set by create and update methods. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The creation time of this version. This field is read-only, + * i.e., it cannot be set by create and update methods. + * @type int $status + * Output only. The status of this version. This field is read-only and cannot + * be set by create and update methods. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Version::initOnce(); + parent::__construct($data); + } + + /** + * Output only. The unique identifier of this agent version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Output only. The unique identifier of this agent version. + * Supported formats: + * - `projects//agent/versions/` + * - `projects//locations//agent/versions/` + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The developer-provided description of this version. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. The developer-provided description of this version. + * + * Generated from protobuf field string description = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Output only. The sequential number of this version. This field is read-only + * which means it cannot be set by create and update methods. + * + * Generated from protobuf field int32 version_number = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getVersionNumber() + { + return $this->version_number; + } + + /** + * Output only. The sequential number of this version. This field is read-only + * which means it cannot be set by create and update methods. + * + * Generated from protobuf field int32 version_number = 3 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setVersionNumber($var) + { + GPBUtil::checkInt32($var); + $this->version_number = $var; + + return $this; + } + + /** + * Output only. The creation time of this version. This field is read-only, + * i.e., it cannot be set by create and update methods. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The creation time of this version. This field is read-only, + * i.e., it cannot be set by create and update methods. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. The status of this version. This field is read-only and cannot + * be set by create and update methods. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version.VersionStatus status = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return int + */ + public function getStatus() + { + return $this->status; + } + + /** + * Output only. The status of this version. This field is read-only and cannot + * be set by create and update methods. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.Version.VersionStatus status = 6 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param int $var + * @return $this + */ + public function setStatus($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\Version\VersionStatus::class); + $this->status = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/Version/VersionStatus.php b/vendor/google/cloud-dialogflow/src/V2/Version/VersionStatus.php new file mode 100644 index 0000000..1a44423 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/Version/VersionStatus.php @@ -0,0 +1,69 @@ +google.cloud.dialogflow.v2.Version.VersionStatus + */ +class VersionStatus +{ + /** + * Not specified. This value is not used. + * + * Generated from protobuf enum VERSION_STATUS_UNSPECIFIED = 0; + */ + const VERSION_STATUS_UNSPECIFIED = 0; + /** + * Version is not ready to serve (e.g. training is in progress). + * + * Generated from protobuf enum IN_PROGRESS = 1; + */ + const IN_PROGRESS = 1; + /** + * Version is ready to serve. + * + * Generated from protobuf enum READY = 2; + */ + const READY = 2; + /** + * Version training failed. + * + * Generated from protobuf enum FAILED = 3; + */ + const FAILED = 3; + + private static $valueToName = [ + self::VERSION_STATUS_UNSPECIFIED => 'VERSION_STATUS_UNSPECIFIED', + self::IN_PROGRESS => 'IN_PROGRESS', + self::READY => 'READY', + self::FAILED => 'FAILED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/cloud-dialogflow/src/V2/VoiceSelectionParams.php b/vendor/google/cloud-dialogflow/src/V2/VoiceSelectionParams.php new file mode 100644 index 0000000..cf03464 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/VoiceSelectionParams.php @@ -0,0 +1,129 @@ +google.cloud.dialogflow.v2.VoiceSelectionParams + */ +class VoiceSelectionParams extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The name of the voice. If not set, the service will choose a + * voice based on the other parameters such as language_code and + * [ssml_gender][google.cloud.dialogflow.v2.VoiceSelectionParams.ssml_gender]. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $name = ''; + /** + * Optional. The preferred gender of the voice. If not set, the service will + * choose a voice based on the other parameters such as language_code and + * [name][google.cloud.dialogflow.v2.VoiceSelectionParams.name]. Note that + * this is only a preference, not requirement. If a voice of the appropriate + * gender is not available, the synthesizer should substitute a voice with a + * different gender rather than failing the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SsmlVoiceGender ssml_gender = 2 [(.google.api.field_behavior) = OPTIONAL]; + */ + protected $ssml_gender = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The name of the voice. If not set, the service will choose a + * voice based on the other parameters such as language_code and + * [ssml_gender][google.cloud.dialogflow.v2.VoiceSelectionParams.ssml_gender]. + * @type int $ssml_gender + * Optional. The preferred gender of the voice. If not set, the service will + * choose a voice based on the other parameters such as language_code and + * [name][google.cloud.dialogflow.v2.VoiceSelectionParams.name]. Note that + * this is only a preference, not requirement. If a voice of the appropriate + * gender is not available, the synthesizer should substitute a voice with a + * different gender rather than failing the request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\AudioConfig::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The name of the voice. If not set, the service will choose a + * voice based on the other parameters such as language_code and + * [ssml_gender][google.cloud.dialogflow.v2.VoiceSelectionParams.ssml_gender]. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The name of the voice. If not set, the service will choose a + * voice based on the other parameters such as language_code and + * [ssml_gender][google.cloud.dialogflow.v2.VoiceSelectionParams.ssml_gender]. + * + * Generated from protobuf field string name = 1 [(.google.api.field_behavior) = OPTIONAL]; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. The preferred gender of the voice. If not set, the service will + * choose a voice based on the other parameters such as language_code and + * [name][google.cloud.dialogflow.v2.VoiceSelectionParams.name]. Note that + * this is only a preference, not requirement. If a voice of the appropriate + * gender is not available, the synthesizer should substitute a voice with a + * different gender rather than failing the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SsmlVoiceGender ssml_gender = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @return int + */ + public function getSsmlGender() + { + return $this->ssml_gender; + } + + /** + * Optional. The preferred gender of the voice. If not set, the service will + * choose a voice based on the other parameters such as language_code and + * [name][google.cloud.dialogflow.v2.VoiceSelectionParams.name]. Note that + * this is only a preference, not requirement. If a voice of the appropriate + * gender is not available, the synthesizer should substitute a voice with a + * different gender rather than failing the request. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.SsmlVoiceGender ssml_gender = 2 [(.google.api.field_behavior) = OPTIONAL]; + * @param int $var + * @return $this + */ + public function setSsmlGender($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Dialogflow\V2\SsmlVoiceGender::class); + $this->ssml_gender = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/WebhookRequest.php b/vendor/google/cloud-dialogflow/src/V2/WebhookRequest.php new file mode 100644 index 0000000..e00b19d --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/WebhookRequest.php @@ -0,0 +1,217 @@ +google.cloud.dialogflow.v2.WebhookRequest + */ +class WebhookRequest extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of detectIntent request session. + * Can be used to identify end-user inside webhook implementation. + * Format: `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. + * + * Generated from protobuf field string session = 4; + */ + protected $session = ''; + /** + * The unique identifier of the response. Contains the same value as + * `[Streaming]DetectIntentResponse.response_id`. + * + * Generated from protobuf field string response_id = 1; + */ + protected $response_id = ''; + /** + * The result of the conversational query or event processing. Contains the + * same value as `[Streaming]DetectIntentResponse.query_result`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 2; + */ + protected $query_result = null; + /** + * Optional. The contents of the original request that was passed to + * `[Streaming]DetectIntent` call. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OriginalDetectIntentRequest original_detect_intent_request = 3; + */ + protected $original_detect_intent_request = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $session + * The unique identifier of detectIntent request session. + * Can be used to identify end-user inside webhook implementation. + * Format: `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. + * @type string $response_id + * The unique identifier of the response. Contains the same value as + * `[Streaming]DetectIntentResponse.response_id`. + * @type \Google\Cloud\Dialogflow\V2\QueryResult $query_result + * The result of the conversational query or event processing. Contains the + * same value as `[Streaming]DetectIntentResponse.query_result`. + * @type \Google\Cloud\Dialogflow\V2\OriginalDetectIntentRequest $original_detect_intent_request + * Optional. The contents of the original request that was passed to + * `[Streaming]DetectIntent` call. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Webhook::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of detectIntent request session. + * Can be used to identify end-user inside webhook implementation. + * Format: `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. + * + * Generated from protobuf field string session = 4; + * @return string + */ + public function getSession() + { + return $this->session; + } + + /** + * The unique identifier of detectIntent request session. + * Can be used to identify end-user inside webhook implementation. + * Format: `projects//agent/sessions/`, or + * `projects//agent/environments//users//sessions/`. + * + * Generated from protobuf field string session = 4; + * @param string $var + * @return $this + */ + public function setSession($var) + { + GPBUtil::checkString($var, True); + $this->session = $var; + + return $this; + } + + /** + * The unique identifier of the response. Contains the same value as + * `[Streaming]DetectIntentResponse.response_id`. + * + * Generated from protobuf field string response_id = 1; + * @return string + */ + public function getResponseId() + { + return $this->response_id; + } + + /** + * The unique identifier of the response. Contains the same value as + * `[Streaming]DetectIntentResponse.response_id`. + * + * Generated from protobuf field string response_id = 1; + * @param string $var + * @return $this + */ + public function setResponseId($var) + { + GPBUtil::checkString($var, True); + $this->response_id = $var; + + return $this; + } + + /** + * The result of the conversational query or event processing. Contains the + * same value as `[Streaming]DetectIntentResponse.query_result`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 2; + * @return \Google\Cloud\Dialogflow\V2\QueryResult|null + */ + public function getQueryResult() + { + return $this->query_result; + } + + public function hasQueryResult() + { + return isset($this->query_result); + } + + public function clearQueryResult() + { + unset($this->query_result); + } + + /** + * The result of the conversational query or event processing. Contains the + * same value as `[Streaming]DetectIntentResponse.query_result`. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.QueryResult query_result = 2; + * @param \Google\Cloud\Dialogflow\V2\QueryResult $var + * @return $this + */ + public function setQueryResult($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\QueryResult::class); + $this->query_result = $var; + + return $this; + } + + /** + * Optional. The contents of the original request that was passed to + * `[Streaming]DetectIntent` call. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OriginalDetectIntentRequest original_detect_intent_request = 3; + * @return \Google\Cloud\Dialogflow\V2\OriginalDetectIntentRequest|null + */ + public function getOriginalDetectIntentRequest() + { + return $this->original_detect_intent_request; + } + + public function hasOriginalDetectIntentRequest() + { + return isset($this->original_detect_intent_request); + } + + public function clearOriginalDetectIntentRequest() + { + unset($this->original_detect_intent_request); + } + + /** + * Optional. The contents of the original request that was passed to + * `[Streaming]DetectIntent` call. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.OriginalDetectIntentRequest original_detect_intent_request = 3; + * @param \Google\Cloud\Dialogflow\V2\OriginalDetectIntentRequest $var + * @return $this + */ + public function setOriginalDetectIntentRequest($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\OriginalDetectIntentRequest::class); + $this->original_detect_intent_request = $var; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/WebhookResponse.php b/vendor/google/cloud-dialogflow/src/V2/WebhookResponse.php new file mode 100644 index 0000000..df629dd --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/WebhookResponse.php @@ -0,0 +1,430 @@ +google.cloud.dialogflow.v2.WebhookResponse + */ +class WebhookResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The text response message intended for the end-user. + * It is recommended to use `fulfillment_messages.text.text[0]` instead. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_text][google.cloud.dialogflow.v2.QueryResult.fulfillment_text] + * sent to the integration or API caller. + * + * Generated from protobuf field string fulfillment_text = 1; + */ + protected $fulfillment_text = ''; + /** + * Optional. The rich response messages intended for the end-user. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_messages][google.cloud.dialogflow.v2.QueryResult.fulfillment_messages] + * sent to the integration or API caller. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message fulfillment_messages = 2; + */ + private $fulfillment_messages; + /** + * Optional. A custom field used to identify the webhook source. + * Arbitrary strings are supported. + * When provided, Dialogflow uses this field to populate + * [QueryResult.webhook_source][google.cloud.dialogflow.v2.QueryResult.webhook_source] + * sent to the integration or API caller. + * + * Generated from protobuf field string source = 3; + */ + protected $source = ''; + /** + * Optional. This field can be used to pass custom data from your webhook to + * the integration or API caller. Arbitrary JSON objects are supported. When + * provided, Dialogflow uses this field to populate + * [QueryResult.webhook_payload][google.cloud.dialogflow.v2.QueryResult.webhook_payload] + * sent to the integration or API caller. This field is also used by the + * [Google Assistant + * integration](https://cloud.google.com/dialogflow/docs/integrations/aog) + * for rich response messages. + * See the format definition at [Google Assistant Dialogflow webhook + * format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json) + * + * Generated from protobuf field .google.protobuf.Struct payload = 4; + */ + protected $payload = null; + /** + * Optional. The collection of output contexts that will overwrite currently + * active contexts for the session and reset their lifespans. + * When provided, Dialogflow uses this field to populate + * [QueryResult.output_contexts][google.cloud.dialogflow.v2.QueryResult.output_contexts] + * sent to the integration or API caller. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 5; + */ + private $output_contexts; + /** + * Optional. Invokes the supplied events. + * When this field is set, Dialogflow ignores the `fulfillment_text`, + * `fulfillment_messages`, and `payload` fields. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput followup_event_input = 6; + */ + protected $followup_event_input = null; + /** + * Optional. Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session. Setting this data from a webhook overwrites + * the session entity types that have been set using `detectIntent`, + * `streamingDetectIntent` or + * [SessionEntityType][google.cloud.dialogflow.v2.SessionEntityType] + * management methods. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 10; + */ + private $session_entity_types; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $fulfillment_text + * Optional. The text response message intended for the end-user. + * It is recommended to use `fulfillment_messages.text.text[0]` instead. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_text][google.cloud.dialogflow.v2.QueryResult.fulfillment_text] + * sent to the integration or API caller. + * @type array<\Google\Cloud\Dialogflow\V2\Intent\Message>|\Google\Protobuf\Internal\RepeatedField $fulfillment_messages + * Optional. The rich response messages intended for the end-user. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_messages][google.cloud.dialogflow.v2.QueryResult.fulfillment_messages] + * sent to the integration or API caller. + * @type string $source + * Optional. A custom field used to identify the webhook source. + * Arbitrary strings are supported. + * When provided, Dialogflow uses this field to populate + * [QueryResult.webhook_source][google.cloud.dialogflow.v2.QueryResult.webhook_source] + * sent to the integration or API caller. + * @type \Google\Protobuf\Struct $payload + * Optional. This field can be used to pass custom data from your webhook to + * the integration or API caller. Arbitrary JSON objects are supported. When + * provided, Dialogflow uses this field to populate + * [QueryResult.webhook_payload][google.cloud.dialogflow.v2.QueryResult.webhook_payload] + * sent to the integration or API caller. This field is also used by the + * [Google Assistant + * integration](https://cloud.google.com/dialogflow/docs/integrations/aog) + * for rich response messages. + * See the format definition at [Google Assistant Dialogflow webhook + * format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json) + * @type array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $output_contexts + * Optional. The collection of output contexts that will overwrite currently + * active contexts for the session and reset their lifespans. + * When provided, Dialogflow uses this field to populate + * [QueryResult.output_contexts][google.cloud.dialogflow.v2.QueryResult.output_contexts] + * sent to the integration or API caller. + * @type \Google\Cloud\Dialogflow\V2\EventInput $followup_event_input + * Optional. Invokes the supplied events. + * When this field is set, Dialogflow ignores the `fulfillment_text`, + * `fulfillment_messages`, and `payload` fields. + * @type array<\Google\Cloud\Dialogflow\V2\SessionEntityType>|\Google\Protobuf\Internal\RepeatedField $session_entity_types + * Optional. Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session. Setting this data from a webhook overwrites + * the session entity types that have been set using `detectIntent`, + * `streamingDetectIntent` or + * [SessionEntityType][google.cloud.dialogflow.v2.SessionEntityType] + * management methods. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Dialogflow\V2\Webhook::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The text response message intended for the end-user. + * It is recommended to use `fulfillment_messages.text.text[0]` instead. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_text][google.cloud.dialogflow.v2.QueryResult.fulfillment_text] + * sent to the integration or API caller. + * + * Generated from protobuf field string fulfillment_text = 1; + * @return string + */ + public function getFulfillmentText() + { + return $this->fulfillment_text; + } + + /** + * Optional. The text response message intended for the end-user. + * It is recommended to use `fulfillment_messages.text.text[0]` instead. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_text][google.cloud.dialogflow.v2.QueryResult.fulfillment_text] + * sent to the integration or API caller. + * + * Generated from protobuf field string fulfillment_text = 1; + * @param string $var + * @return $this + */ + public function setFulfillmentText($var) + { + GPBUtil::checkString($var, True); + $this->fulfillment_text = $var; + + return $this; + } + + /** + * Optional. The rich response messages intended for the end-user. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_messages][google.cloud.dialogflow.v2.QueryResult.fulfillment_messages] + * sent to the integration or API caller. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message fulfillment_messages = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFulfillmentMessages() + { + return $this->fulfillment_messages; + } + + /** + * Optional. The rich response messages intended for the end-user. + * When provided, Dialogflow uses this field to populate + * [QueryResult.fulfillment_messages][google.cloud.dialogflow.v2.QueryResult.fulfillment_messages] + * sent to the integration or API caller. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Intent.Message fulfillment_messages = 2; + * @param array<\Google\Cloud\Dialogflow\V2\Intent\Message>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFulfillmentMessages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Intent\Message::class); + $this->fulfillment_messages = $arr; + + return $this; + } + + /** + * Optional. A custom field used to identify the webhook source. + * Arbitrary strings are supported. + * When provided, Dialogflow uses this field to populate + * [QueryResult.webhook_source][google.cloud.dialogflow.v2.QueryResult.webhook_source] + * sent to the integration or API caller. + * + * Generated from protobuf field string source = 3; + * @return string + */ + public function getSource() + { + return $this->source; + } + + /** + * Optional. A custom field used to identify the webhook source. + * Arbitrary strings are supported. + * When provided, Dialogflow uses this field to populate + * [QueryResult.webhook_source][google.cloud.dialogflow.v2.QueryResult.webhook_source] + * sent to the integration or API caller. + * + * Generated from protobuf field string source = 3; + * @param string $var + * @return $this + */ + public function setSource($var) + { + GPBUtil::checkString($var, True); + $this->source = $var; + + return $this; + } + + /** + * Optional. This field can be used to pass custom data from your webhook to + * the integration or API caller. Arbitrary JSON objects are supported. When + * provided, Dialogflow uses this field to populate + * [QueryResult.webhook_payload][google.cloud.dialogflow.v2.QueryResult.webhook_payload] + * sent to the integration or API caller. This field is also used by the + * [Google Assistant + * integration](https://cloud.google.com/dialogflow/docs/integrations/aog) + * for rich response messages. + * See the format definition at [Google Assistant Dialogflow webhook + * format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json) + * + * Generated from protobuf field .google.protobuf.Struct payload = 4; + * @return \Google\Protobuf\Struct|null + */ + public function getPayload() + { + return $this->payload; + } + + public function hasPayload() + { + return isset($this->payload); + } + + public function clearPayload() + { + unset($this->payload); + } + + /** + * Optional. This field can be used to pass custom data from your webhook to + * the integration or API caller. Arbitrary JSON objects are supported. When + * provided, Dialogflow uses this field to populate + * [QueryResult.webhook_payload][google.cloud.dialogflow.v2.QueryResult.webhook_payload] + * sent to the integration or API caller. This field is also used by the + * [Google Assistant + * integration](https://cloud.google.com/dialogflow/docs/integrations/aog) + * for rich response messages. + * See the format definition at [Google Assistant Dialogflow webhook + * format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json) + * + * Generated from protobuf field .google.protobuf.Struct payload = 4; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setPayload($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->payload = $var; + + return $this; + } + + /** + * Optional. The collection of output contexts that will overwrite currently + * active contexts for the session and reset their lifespans. + * When provided, Dialogflow uses this field to populate + * [QueryResult.output_contexts][google.cloud.dialogflow.v2.QueryResult.output_contexts] + * sent to the integration or API caller. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getOutputContexts() + { + return $this->output_contexts; + } + + /** + * Optional. The collection of output contexts that will overwrite currently + * active contexts for the session and reset their lifespans. + * When provided, Dialogflow uses this field to populate + * [QueryResult.output_contexts][google.cloud.dialogflow.v2.QueryResult.output_contexts] + * sent to the integration or API caller. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.Context output_contexts = 5; + * @param array<\Google\Cloud\Dialogflow\V2\Context>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setOutputContexts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\Context::class); + $this->output_contexts = $arr; + + return $this; + } + + /** + * Optional. Invokes the supplied events. + * When this field is set, Dialogflow ignores the `fulfillment_text`, + * `fulfillment_messages`, and `payload` fields. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput followup_event_input = 6; + * @return \Google\Cloud\Dialogflow\V2\EventInput|null + */ + public function getFollowupEventInput() + { + return $this->followup_event_input; + } + + public function hasFollowupEventInput() + { + return isset($this->followup_event_input); + } + + public function clearFollowupEventInput() + { + unset($this->followup_event_input); + } + + /** + * Optional. Invokes the supplied events. + * When this field is set, Dialogflow ignores the `fulfillment_text`, + * `fulfillment_messages`, and `payload` fields. + * + * Generated from protobuf field .google.cloud.dialogflow.v2.EventInput followup_event_input = 6; + * @param \Google\Cloud\Dialogflow\V2\EventInput $var + * @return $this + */ + public function setFollowupEventInput($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Dialogflow\V2\EventInput::class); + $this->followup_event_input = $var; + + return $this; + } + + /** + * Optional. Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session. Setting this data from a webhook overwrites + * the session entity types that have been set using `detectIntent`, + * `streamingDetectIntent` or + * [SessionEntityType][google.cloud.dialogflow.v2.SessionEntityType] + * management methods. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 10; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSessionEntityTypes() + { + return $this->session_entity_types; + } + + /** + * Optional. Additional session entity types to replace or extend developer + * entity types with. The entity synonyms apply to all languages and persist + * for the session. Setting this data from a webhook overwrites + * the session entity types that have been set using `detectIntent`, + * `streamingDetectIntent` or + * [SessionEntityType][google.cloud.dialogflow.v2.SessionEntityType] + * management methods. + * + * Generated from protobuf field repeated .google.cloud.dialogflow.v2.SessionEntityType session_entity_types = 10; + * @param array<\Google\Cloud\Dialogflow\V2\SessionEntityType>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSessionEntityTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Dialogflow\V2\SessionEntityType::class); + $this->session_entity_types = $arr; + + return $this; + } + +} + diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/agents_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/agents_client_config.json new file mode 100644 index 0000000..a03813a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/agents_client_config.json @@ -0,0 +1,89 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Agents": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "DeleteAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ExportAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetValidationResult": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ImportAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "RestoreAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SearchAgents": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SetAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "TrainAgent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/agents_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/agents_descriptor_config.php new file mode 100644 index 0000000..defc3e4 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/agents_descriptor_config.php @@ -0,0 +1,214 @@ + [ + 'google.cloud.dialogflow.v2.Agents' => [ + 'ExportAgent' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ExportAgentResponse', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'ImportAgent' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'RestoreAgent' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'TrainAgent' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteAgent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GetAgent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Agent', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GetValidationResult' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ValidationResult', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'SearchAgents' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getAgents', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SearchAgentsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'SetAgent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Agent', + 'headerParams' => [ + [ + 'keyName' => 'agent.parent', + 'fieldAccessors' => [ + 'getAgent', + 'getParent', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'location' => 'projects/{project}/locations/{location}', + 'project' => 'projects/{project}', + 'projectAgent' => 'projects/{project}/agent', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/agents_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/agents_rest_client_config.php new file mode 100644 index 0000000..5892818 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/agents_rest_client_config.php @@ -0,0 +1,270 @@ + [ + 'google.cloud.dialogflow.v2.Agents' => [ + 'DeleteAgent' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{parent=projects/*}/agent', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ExportAgent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/agent:export', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent:export', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'GetAgent' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/agent', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'GetValidationResult' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/agent/validationResult', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent/validationResult', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ImportAgent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/agent:import', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent:import', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'RestoreAgent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/agent:restore', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent:restore', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SearchAgents' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/agent:search', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent:search', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SetAgent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{agent.parent=projects/*}/agent', + 'body' => 'agent', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{agent.parent=projects/*/locations/*}/agent', + 'body' => 'agent', + ], + ], + 'placeholders' => [ + 'agent.parent' => [ + 'getters' => [ + 'getAgent', + 'getParent', + ], + ], + ], + ], + 'TrainAgent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/agent:train', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/agent:train', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_client_config.json new file mode 100644 index 0000000..2114a79 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_client_config.json @@ -0,0 +1,54 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.AnswerRecords": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "ListAnswerRecords": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateAnswerRecord": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_descriptor_config.php new file mode 100644 index 0000000..0643ed7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_descriptor_config.php @@ -0,0 +1,118 @@ + [ + 'google.cloud.dialogflow.v2.AnswerRecords' => [ + 'ListAnswerRecords' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getAnswerRecords', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListAnswerRecordsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateAnswerRecord' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\AnswerRecord', + 'headerParams' => [ + [ + 'keyName' => 'answer_record.name', + 'fieldAccessors' => [ + 'getAnswerRecord', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'answerRecord' => 'projects/{project}/answerRecords/{answer_record}', + 'context' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'intent' => 'projects/{project}/agent/intents/{intent}', + 'location' => 'projects/{project}/locations/{location}', + 'project' => 'projects/{project}', + 'projectAgent' => 'projects/{project}/agent', + 'projectAnswerRecord' => 'projects/{project}/answerRecords/{answer_record}', + 'projectEnvironmentUserSession' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectEnvironmentUserSessionContext' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectIntent' => 'projects/{project}/agent/intents/{intent}', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationAnswerRecord' => 'projects/{project}/locations/{location}/answerRecords/{answer_record}', + 'projectLocationEnvironmentUserSession' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectLocationEnvironmentUserSessionContext' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectLocationIntent' => 'projects/{project}/locations/{location}/agent/intents/{intent}', + 'projectLocationSession' => 'projects/{project}/locations/{location}/agent/sessions/{session}', + 'projectLocationSessionContext' => 'projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context}', + 'projectSession' => 'projects/{project}/agent/sessions/{session}', + 'projectSessionContext' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'session' => 'projects/{project}/agent/sessions/{session}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_rest_client_config.php new file mode 100644 index 0000000..7de0cd7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/answer_records_rest_client_config.php @@ -0,0 +1,149 @@ + [ + 'google.cloud.dialogflow.v2.AnswerRecords' => [ + 'ListAnswerRecords' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/answerRecords', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/answerRecords', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateAnswerRecord' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{answer_record.name=projects/*/answerRecords/*}', + 'body' => 'answer_record', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{answer_record.name=projects/*/locations/*/answerRecords/*}', + 'body' => 'answer_record', + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'placeholders' => [ + 'answer_record.name' => [ + 'getters' => [ + 'getAnswerRecord', + 'getName', + ], + ], + ], + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/contexts_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/contexts_client_config.json new file mode 100644 index 0000000..4058247 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/contexts_client_config.json @@ -0,0 +1,74 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Contexts": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateContext": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteAllContexts": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteContext": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetContext": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListContexts": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateContext": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/contexts_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/contexts_descriptor_config.php new file mode 100644 index 0000000..7721b42 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/contexts_descriptor_config.php @@ -0,0 +1,155 @@ + [ + 'google.cloud.dialogflow.v2.Contexts' => [ + 'CreateContext' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Context', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteAllContexts' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteContext' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetContext' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Context', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListContexts' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getContexts', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListContextsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateContext' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Context', + 'headerParams' => [ + [ + 'keyName' => 'context.name', + 'fieldAccessors' => [ + 'getContext', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'context' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'projectEnvironmentUserSession' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectEnvironmentUserSessionContext' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectLocationEnvironmentUserSession' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectLocationEnvironmentUserSessionContext' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectLocationSession' => 'projects/{project}/locations/{location}/agent/sessions/{session}', + 'projectLocationSessionContext' => 'projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context}', + 'projectSession' => 'projects/{project}/agent/sessions/{session}', + 'projectSessionContext' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'session' => 'projects/{project}/agent/sessions/{session}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/contexts_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/contexts_rest_client_config.php new file mode 100644 index 0000000..3bdd5f5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/contexts_rest_client_config.php @@ -0,0 +1,265 @@ + [ + 'google.cloud.dialogflow.v2.Contexts' => [ + 'CreateContext' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/sessions/*}/contexts', + 'body' => 'context', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts', + 'body' => 'context', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts', + 'body' => 'context', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts', + 'body' => 'context', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteAllContexts' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{parent=projects/*/agent/sessions/*}/contexts', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteContext' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/sessions/*/contexts/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetContext' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/sessions/*/contexts/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/sessions/*/contexts/*}', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListContexts' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/sessions/*}/contexts', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/contexts', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/sessions/*}/contexts', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/contexts', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateContext' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{context.name=projects/*/agent/sessions/*/contexts/*}', + 'body' => 'context', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{context.name=projects/*/agent/environments/*/users/*/sessions/*/contexts/*}', + 'body' => 'context', + ], + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{context.name=projects/*/locations/*/agent/sessions/*/contexts/*}', + 'body' => 'context', + ], + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{context.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/contexts/*}', + 'body' => 'context', + ], + ], + 'placeholders' => [ + 'context.name' => [ + 'getters' => [ + 'getContext', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_client_config.json new file mode 100644 index 0000000..bbee4ea --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_client_config.json @@ -0,0 +1,69 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.ConversationDatasets": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateConversationDataset": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteConversationDataset": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetConversationDataset": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ImportConversationData": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListConversationDatasets": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_descriptor_config.php new file mode 100644 index 0000000..8d3a733 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_descriptor_config.php @@ -0,0 +1,155 @@ + [ + 'google.cloud.dialogflow.v2.ConversationDatasets' => [ + 'CreateConversationDataset' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ConversationDataset', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\CreateConversationDatasetOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteConversationDataset' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\DeleteConversationDatasetOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ImportConversationData' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ImportConversationDataOperationResponse', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\ImportConversationDataOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationDataset' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ConversationDataset', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListConversationDatasets' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getConversationDatasets', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListConversationDatasetsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'conversationDataset' => 'projects/{project}/locations/{location}/conversationDatasets/{conversation_dataset}', + 'location' => 'projects/{project}/locations/{location}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_rest_client_config.php new file mode 100644 index 0000000..dd33819 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_datasets_rest_client_config.php @@ -0,0 +1,182 @@ + [ + 'google.cloud.dialogflow.v2.ConversationDatasets' => [ + 'CreateConversationDataset' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversationDatasets', + 'body' => 'conversation_dataset', + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteConversationDataset' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationDatasets/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationDataset' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/conversationDatasets/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationDatasets/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ImportConversationData' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/conversationDatasets/*}:importConversationData', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationDatasets/*}:importConversationData', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListConversationDatasets' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/conversationDatasets', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversationDatasets', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_client_config.json new file mode 100644 index 0000000..ecdf8c5 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_client_config.json @@ -0,0 +1,89 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.ConversationModels": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateConversationModel": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "CreateConversationModelEvaluation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteConversationModel": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeployConversationModel": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetConversationModel": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetConversationModelEvaluation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListConversationModelEvaluations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListConversationModels": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UndeployConversationModel": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_descriptor_config.php new file mode 100644 index 0000000..0e27466 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_descriptor_config.php @@ -0,0 +1,233 @@ + [ + 'google.cloud.dialogflow.v2.ConversationModels' => [ + 'CreateConversationModel' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ConversationModel', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\CreateConversationModelOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'CreateConversationModelEvaluation' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ConversationModelEvaluation', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\CreateConversationModelEvaluationOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteConversationModel' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\DeleteConversationModelOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'DeployConversationModel' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\DeployConversationModelOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'UndeployConversationModel' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\UndeployConversationModelOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationModel' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ConversationModel', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationModelEvaluation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ConversationModelEvaluation', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListConversationModelEvaluations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getConversationModelEvaluations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListConversationModelEvaluationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'ListConversationModels' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getConversationModels', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListConversationModelsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'conversationDataset' => 'projects/{project}/locations/{location}/conversationDatasets/{conversation_dataset}', + 'conversationModel' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}', + 'conversationModelEvaluation' => 'projects/{project}/conversationModels/{conversation_model}/evaluations/{evaluation}', + 'document' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'projectConversationModel' => 'projects/{project}/conversationModels/{conversation_model}', + 'projectConversationModelEvaluation' => 'projects/{project}/conversationModels/{conversation_model}/evaluations/{evaluation}', + 'projectKnowledgeBaseDocument' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'projectLocationConversationModel' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}', + 'projectLocationConversationModelEvaluation' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}/evaluations/{evaluation}', + 'projectLocationKnowledgeBaseDocument' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_rest_client_config.php new file mode 100644 index 0000000..07221b0 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_models_rest_client_config.php @@ -0,0 +1,260 @@ + [ + 'google.cloud.dialogflow.v2.ConversationModels' => [ + 'CreateConversationModel' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/conversationModels', + 'body' => 'conversation_model', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversationModels', + 'body' => 'conversation_model', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'CreateConversationModelEvaluation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations', + 'body' => '*', + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteConversationModel' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/conversationModels/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationModels/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'DeployConversationModel' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/conversationModels/*}:deploy', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationModels/*}:deploy', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationModel' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/conversationModels/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationModels/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationModelEvaluation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/conversationModels/*/evaluations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationModels/*/evaluations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListConversationModelEvaluations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/conversationModels/*}/evaluations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversationModels/*}/evaluations', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ListConversationModels' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/conversationModels', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversationModels', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UndeployConversationModel' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/conversationModels/*}:undeploy', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationModels/*}:undeploy', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_client_config.json new file mode 100644 index 0000000..2898ad3 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_client_config.json @@ -0,0 +1,79 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.ConversationProfiles": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "ClearSuggestionFeatureConfig": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "CreateConversationProfile": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteConversationProfile": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetConversationProfile": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListConversationProfiles": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SetSuggestionFeatureConfig": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateConversationProfile": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_descriptor_config.php new file mode 100644 index 0000000..3c85601 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_descriptor_config.php @@ -0,0 +1,191 @@ + [ + 'google.cloud.dialogflow.v2.ConversationProfiles' => [ + 'ClearSuggestionFeatureConfig' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ConversationProfile', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\ClearSuggestionFeatureConfigOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'conversation_profile', + 'fieldAccessors' => [ + 'getConversationProfile', + ], + ], + ], + ], + 'SetSuggestionFeatureConfig' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ConversationProfile', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\SetSuggestionFeatureConfigOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'conversation_profile', + 'fieldAccessors' => [ + 'getConversationProfile', + ], + ], + ], + ], + 'CreateConversationProfile' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ConversationProfile', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteConversationProfile' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationProfile' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ConversationProfile', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListConversationProfiles' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getConversationProfiles', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListConversationProfilesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateConversationProfile' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ConversationProfile', + 'headerParams' => [ + [ + 'keyName' => 'conversation_profile.name', + 'fieldAccessors' => [ + 'getConversationProfile', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'cXSecuritySettings' => 'projects/{project}/locations/{location}/securitySettings/{security_settings}', + 'conversationModel' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}', + 'conversationProfile' => 'projects/{project}/conversationProfiles/{conversation_profile}', + 'document' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'generator' => 'projects/{project}/locations/{location}/generators/{generator}', + 'knowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'location' => 'projects/{project}/locations/{location}', + 'phraseSet' => 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', + 'project' => 'projects/{project}', + 'projectAgent' => 'projects/{project}/agent', + 'projectConversationModel' => 'projects/{project}/conversationModels/{conversation_model}', + 'projectConversationProfile' => 'projects/{project}/conversationProfiles/{conversation_profile}', + 'projectKnowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'projectKnowledgeBaseDocument' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationConversationModel' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}', + 'projectLocationConversationProfile' => 'projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}', + 'projectLocationKnowledgeBase' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}', + 'projectLocationKnowledgeBaseDocument' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_rest_client_config.php new file mode 100644 index 0000000..c94b53f --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversation_profiles_rest_client_config.php @@ -0,0 +1,240 @@ + [ + 'google.cloud.dialogflow.v2.ConversationProfiles' => [ + 'ClearSuggestionFeatureConfig' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation_profile=projects/*/conversationProfiles/*}:clearSuggestionFeatureConfig', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:clearSuggestionFeatureConfig', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'conversation_profile' => [ + 'getters' => [ + 'getConversationProfile', + ], + ], + ], + ], + 'CreateConversationProfile' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/conversationProfiles', + 'body' => 'conversation_profile', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversationProfiles', + 'body' => 'conversation_profile', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteConversationProfile' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/conversationProfiles/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationProfiles/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetConversationProfile' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/conversationProfiles/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversationProfiles/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListConversationProfiles' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/conversationProfiles', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversationProfiles', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SetSuggestionFeatureConfig' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation_profile=projects/*/conversationProfiles/*}:setSuggestionFeatureConfig', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation_profile=projects/*/locations/*/conversationProfiles/*}:setSuggestionFeatureConfig', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'conversation_profile' => [ + 'getters' => [ + 'getConversationProfile', + ], + ], + ], + ], + 'UpdateConversationProfile' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{conversation_profile.name=projects/*/conversationProfiles/*}', + 'body' => 'conversation_profile', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{conversation_profile.name=projects/*/locations/*/conversationProfiles/*}', + 'body' => 'conversation_profile', + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'placeholders' => [ + 'conversation_profile.name' => [ + 'getters' => [ + 'getConversationProfile', + 'getName', + ], + ], + ], + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversations_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/conversations_client_config.json new file mode 100644 index 0000000..a80f967 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversations_client_config.json @@ -0,0 +1,99 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Conversations": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CompleteConversation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "CreateConversation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GenerateStatelessSuggestion": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GenerateStatelessSummary": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GenerateSuggestions": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetConversation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "IngestContextReferences": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListConversations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListMessages": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SearchKnowledge": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SuggestConversationSummary": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversations_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversations_descriptor_config.php new file mode 100644 index 0000000..bd1dd07 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversations_descriptor_config.php @@ -0,0 +1,248 @@ + [ + 'google.cloud.dialogflow.v2.Conversations' => [ + 'CompleteConversation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Conversation', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'CreateConversation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Conversation', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GenerateStatelessSuggestion' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\GenerateStatelessSuggestionResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GenerateStatelessSummary' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\GenerateStatelessSummaryResponse', + 'headerParams' => [ + [ + 'keyName' => 'stateless_conversation.parent', + 'fieldAccessors' => [ + 'getStatelessConversation', + 'getParent', + ], + ], + ], + ], + 'GenerateSuggestions' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\GenerateSuggestionsResponse', + 'headerParams' => [ + [ + 'keyName' => 'conversation', + 'fieldAccessors' => [ + 'getConversation', + ], + ], + ], + ], + 'GetConversation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Conversation', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'IngestContextReferences' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\IngestContextReferencesResponse', + 'headerParams' => [ + [ + 'keyName' => 'conversation', + 'fieldAccessors' => [ + 'getConversation', + ], + ], + ], + ], + 'ListConversations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getConversations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListConversationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'ListMessages' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getMessages', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListMessagesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'SearchKnowledge' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SearchKnowledgeResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + [ + 'keyName' => 'conversation', + 'fieldAccessors' => [ + 'getConversation', + ], + ], + ], + ], + 'SuggestConversationSummary' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SuggestConversationSummaryResponse', + 'headerParams' => [ + [ + 'keyName' => 'conversation', + 'fieldAccessors' => [ + 'getConversation', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'cXSecuritySettings' => 'projects/{project}/locations/{location}/securitySettings/{security_settings}', + 'conversation' => 'projects/{project}/conversations/{conversation}', + 'conversationModel' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}', + 'conversationProfile' => 'projects/{project}/conversationProfiles/{conversation_profile}', + 'dataStore' => 'projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}', + 'document' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'generator' => 'projects/{project}/locations/{location}/generators/{generator}', + 'knowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'location' => 'projects/{project}/locations/{location}', + 'message' => 'projects/{project}/conversations/{conversation}/messages/{message}', + 'phraseSet' => 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', + 'project' => 'projects/{project}', + 'projectAgent' => 'projects/{project}/agent', + 'projectConversation' => 'projects/{project}/conversations/{conversation}', + 'projectConversationMessage' => 'projects/{project}/conversations/{conversation}/messages/{message}', + 'projectConversationModel' => 'projects/{project}/conversationModels/{conversation_model}', + 'projectConversationProfile' => 'projects/{project}/conversationProfiles/{conversation_profile}', + 'projectKnowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'projectKnowledgeBaseDocument' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationCollectionDataStore' => 'projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}', + 'projectLocationConversation' => 'projects/{project}/locations/{location}/conversations/{conversation}', + 'projectLocationConversationMessage' => 'projects/{project}/locations/{location}/conversations/{conversation}/messages/{message}', + 'projectLocationConversationModel' => 'projects/{project}/locations/{location}/conversationModels/{conversation_model}', + 'projectLocationConversationProfile' => 'projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}', + 'projectLocationDataStore' => 'projects/{project}/locations/{location}/dataStores/{data_store}', + 'projectLocationKnowledgeBase' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}', + 'projectLocationKnowledgeBaseDocument' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/conversations_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/conversations_rest_client_config.php new file mode 100644 index 0000000..3f04379 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/conversations_rest_client_config.php @@ -0,0 +1,311 @@ + [ + 'google.cloud.dialogflow.v2.Conversations' => [ + 'CompleteConversation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/conversations/*}:complete', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversations/*}:complete', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'CreateConversation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/conversations', + 'body' => 'conversation', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversations', + 'body' => 'conversation', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'GenerateStatelessSuggestion' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/statelessSuggestion:generate', + 'body' => '*', + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'GenerateStatelessSummary' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{stateless_conversation.parent=projects/*}/suggestions:generateStatelessSummary', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{stateless_conversation.parent=projects/*/locations/*}/suggestions:generateStatelessSummary', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'stateless_conversation.parent' => [ + 'getters' => [ + 'getStatelessConversation', + 'getParent', + ], + ], + ], + ], + 'GenerateSuggestions' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/conversations/*}/suggestions:generate', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/locations/*/conversations/*}/suggestions:generate', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'conversation' => [ + 'getters' => [ + 'getConversation', + ], + ], + ], + ], + 'GetConversation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/conversations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'IngestContextReferences' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/locations/*/conversations/*}:ingestContextReferences', + 'body' => '*', + 'placeholders' => [ + 'conversation' => [ + 'getters' => [ + 'getConversation', + ], + ], + ], + ], + 'ListConversations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/conversations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/conversations', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ListMessages' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*}/messages', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*}/messages', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SearchKnowledge' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/suggestions:searchKnowledge', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/suggestions:searchKnowledge', + 'body' => '*', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/conversations/*}/suggestions:searchKnowledge', + 'body' => '*', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/locations/*/conversations/*}/suggestions:searchKnowledge', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'conversation' => [ + 'getters' => [ + 'getConversation', + ], + ], + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestConversationSummary' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/conversations/*}/suggestions:suggestConversationSummary', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{conversation=projects/*/locations/*/conversations/*}/suggestions:suggestConversationSummary', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'conversation' => [ + 'getters' => [ + 'getConversation', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/documents_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/documents_client_config.json new file mode 100644 index 0000000..aaddca9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/documents_client_config.json @@ -0,0 +1,84 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Documents": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateDocument": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteDocument": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ExportDocument": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetDocument": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ImportDocuments": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListDocuments": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ReloadDocument": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateDocument": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/documents_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/documents_descriptor_config.php new file mode 100644 index 0000000..8e0d426 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/documents_descriptor_config.php @@ -0,0 +1,217 @@ + [ + 'google.cloud.dialogflow.v2.Documents' => [ + 'CreateDocument' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\Document', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteDocument' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ExportDocument' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\Document', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ImportDocuments' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\ImportDocumentsResponse', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'ReloadDocument' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\Document', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'UpdateDocument' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\Document', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\KnowledgeOperationMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'document.name', + 'fieldAccessors' => [ + 'getDocument', + 'getName', + ], + ], + ], + ], + 'GetDocument' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Document', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListDocuments' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getDocuments', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListDocumentsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'document' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'knowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'projectKnowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'projectKnowledgeBaseDocument' => 'projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}', + 'projectLocationKnowledgeBase' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}', + 'projectLocationKnowledgeBaseDocument' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}/documents/{document}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/documents_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/documents_rest_client_config.php new file mode 100644 index 0000000..bf1567c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/documents_rest_client_config.php @@ -0,0 +1,280 @@ + [ + 'google.cloud.dialogflow.v2.Documents' => [ + 'CreateDocument' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/knowledgeBases/*}/documents', + 'body' => 'document', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents', + 'body' => 'document', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/knowledgeBases/*}/documents', + 'body' => 'document', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteDocument' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/knowledgeBases/*/documents/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ExportDocument' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/knowledgeBases/*/documents/*}:export', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:export', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetDocument' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/knowledgeBases/*/documents/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ImportDocuments' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/knowledgeBases/*}/documents:import', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents:import', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ListDocuments' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/knowledgeBases/*}/documents', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/knowledgeBases/*}/documents', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/knowledgeBases/*}/documents', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ReloadDocument' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/knowledgeBases/*/documents/*}:reload', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/knowledgeBases/*/documents/*}:reload', + 'body' => '*', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/agent/knowledgeBases/*/documents/*}:reload', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'UpdateDocument' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{document.name=projects/*/knowledgeBases/*/documents/*}', + 'body' => 'document', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{document.name=projects/*/locations/*/knowledgeBases/*/documents/*}', + 'body' => 'document', + ], + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{document.name=projects/*/agent/knowledgeBases/*/documents/*}', + 'body' => 'document', + ], + ], + 'placeholders' => [ + 'document.name' => [ + 'getters' => [ + 'getDocument', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_client_config.json new file mode 100644 index 0000000..ad9d113 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_client_config.json @@ -0,0 +1,54 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.EncryptionSpecService": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "GetEncryptionSpec": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "InitializeEncryptionSpec": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_descriptor_config.php new file mode 100644 index 0000000..c5e9e4a --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_descriptor_config.php @@ -0,0 +1,97 @@ + [ + 'google.cloud.dialogflow.v2.EncryptionSpecService' => [ + 'InitializeEncryptionSpec' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecResponse', + 'metadataReturnType' => '\Google\Cloud\Dialogflow\V2\InitializeEncryptionSpecMetadata', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'encryption_spec.name', + 'fieldAccessors' => [ + 'getEncryptionSpec', + 'getName', + ], + ], + ], + ], + 'GetEncryptionSpec' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\EncryptionSpec', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'encryptionSpec' => 'projects/{project}/locations/{location}/encryptionSpec', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_rest_client_config.php new file mode 100644 index 0000000..19e3f25 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/encryption_spec_service_rest_client_config.php @@ -0,0 +1,130 @@ + [ + 'google.cloud.dialogflow.v2.EncryptionSpecService' => [ + 'GetEncryptionSpec' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/encryptionSpec}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'InitializeEncryptionSpec' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{encryption_spec.name=projects/*/locations/*/encryptionSpec}:initialize', + 'body' => '*', + 'placeholders' => [ + 'encryption_spec.name' => [ + 'getters' => [ + 'getEncryptionSpec', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_client_config.json new file mode 100644 index 0000000..0380bfe --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_client_config.json @@ -0,0 +1,94 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.EntityTypes": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "BatchCreateEntities": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "BatchDeleteEntities": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "BatchDeleteEntityTypes": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "BatchUpdateEntities": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "BatchUpdateEntityTypes": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "CreateEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListEntityTypes": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_descriptor_config.php new file mode 100644 index 0000000..439d085 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_descriptor_config.php @@ -0,0 +1,234 @@ + [ + 'google.cloud.dialogflow.v2.EntityTypes' => [ + 'BatchCreateEntities' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'BatchDeleteEntities' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'BatchDeleteEntityTypes' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'BatchUpdateEntities' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'BatchUpdateEntityTypes' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\BatchUpdateEntityTypesResponse', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'CreateEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\EntityType', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\EntityType', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListEntityTypes' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getEntityTypes', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListEntityTypesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\EntityType', + 'headerParams' => [ + [ + 'keyName' => 'entity_type.name', + 'fieldAccessors' => [ + 'getEntityType', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'entityType' => 'projects/{project}/agent/entityTypes/{entity_type}', + 'projectAgent' => 'projects/{project}/agent', + 'projectEntityType' => 'projects/{project}/agent/entityTypes/{entity_type}', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationEntityType' => 'projects/{project}/locations/{location}/agent/entityTypes/{entity_type}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_rest_client_config.php new file mode 100644 index 0000000..ab9710b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/entity_types_rest_client_config.php @@ -0,0 +1,291 @@ + [ + 'google.cloud.dialogflow.v2.EntityTypes' => [ + 'BatchCreateEntities' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchCreate', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchCreate', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'BatchDeleteEntities' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchDelete', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchDelete', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'BatchDeleteEntityTypes' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/entityTypes:batchDelete', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/entityTypes:batchDelete', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'BatchUpdateEntities' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/entityTypes/*}/entities:batchUpdate', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/entityTypes/*}/entities:batchUpdate', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'BatchUpdateEntityTypes' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/entityTypes:batchUpdate', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/entityTypes:batchUpdate', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'CreateEntityType' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/entityTypes', + 'body' => 'entity_type', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/entityTypes', + 'body' => 'entity_type', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteEntityType' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/entityTypes/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/entityTypes/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetEntityType' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/entityTypes/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/entityTypes/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListEntityTypes' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/entityTypes', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/entityTypes', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateEntityType' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{entity_type.name=projects/*/agent/entityTypes/*}', + 'body' => 'entity_type', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{entity_type.name=projects/*/locations/*/agent/entityTypes/*}', + 'body' => 'entity_type', + ], + ], + 'placeholders' => [ + 'entity_type.name' => [ + 'getters' => [ + 'getEntityType', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/environments_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/environments_client_config.json new file mode 100644 index 0000000..00d6f74 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/environments_client_config.json @@ -0,0 +1,74 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Environments": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateEnvironment": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteEnvironment": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetEnvironment": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetEnvironmentHistory": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListEnvironments": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateEnvironment": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/environments_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/environments_descriptor_config.php new file mode 100644 index 0000000..a1b2fc7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/environments_descriptor_config.php @@ -0,0 +1,165 @@ + [ + 'google.cloud.dialogflow.v2.Environments' => [ + 'CreateEnvironment' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Environment', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteEnvironment' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetEnvironment' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Environment', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetEnvironmentHistory' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getEntries', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\EnvironmentHistory', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'ListEnvironments' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getEnvironments', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListEnvironmentsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateEnvironment' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Environment', + 'headerParams' => [ + [ + 'keyName' => 'environment.name', + 'fieldAccessors' => [ + 'getEnvironment', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'environment' => 'projects/{project}/agent/environments/{environment}', + 'fulfillment' => 'projects/{project}/agent/fulfillment', + 'projectAgent' => 'projects/{project}/agent', + 'projectEnvironment' => 'projects/{project}/agent/environments/{environment}', + 'projectFulfillment' => 'projects/{project}/agent/fulfillment', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationEnvironment' => 'projects/{project}/locations/{location}/agent/environments/{environment}', + 'projectLocationFulfillment' => 'projects/{project}/locations/{location}/agent/fulfillment', + 'projectLocationVersion' => 'projects/{project}/locations/{location}/agent/versions/{version}', + 'projectVersion' => 'projects/{project}/agent/versions/{version}', + 'version' => 'projects/{project}/agent/versions/{version}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/environments_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/environments_rest_client_config.php new file mode 100644 index 0000000..5c67335 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/environments_rest_client_config.php @@ -0,0 +1,225 @@ + [ + 'google.cloud.dialogflow.v2.Environments' => [ + 'CreateEnvironment' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/environments', + 'body' => 'environment', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/environments', + 'body' => 'environment', + 'queryParams' => [ + 'environment_id', + ], + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + 'queryParams' => [ + 'environment_id', + ], + ], + 'DeleteEnvironment' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/environments/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/environments/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetEnvironment' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/environments/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/environments/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetEnvironmentHistory' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*}/history', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*}/history', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'ListEnvironments' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/environments', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/environments', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateEnvironment' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{environment.name=projects/*/agent/environments/*}', + 'body' => 'environment', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{environment.name=projects/*/locations/*/agent/environments/*}', + 'body' => 'environment', + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'placeholders' => [ + 'environment.name' => [ + 'getters' => [ + 'getEnvironment', + 'getName', + ], + ], + ], + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_client_config.json new file mode 100644 index 0000000..8e6cc14 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_client_config.json @@ -0,0 +1,54 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Fulfillments": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "GetFulfillment": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateFulfillment": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_descriptor_config.php new file mode 100644 index 0000000..52aae4e --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_descriptor_config.php @@ -0,0 +1,92 @@ + [ + 'google.cloud.dialogflow.v2.Fulfillments' => [ + 'GetFulfillment' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Fulfillment', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'UpdateFulfillment' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Fulfillment', + 'headerParams' => [ + [ + 'keyName' => 'fulfillment.name', + 'fieldAccessors' => [ + 'getFulfillment', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'fulfillment' => 'projects/{project}/agent/fulfillment', + 'projectFulfillment' => 'projects/{project}/agent/fulfillment', + 'projectLocationFulfillment' => 'projects/{project}/locations/{location}/agent/fulfillment', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_rest_client_config.php new file mode 100644 index 0000000..5969b7b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/fulfillments_rest_client_config.php @@ -0,0 +1,149 @@ + [ + 'google.cloud.dialogflow.v2.Fulfillments' => [ + 'GetFulfillment' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/fulfillment}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/fulfillment}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'UpdateFulfillment' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{fulfillment.name=projects/*/agent/fulfillment}', + 'body' => 'fulfillment', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{fulfillment.name=projects/*/locations/*/agent/fulfillment}', + 'body' => 'fulfillment', + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'placeholders' => [ + 'fulfillment.name' => [ + 'getters' => [ + 'getFulfillment', + 'getName', + ], + ], + ], + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/generators_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/generators_client_config.json new file mode 100644 index 0000000..d4ccea7 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/generators_client_config.json @@ -0,0 +1,69 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Generators": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateGenerator": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteGenerator": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetGenerator": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListGenerators": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateGenerator": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/generators_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/generators_descriptor_config.php new file mode 100644 index 0000000..f1630ff --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/generators_descriptor_config.php @@ -0,0 +1,135 @@ + [ + 'google.cloud.dialogflow.v2.Generators' => [ + 'CreateGenerator' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Generator', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteGenerator' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetGenerator' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Generator', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListGenerators' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getGenerators', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListGeneratorsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateGenerator' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Generator', + 'headerParams' => [ + [ + 'keyName' => 'generator.name', + 'fieldAccessors' => [ + 'getGenerator', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'generator' => 'projects/{project}/locations/{location}/generators/{generator}', + 'project' => 'projects/{project}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/generators_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/generators_rest_client_config.php new file mode 100644 index 0000000..701f901 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/generators_rest_client_config.php @@ -0,0 +1,177 @@ + [ + 'google.cloud.dialogflow.v2.Generators' => [ + 'CreateGenerator' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/generators', + 'body' => 'generator', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/generators', + 'body' => 'generator', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteGenerator' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/generators/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetGenerator' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/generators/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListGenerators' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/generators', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/generators', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateGenerator' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{generator.name=projects/*/locations/*/generators/*}', + 'body' => 'generator', + 'placeholders' => [ + 'generator.name' => [ + 'getters' => [ + 'getGenerator', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/intents_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/intents_client_config.json new file mode 100644 index 0000000..f6d3f00 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/intents_client_config.json @@ -0,0 +1,79 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Intents": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "BatchDeleteIntents": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "BatchUpdateIntents": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "CreateIntent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteIntent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetIntent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListIntents": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateIntent": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/intents_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/intents_descriptor_config.php new file mode 100644 index 0000000..46fd848 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/intents_descriptor_config.php @@ -0,0 +1,187 @@ + [ + 'google.cloud.dialogflow.v2.Intents' => [ + 'BatchDeleteIntents' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Protobuf\GPBEmpty', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'BatchUpdateIntents' => [ + 'longRunning' => [ + 'operationReturnType' => '\Google\Cloud\Dialogflow\V2\BatchUpdateIntentsResponse', + 'metadataReturnType' => '\Google\Protobuf\Struct', + 'initialPollDelayMillis' => '500', + 'pollDelayMultiplier' => '1.5', + 'maxPollDelayMillis' => '5000', + 'totalPollTimeoutMillis' => '300000', + ], + 'callType' => \Google\ApiCore\Call::LONGRUNNING_CALL, + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'CreateIntent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Intent', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteIntent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetIntent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Intent', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListIntents' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getIntents', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListIntentsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateIntent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Intent', + 'headerParams' => [ + [ + 'keyName' => 'intent.name', + 'fieldAccessors' => [ + 'getIntent', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'context' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'intent' => 'projects/{project}/agent/intents/{intent}', + 'projectAgent' => 'projects/{project}/agent', + 'projectEnvironmentUserSession' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectEnvironmentUserSessionContext' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectIntent' => 'projects/{project}/agent/intents/{intent}', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationEnvironmentUserSession' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectLocationEnvironmentUserSessionContext' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectLocationIntent' => 'projects/{project}/locations/{location}/agent/intents/{intent}', + 'projectLocationSession' => 'projects/{project}/locations/{location}/agent/sessions/{session}', + 'projectLocationSessionContext' => 'projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context}', + 'projectSession' => 'projects/{project}/agent/sessions/{session}', + 'projectSessionContext' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'session' => 'projects/{project}/agent/sessions/{session}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/intents_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/intents_rest_client_config.php new file mode 100644 index 0000000..cbf4e4b --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/intents_rest_client_config.php @@ -0,0 +1,242 @@ + [ + 'google.cloud.dialogflow.v2.Intents' => [ + 'BatchDeleteIntents' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/intents:batchDelete', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/intents:batchDelete', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'BatchUpdateIntents' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/intents:batchUpdate', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/intents:batchUpdate', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'CreateIntent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/intents', + 'body' => 'intent', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/intents', + 'body' => 'intent', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteIntent' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/intents/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/intents/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetIntent' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/intents/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/intents/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListIntents' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/intents', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/intents', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*}/intents', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*}/intents', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateIntent' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{intent.name=projects/*/agent/intents/*}', + 'body' => 'intent', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{intent.name=projects/*/locations/*/agent/intents/*}', + 'body' => 'intent', + ], + ], + 'placeholders' => [ + 'intent.name' => [ + 'getters' => [ + 'getIntent', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_client_config.json new file mode 100644 index 0000000..8b18c4c --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_client_config.json @@ -0,0 +1,69 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.KnowledgeBases": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateKnowledgeBase": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteKnowledgeBase": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetKnowledgeBase": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListKnowledgeBases": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateKnowledgeBase": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_descriptor_config.php new file mode 100644 index 0000000..d46a454 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_descriptor_config.php @@ -0,0 +1,138 @@ + [ + 'google.cloud.dialogflow.v2.KnowledgeBases' => [ + 'CreateKnowledgeBase' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\KnowledgeBase', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteKnowledgeBase' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetKnowledgeBase' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\KnowledgeBase', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListKnowledgeBases' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getKnowledgeBases', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListKnowledgeBasesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateKnowledgeBase' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\KnowledgeBase', + 'headerParams' => [ + [ + 'keyName' => 'knowledge_base.name', + 'fieldAccessors' => [ + 'getKnowledgeBase', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'knowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'location' => 'projects/{project}/locations/{location}', + 'project' => 'projects/{project}', + 'projectKnowledgeBase' => 'projects/{project}/knowledgeBases/{knowledge_base}', + 'projectLocationKnowledgeBase' => 'projects/{project}/locations/{location}/knowledgeBases/{knowledge_base}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_rest_client_config.php new file mode 100644 index 0000000..5261533 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/knowledge_bases_rest_client_config.php @@ -0,0 +1,218 @@ + [ + 'google.cloud.dialogflow.v2.KnowledgeBases' => [ + 'CreateKnowledgeBase' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*}/knowledgeBases', + 'body' => 'knowledge_base', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/knowledgeBases', + 'body' => 'knowledge_base', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/knowledgeBases', + 'body' => 'knowledge_base', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteKnowledgeBase' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/knowledgeBases/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/knowledgeBases/*}', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/knowledgeBases/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetKnowledgeBase' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/knowledgeBases/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/knowledgeBases/*}', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/knowledgeBases/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListKnowledgeBases' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*}/knowledgeBases', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*}/knowledgeBases', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/knowledgeBases', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateKnowledgeBase' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{knowledge_base.name=projects/*/knowledgeBases/*}', + 'body' => 'knowledge_base', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{knowledge_base.name=projects/*/locations/*/knowledgeBases/*}', + 'body' => 'knowledge_base', + ], + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{knowledge_base.name=projects/*/agent/knowledgeBases/*}', + 'body' => 'knowledge_base', + ], + ], + 'placeholders' => [ + 'knowledge_base.name' => [ + 'getters' => [ + 'getKnowledgeBase', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/participants_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/participants_client_config.json new file mode 100644 index 0000000..a96ad60 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/participants_client_config.json @@ -0,0 +1,114 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Participants": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ], + "retry_policy_2_codes": [ + "UNAVAILABLE" + ], + "no_retry_1_codes": [] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + }, + "retry_policy_2_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 220000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 220000, + "total_timeout_millis": 220000 + }, + "no_retry_1_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 220000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 220000, + "total_timeout_millis": 220000 + } + }, + "methods": { + "AnalyzeContent": { + "timeout_millis": 220000, + "retry_codes_name": "retry_policy_2_codes", + "retry_params_name": "retry_policy_2_params" + }, + "CreateParticipant": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetParticipant": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListParticipants": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "StreamingAnalyzeContent": { + "timeout_millis": 220000 + }, + "SuggestArticles": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SuggestFaqAnswers": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SuggestKnowledgeAssist": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "SuggestSmartReplies": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateParticipant": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/participants_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/participants_descriptor_config.php new file mode 100644 index 0000000..f1e1da9 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/participants_descriptor_config.php @@ -0,0 +1,213 @@ + [ + 'google.cloud.dialogflow.v2.Participants' => [ + 'AnalyzeContent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\AnalyzeContentResponse', + 'headerParams' => [ + [ + 'keyName' => 'participant', + 'fieldAccessors' => [ + 'getParticipant', + ], + ], + ], + ], + 'CreateParticipant' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Participant', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'GetParticipant' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Participant', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListParticipants' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getParticipants', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListParticipantsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'StreamingAnalyzeContent' => [ + 'grpcStreaming' => [ + 'grpcStreamingType' => 'BidiStreaming', + ], + 'callType' => \Google\ApiCore\Call::BIDI_STREAMING_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\StreamingAnalyzeContentResponse', + ], + 'SuggestArticles' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SuggestArticlesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestFaqAnswers' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SuggestFaqAnswersResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestKnowledgeAssist' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SuggestKnowledgeAssistResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestSmartReplies' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SuggestSmartRepliesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateParticipant' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Participant', + 'headerParams' => [ + [ + 'keyName' => 'participant.name', + 'fieldAccessors' => [ + 'getParticipant', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'context' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'conversation' => 'projects/{project}/conversations/{conversation}', + 'message' => 'projects/{project}/conversations/{conversation}/messages/{message}', + 'participant' => 'projects/{project}/conversations/{conversation}/participants/{participant}', + 'phraseSet' => 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', + 'projectConversation' => 'projects/{project}/conversations/{conversation}', + 'projectConversationMessage' => 'projects/{project}/conversations/{conversation}/messages/{message}', + 'projectConversationParticipant' => 'projects/{project}/conversations/{conversation}/participants/{participant}', + 'projectEnvironmentUserSession' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectEnvironmentUserSessionContext' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectEnvironmentUserSessionEntityType' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}', + 'projectLocationConversation' => 'projects/{project}/locations/{location}/conversations/{conversation}', + 'projectLocationConversationMessage' => 'projects/{project}/locations/{location}/conversations/{conversation}/messages/{message}', + 'projectLocationConversationParticipant' => 'projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}', + 'projectLocationEnvironmentUserSession' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectLocationEnvironmentUserSessionContext' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectLocationEnvironmentUserSessionEntityType' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}', + 'projectLocationSession' => 'projects/{project}/locations/{location}/agent/sessions/{session}', + 'projectLocationSessionContext' => 'projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context}', + 'projectLocationSessionEntityType' => 'projects/{project}/locations/{location}/agent/sessions/{session}/entityTypes/{entity_type}', + 'projectSession' => 'projects/{project}/agent/sessions/{session}', + 'projectSessionContext' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'projectSessionEntityType' => 'projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}', + 'session' => 'projects/{project}/agent/sessions/{session}', + 'sessionEntityType' => 'projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/participants_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/participants_rest_client_config.php new file mode 100644 index 0000000..9d63307 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/participants_rest_client_config.php @@ -0,0 +1,280 @@ + [ + 'google.cloud.dialogflow.v2.Participants' => [ + 'AnalyzeContent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{participant=projects/*/conversations/*/participants/*}:analyzeContent', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{participant=projects/*/locations/*/conversations/*/participants/*}:analyzeContent', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'participant' => [ + 'getters' => [ + 'getParticipant', + ], + ], + ], + ], + 'CreateParticipant' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*}/participants', + 'body' => 'participant', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*}/participants', + 'body' => 'participant', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'GetParticipant' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/conversations/*/participants/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/conversations/*/participants/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListParticipants' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*}/participants', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*}/participants', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestArticles' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestArticles', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestArticles', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestFaqAnswers' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestFaqAnswers', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestKnowledgeAssist' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestKnowledgeAssist', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'SuggestSmartReplies' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/conversations/*/participants/*}/suggestions:suggestSmartReplies', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/conversations/*/participants/*}/suggestions:suggestSmartReplies', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateParticipant' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{participant.name=projects/*/conversations/*/participants/*}', + 'body' => 'participant', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{participant.name=projects/*/locations/*/conversations/*/participants/*}', + 'body' => 'participant', + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'placeholders' => [ + 'participant.name' => [ + 'getters' => [ + 'getParticipant', + 'getName', + ], + ], + ], + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_client_config.json new file mode 100644 index 0000000..521ba47 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_client_config.json @@ -0,0 +1,69 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.SessionEntityTypes": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateSessionEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteSessionEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetSessionEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListSessionEntityTypes": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateSessionEntityType": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_descriptor_config.php new file mode 100644 index 0000000..a021087 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_descriptor_config.php @@ -0,0 +1,143 @@ + [ + 'google.cloud.dialogflow.v2.SessionEntityTypes' => [ + 'CreateSessionEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SessionEntityType', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteSessionEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetSessionEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SessionEntityType', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListSessionEntityTypes' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getSessionEntityTypes', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListSessionEntityTypesResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateSessionEntityType' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\SessionEntityType', + 'headerParams' => [ + [ + 'keyName' => 'session_entity_type.name', + 'fieldAccessors' => [ + 'getSessionEntityType', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'projectEnvironmentUserSession' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectEnvironmentUserSessionEntityType' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}', + 'projectLocationEnvironmentUserSession' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectLocationEnvironmentUserSessionEntityType' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}', + 'projectLocationSession' => 'projects/{project}/locations/{location}/agent/sessions/{session}', + 'projectLocationSessionEntityType' => 'projects/{project}/locations/{location}/agent/sessions/{session}/entityTypes/{entity_type}', + 'projectSession' => 'projects/{project}/agent/sessions/{session}', + 'projectSessionEntityType' => 'projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}', + 'session' => 'projects/{project}/agent/sessions/{session}', + 'sessionEntityType' => 'projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_rest_client_config.php new file mode 100644 index 0000000..e940467 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/session_entity_types_rest_client_config.php @@ -0,0 +1,240 @@ + [ + 'google.cloud.dialogflow.v2.SessionEntityTypes' => [ + 'CreateSessionEntityType' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/sessions/*}/entityTypes', + 'body' => 'session_entity_type', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes', + 'body' => 'session_entity_type', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes', + 'body' => 'session_entity_type', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes', + 'body' => 'session_entity_type', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteSessionEntityType' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/sessions/*/entityTypes/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}', + ], + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetSessionEntityType' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/sessions/*/entityTypes/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/sessions/*/entityTypes/*}', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListSessionEntityTypes' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/sessions/*}/entityTypes', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent/environments/*/users/*/sessions/*}/entityTypes', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/sessions/*}/entityTypes', + ], + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent/environments/*/users/*/sessions/*}/entityTypes', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateSessionEntityType' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{session_entity_type.name=projects/*/agent/sessions/*/entityTypes/*}', + 'body' => 'session_entity_type', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{session_entity_type.name=projects/*/agent/environments/*/users/*/sessions/*/entityTypes/*}', + 'body' => 'session_entity_type', + ], + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{session_entity_type.name=projects/*/locations/*/agent/sessions/*/entityTypes/*}', + 'body' => 'session_entity_type', + ], + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{session_entity_type.name=projects/*/locations/*/agent/environments/*/users/*/sessions/*/entityTypes/*}', + 'body' => 'session_entity_type', + ], + ], + 'placeholders' => [ + 'session_entity_type.name' => [ + 'getters' => [ + 'getSessionEntityType', + 'getName', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/sessions_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/sessions_client_config.json new file mode 100644 index 0000000..4967706 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/sessions_client_config.json @@ -0,0 +1,74 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Sessions": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ], + "retry_policy_2_codes": [ + "UNAVAILABLE" + ], + "no_retry_1_codes": [] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + }, + "retry_policy_2_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 220000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 220000, + "total_timeout_millis": 220000 + }, + "no_retry_1_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 220000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 220000, + "total_timeout_millis": 220000 + } + }, + "methods": { + "DetectIntent": { + "timeout_millis": 220000, + "retry_codes_name": "retry_policy_2_codes", + "retry_params_name": "retry_policy_2_params" + }, + "StreamingDetectIntent": { + "timeout_millis": 220000 + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/sessions_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/sessions_descriptor_config.php new file mode 100644 index 0000000..259a3ce --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/sessions_descriptor_config.php @@ -0,0 +1,99 @@ + [ + 'google.cloud.dialogflow.v2.Sessions' => [ + 'DetectIntent' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\DetectIntentResponse', + 'headerParams' => [ + [ + 'keyName' => 'session', + 'fieldAccessors' => [ + 'getSession', + ], + ], + ], + ], + 'StreamingDetectIntent' => [ + 'grpcStreaming' => [ + 'grpcStreamingType' => 'BidiStreaming', + ], + 'callType' => \Google\ApiCore\Call::BIDI_STREAMING_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\StreamingDetectIntentResponse', + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'context' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'phraseSet' => 'projects/{project}/locations/{location}/phraseSets/{phrase_set}', + 'projectEnvironmentUserSession' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectEnvironmentUserSessionContext' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectEnvironmentUserSessionEntityType' => 'projects/{project}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}', + 'projectLocationEnvironmentUserSession' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}', + 'projectLocationEnvironmentUserSessionContext' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/contexts/{context}', + 'projectLocationEnvironmentUserSessionEntityType' => 'projects/{project}/locations/{location}/agent/environments/{environment}/users/{user}/sessions/{session}/entityTypes/{entity_type}', + 'projectLocationSession' => 'projects/{project}/locations/{location}/agent/sessions/{session}', + 'projectLocationSessionContext' => 'projects/{project}/locations/{location}/agent/sessions/{session}/contexts/{context}', + 'projectLocationSessionEntityType' => 'projects/{project}/locations/{location}/agent/sessions/{session}/entityTypes/{entity_type}', + 'projectSession' => 'projects/{project}/agent/sessions/{session}', + 'projectSessionContext' => 'projects/{project}/agent/sessions/{session}/contexts/{context}', + 'projectSessionEntityType' => 'projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}', + 'session' => 'projects/{project}/agent/sessions/{session}', + 'sessionEntityType' => 'projects/{project}/agent/sessions/{session}/entityTypes/{entity_type}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/sessions_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/sessions_rest_client_config.php new file mode 100644 index 0000000..70c3620 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/sessions_rest_client_config.php @@ -0,0 +1,135 @@ + [ + 'google.cloud.dialogflow.v2.Sessions' => [ + 'DetectIntent' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{session=projects/*/agent/sessions/*}:detectIntent', + 'body' => '*', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{session=projects/*/agent/environments/*/users/*/sessions/*}:detectIntent', + 'body' => '*', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{session=projects/*/locations/*/agent/sessions/*}:detectIntent', + 'body' => '*', + ], + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{session=projects/*/locations/*/agent/environments/*/users/*/sessions/*}:detectIntent', + 'body' => '*', + ], + ], + 'placeholders' => [ + 'session' => [ + 'getters' => [ + 'getSession', + ], + ], + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/versions_client_config.json b/vendor/google/cloud-dialogflow/src/V2/resources/versions_client_config.json new file mode 100644 index 0000000..e4e6368 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/versions_client_config.json @@ -0,0 +1,69 @@ +{ + "interfaces": { + "google.cloud.dialogflow.v2.Versions": { + "retry_codes": { + "no_retry_codes": [], + "retry_policy_1_codes": [ + "UNAVAILABLE" + ] + }, + "retry_params": { + "no_retry_params": { + "initial_retry_delay_millis": 0, + "retry_delay_multiplier": 0.0, + "max_retry_delay_millis": 0, + "initial_rpc_timeout_millis": 0, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 0, + "total_timeout_millis": 0 + }, + "retry_policy_1_params": { + "initial_retry_delay_millis": 100, + "retry_delay_multiplier": 1.3, + "max_retry_delay_millis": 60000, + "initial_rpc_timeout_millis": 60000, + "rpc_timeout_multiplier": 1.0, + "max_rpc_timeout_millis": 60000, + "total_timeout_millis": 60000 + } + }, + "methods": { + "CreateVersion": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "DeleteVersion": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetVersion": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListVersions": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "UpdateVersion": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "GetLocation": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + }, + "ListLocations": { + "timeout_millis": 60000, + "retry_codes_name": "retry_policy_1_codes", + "retry_params_name": "retry_policy_1_params" + } + } + } + } +} diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/versions_descriptor_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/versions_descriptor_config.php new file mode 100644 index 0000000..163ab35 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/versions_descriptor_config.php @@ -0,0 +1,139 @@ + [ + 'google.cloud.dialogflow.v2.Versions' => [ + 'CreateVersion' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Version', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteVersion' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Protobuf\GPBEmpty', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'GetVersion' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Version', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + ], + 'ListVersions' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getVersions', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\ListVersionsResponse', + 'headerParams' => [ + [ + 'keyName' => 'parent', + 'fieldAccessors' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateVersion' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Dialogflow\V2\Version', + 'headerParams' => [ + [ + 'keyName' => 'version.name', + 'fieldAccessors' => [ + 'getVersion', + 'getName', + ], + ], + ], + ], + 'GetLocation' => [ + 'callType' => \Google\ApiCore\Call::UNARY_CALL, + 'responseType' => 'Google\Cloud\Location\Location', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'ListLocations' => [ + 'pageStreaming' => [ + 'requestPageTokenGetMethod' => 'getPageToken', + 'requestPageTokenSetMethod' => 'setPageToken', + 'requestPageSizeGetMethod' => 'getPageSize', + 'requestPageSizeSetMethod' => 'setPageSize', + 'responsePageTokenGetMethod' => 'getNextPageToken', + 'resourcesGetMethod' => 'getLocations', + ], + 'callType' => \Google\ApiCore\Call::PAGINATED_CALL, + 'responseType' => 'Google\Cloud\Location\ListLocationsResponse', + 'headerParams' => [ + [ + 'keyName' => 'name', + 'fieldAccessors' => [ + 'getName', + ], + ], + ], + 'interfaceOverride' => 'google.cloud.location.Locations', + ], + 'templateMap' => [ + 'agent' => 'projects/{project}/agent', + 'projectAgent' => 'projects/{project}/agent', + 'projectLocationAgent' => 'projects/{project}/locations/{location}/agent', + 'projectLocationVersion' => 'projects/{project}/locations/{location}/agent/versions/{version}', + 'projectVersion' => 'projects/{project}/agent/versions/{version}', + 'version' => 'projects/{project}/agent/versions/{version}', + ], + ], + ], +]; diff --git a/vendor/google/cloud-dialogflow/src/V2/resources/versions_rest_client_config.php b/vendor/google/cloud-dialogflow/src/V2/resources/versions_rest_client_config.php new file mode 100644 index 0000000..e1ce104 --- /dev/null +++ b/vendor/google/cloud-dialogflow/src/V2/resources/versions_rest_client_config.php @@ -0,0 +1,202 @@ + [ + 'google.cloud.dialogflow.v2.Versions' => [ + 'CreateVersion' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/versions', + 'body' => 'version', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/versions', + 'body' => 'version', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'DeleteVersion' => [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/agent/versions/*}', + 'additionalBindings' => [ + [ + 'method' => 'delete', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/versions/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetVersion' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/agent/versions/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/agent/versions/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListVersions' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/agent}/versions', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{parent=projects/*/locations/*/agent}/versions', + ], + ], + 'placeholders' => [ + 'parent' => [ + 'getters' => [ + 'getParent', + ], + ], + ], + ], + 'UpdateVersion' => [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{version.name=projects/*/agent/versions/*}', + 'body' => 'version', + 'additionalBindings' => [ + [ + 'method' => 'patch', + 'uriTemplate' => '/v2/{version.name=projects/*/locations/*/agent/versions/*}', + 'body' => 'version', + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'placeholders' => [ + 'version.name' => [ + 'getters' => [ + 'getVersion', + 'getName', + ], + ], + ], + 'queryParams' => [ + 'update_mask', + ], + ], + ], + 'google.cloud.location.Locations' => [ + 'GetLocation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListLocations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/locations', + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + 'google.longrunning.Operations' => [ + 'CancelOperation' => [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}:cancel', + 'additionalBindings' => [ + [ + 'method' => 'post', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}:cancel', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'GetOperation' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/operations/*}', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*/operations/*}', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + 'ListOperations' => [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*}/operations', + 'additionalBindings' => [ + [ + 'method' => 'get', + 'uriTemplate' => '/v2/{name=projects/*/locations/*}/operations', + ], + ], + 'placeholders' => [ + 'name' => [ + 'getters' => [ + 'getName', + ], + ], + ], + ], + ], + ], + 'numericEnums' => true, +]; diff --git a/vendor/google/common-protos/CHANGELOG.md b/vendor/google/common-protos/CHANGELOG.md new file mode 100644 index 0000000..f1d61e3 --- /dev/null +++ b/vendor/google/common-protos/CHANGELOG.md @@ -0,0 +1,87 @@ +# Changelog + +## [4.5.0](https://github.com/googleapis/common-protos-php/compare/v4.4.0...v4.5.0) (2023-11-29) + + +### Features + +* Add auto_populated_fields to google.api.MethodSettings ([#74](https://github.com/googleapis/common-protos-php/issues/74)) ([d739417](https://github.com/googleapis/common-protos-php/commit/d7394176eb95f0e92af4e93746dba8f515ba9bc2)) + +## [4.4.0](https://github.com/googleapis/common-protos-php/compare/v4.3.0...v4.4.0) (2023-10-02) + + +### Features + +* Public google.api.FieldInfo type and extension ([#71](https://github.com/googleapis/common-protos-php/issues/71)) ([4002074](https://github.com/googleapis/common-protos-php/commit/40020744c65e7561dec08e1cd2994afcc51ec771)) + +## [4.3.0](https://github.com/googleapis/common-protos-php/compare/v4.2.0...v4.3.0) (2023-08-22) + + +### Features + +* Add new FieldBehavior value IDENTIFIER ([#67](https://github.com/googleapis/common-protos-php/issues/67)) ([6c6c21f](https://github.com/googleapis/common-protos-php/commit/6c6c21fc4a2f4711aeddad11082ed17acaf4733c)) + +## [4.2.0](https://github.com/googleapis/common-protos-php/compare/v4.1.0...v4.2.0) (2023-07-25) + + +### Features + +* Add a proto message to describe the `resource_type` and `resource_permission` for an API method ([#64](https://github.com/googleapis/common-protos-php/issues/64)) ([8a0ff5f](https://github.com/googleapis/common-protos-php/commit/8a0ff5f9ffcf3683fc4718e85e97f45a001a1925)) + +## [4.1.0](https://github.com/googleapis/common-protos-php/compare/v4.0.0...v4.1.0) (2023-05-06) + + +### Features + +* Add ConfigServiceV2.CreateBucketAsync method for creating Log Buckets asynchronously ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add ConfigServiceV2.CreateLink method for creating linked datasets for Log Analytics Buckets ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add ConfigServiceV2.DeleteLink method for deleting linked datasets ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add ConfigServiceV2.GetLink methods for describing linked datasets ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add ConfigServiceV2.ListLinks method for listing linked datasets ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add ConfigServiceV2.UpdateBucketAsync method for creating Log Buckets asynchronously ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add LogBucket.analytics_enabled field that specifies whether Log Bucket's Analytics features are enabled ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Add LogBucket.index_configs field that contains a list of Log Bucket's indexed fields and related configuration data ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) +* Log Analytics features of the Cloud Logging API ([#60](https://github.com/googleapis/common-protos-php/issues/60)) ([b18d554](https://github.com/googleapis/common-protos-php/commit/b18d55421cbe1e55d62b5d149e56be23db8c4286)) + +## [4.0.0](https://github.com/googleapis/common-protos-php/compare/v3.2.0...v4.0.0) (2023-05-01) + + +### ⚠ BREAKING CHANGES + +* remove files unknown to owlbot ([#59](https://github.com/googleapis/common-protos-php/issues/59)) +* add owlbot automated updates ([#54](https://github.com/googleapis/common-protos-php/issues/54)) + +### Features + +* Add owlbot automated updates ([#54](https://github.com/googleapis/common-protos-php/issues/54)) ([6d9134d](https://github.com/googleapis/common-protos-php/commit/6d9134d2f927e9c4aa3165e823477e25ef8ff38f)) +* Regenerate all common protos from new owlbot config ([#58](https://github.com/googleapis/common-protos-php/issues/58)) ([5dac653](https://github.com/googleapis/common-protos-php/commit/5dac653bdd60c4dbaec45e73e0ec487e5aeac9b1)) + + +### Miscellaneous Chores + +* Remove files unknown to owlbot ([#59](https://github.com/googleapis/common-protos-php/issues/59)) ([f541342](https://github.com/googleapis/common-protos-php/commit/f54134263a142e278c56f5e03e5a3d8c6f72aac3)) + +## [3.2.0](https://github.com/googleapis/common-protos-php/compare/v3.1.0...v3.2.0) (2023-01-12) + + +### Features + +* Refresh types ([#49](https://github.com/googleapis/common-protos-php/issues/49)) ([bd71fc0](https://github.com/googleapis/common-protos-php/commit/bd71fc05cbca1ccd94b71a42c227f0d69c688f07)) + +## [3.1.0](https://github.com/googleapis/common-protos-php/compare/v3.0.0...v3.1.0) (2022-10-05) + + +### Features + +* Make autoloader more efficient ([#45](https://github.com/googleapis/common-protos-php/issues/45)) ([cdff58a](https://github.com/googleapis/common-protos-php/commit/cdff58a3ff6c42e461f18f14c0bbd8e171456924)) + +## [3.0.0](https://github.com/googleapis/common-protos-php/compare/2.1.0...v3.0.0) (2022-07-29) + + +### ⚠ BREAKING CHANGES + +* remove longrunning classes from common protos (#41) + +### Miscellaneous Chores + +* remove longrunning classes from common protos ([#41](https://github.com/googleapis/common-protos-php/issues/41)) ([e88dd1d](https://github.com/googleapis/common-protos-php/commit/e88dd1d5dfef93358dc0bd7f3d62d09bbfd750b6)) diff --git a/vendor/google/common-protos/CODE_OF_CONDUCT.md b/vendor/google/common-protos/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..46b2a08 --- /dev/null +++ b/vendor/google/common-protos/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, +and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, +posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project +a harassment-free experience for everyone, +regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, +such as physical or electronic +addresses, without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, +project maintainers commit themselves to fairly and consistently +applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct +may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by opening an issue +or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, +available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) diff --git a/vendor/google/common-protos/CONTRIBUTING.md b/vendor/google/common-protos/CONTRIBUTING.md new file mode 100644 index 0000000..23c9455 --- /dev/null +++ b/vendor/google/common-protos/CONTRIBUTING.md @@ -0,0 +1,45 @@ +## Contributing + +We are pleased that you are interested in contributing to our work. + +### Generated Protocol Buffer Classes + +The classes in this repository are generated by the protocol buffer +compiler, as known as protoc. As such, we can not accept contributions +directly to these generated classes. Instead, changes should be +suggested upstream in the [API Common Protos][api-common-protos] +repository. + + +### Documentation + +We want for both protocol buffers and the types that we have provided here +to be understandable to everyone, including to those who may be unfamiliar +with the ecosystem or concepts. + +That means we want our documentation to be better, and welcome anyone +willing to help with this. For documentation in the generated classes, please +open a pull request against the [API Common Protos][api-common-protos] +repository. + +Any improvements to READMEs or other non-generated documentation or +development scripts in this repository would be greatly appreciated - please +open a pull request. + + +## Contributor License Agreement + +Before we can accept your pull requests, you will need to sign a Contributor +License Agreement (CLA): + + - **If you are an individual writing original source code** and **you own the + intellectual property**, then you need to sign an [individual CLA][]. + - **If you work for a company that wants to allow you to contribute your + work**, then you need to sign a [corporate CLA][]. + +You can sign these electronically (just scroll to the bottom). After that, +we'll be able to accept your pull requests. + + [individual CLA]: https://developers.google.com/open-source/cla/individual + [corporate CLA]: https://developers.google.com/open-source/cla/corporate + [api-common-protos]: https://github.com/googleapis/api-common-protos \ No newline at end of file diff --git a/vendor/google/common-protos/LICENSE b/vendor/google/common-protos/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/google/common-protos/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/google/common-protos/README.md b/vendor/google/common-protos/README.md new file mode 100644 index 0000000..6dd98ef --- /dev/null +++ b/vendor/google/common-protos/README.md @@ -0,0 +1,41 @@ +## Common Protos PHP + +[![Latest Stable Version](https://poser.pugx.org/google/common-protos/v/stable)](https://packagist.org/packages/google/common-protos) [![Packagist](https://img.shields.io/packagist/dm/google/common-protos.svg)](https://packagist.org/packages/google/common-protos) + +* [API documentation](https://cloud.google.com/php/docs/reference/common-protos/latest) + +This repository is a home for the [protocol buffer][protobuf] types which are +common dependencies throughout the Google API ecosystem, generated for PHP. +The protobuf definitions for these generated PHP classes are provided by the +[Common Components AIP][common-components-aip] repository. + +**NOTE:** This repository is part of [Google Cloud PHP](https://github.com/googleapis/google-cloud-php). Any +support requests, bug reports, or development contributions should be directed to +that project. + +## Using these generated classes + +These classes are made available under an Apache license (see `LICENSE`) and +you are free to depend on them within your applications. They are +considered stable and will not change in backwards-incompaible ways. + +They are distributed as the [google/common-protos][packagist-common-protos] +composer package, available on [Packagist][packagist]. + +In order to depend on these classes, use composer from the command line in order +to add this package to your `composer.json` file in the `requires` section: + +```bash +composer require google/common-protos +``` + +## License + +These classes are licensed using the Apache 2.0 software license, a +permissive, copyfree license. You are free to use them in your applications +provided the license terms are honored. + +[protobuf]: https://developers.google.com/protocol-buffers/ +[common-components-aip]: https://google.aip.dev/213 +[packagist-common-protos]: https://packagist.org/packages/google/common-protos/ +[packagist]: https://packagist.org/ diff --git a/vendor/google/common-protos/SECURITY.md b/vendor/google/common-protos/SECURITY.md new file mode 100644 index 0000000..8b58ae9 --- /dev/null +++ b/vendor/google/common-protos/SECURITY.md @@ -0,0 +1,7 @@ +# Security Policy + +To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). + +The Google Security Team will respond within 5 working days of your report on g.co/vulnz. + +We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. diff --git a/vendor/google/common-protos/VERSION b/vendor/google/common-protos/VERSION new file mode 100644 index 0000000..23297c3 --- /dev/null +++ b/vendor/google/common-protos/VERSION @@ -0,0 +1 @@ +4.12.4 diff --git a/vendor/google/common-protos/composer.json b/vendor/google/common-protos/composer.json new file mode 100644 index 0000000..a69cf25 --- /dev/null +++ b/vendor/google/common-protos/composer.json @@ -0,0 +1,41 @@ +{ + "name": "google/common-protos", + "type": "library", + "description": "Google API Common Protos for PHP", + "version": "4.12.4", + "keywords": [ + "google" + ], + "homepage": "https://github.com/googleapis/common-protos-php", + "license": "Apache-2.0", + "require": { + "php": "^8.1", + "google/protobuf": "^4.31" + }, + "require-dev": { + "phpunit/phpunit": "^9.6" + }, + "autoload": { + "psr-4": { + "Google\\Api\\": "src/Api", + "Google\\Cloud\\": "src/Cloud", + "Google\\Iam\\": "src/Iam", + "Google\\Rpc\\": "src/Rpc", + "Google\\Type\\": "src/Type", + "GPBMetadata\\Google\\Api\\": "metadata/Api", + "GPBMetadata\\Google\\Cloud\\": "metadata/Cloud", + "GPBMetadata\\Google\\Iam\\": "metadata/Iam", + "GPBMetadata\\Google\\Logging\\": "metadata/Logging", + "GPBMetadata\\Google\\Rpc\\": "metadata/Rpc", + "GPBMetadata\\Google\\Type\\": "metadata/Type" + } + }, + "extra": { + "component": { + "id": "common-protos", + "target": "googleapis/common-protos-php.git", + "path": "CommonProtos", + "entry": "README.md" + } + } +} diff --git a/vendor/google/common-protos/metadata/Api/Annotations.php b/vendor/google/common-protos/metadata/Api/Annotations.php new file mode 100644 index 0000000..7bec22e --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Annotations.php @@ -0,0 +1,29 @@ +internalAddGeneratedFile( + ' + +google/api/annotations.proto +google.api google/protobuf/descriptor.protoBn +com.google.apiBAnnotationsProtoPZAgoogle.golang.org/genproto/googleapis/api/annotations;annotationsGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Auth.php b/vendor/google/common-protos/metadata/Api/Auth.php new file mode 100644 index 0000000000000000000000000000000000000000..7240db844379d53f2ab9cb2d404d9cd92e44809b GIT binary patch literal 1303 zcmZ`(T~8B16tzGry+uA&jcbf%tR$2OZNw*wXiC6}QQHunOk*?M-nIk7%rY}e1;Y=~ zN8kLH-rX&=fcB-`+jGx7=gi!F{Wctg@Ql?_q2Ug@taHZP09k0X(}9+(6ZLv%SfGzX zA<>i>+i9@RjRUs3vv=^6TCI*ufK}Glx-YT9Ls8+88qJA z|IFKiv|OfRC`y=*Lq$a?Qj%JE>yR~(MC(tp=~7|iN%=3jd=W-Uq#C{jPeGNrt?23gHXmp?_1g^kCPjE$IKA5S7-@R)>K zkAcsn)Wh~rxPgvbJ22RdEph2*iD1@y0dr=e!@r#feKbjXjkWj{3Ll2`8>?EYX;!0zm?;j|5T{ri3c~%)nec z^D-O{sN5a-pNE{Vme^BrqMkh*9@%zeL`vcHsU-vNncGTwc%x|h}`5hHOrh}J3|HS zl^?=S;1}XJT~?SX@{;7AMIjz0qY-fI zMVB!RfmbkYbaAKa;AW%kJW*5;CESA=4x%Usp-N&}9TM*Xm|xM0AjHTeh?sbQTXy{; zNa7Po1}%*rSTQ|9$P0-OxSsLQ4}{edC&Q3>SV$t(YmW+-GAbzv>35~`7>`IOKymM4 zM+x&JjTlY|UFJdg0B38a*u6MX=Q_qW3heZ#>X?HzlfW4X2MrJ&r?HHAaAeA`oHemMuG zw0-n*1)1|)H&B+TsCw+aM5|M4jb~_?Cm{&4fEUXfhYu>Zu*wwEQ~BNBOK4-}-zcFq z0U>zG6GbhQ*NuB$q5sohL|fVvvoMwpCh+oD}r;2H@4B{mv7P~iBCb*-&|Gv^|OUE z?o&aAA*h@jn`n`YXU;LISgq7U(Zw2y&=~p zy^N~+OpR2NNj}**N00vlF*eZR1x%)PtHNE8Fad4${KD0WZwkAB?)_^BMh|VvIdh$! z)#-n*oOZY4e(Ln?=1Kds-E5Q=jQgl`((UvetK+yj`=zu{+m>xNI}JCZck^7a zUP4=`iNMr+>N3?C+EN$Aj3xEWX%p$g+lBMywBLd#BrK>zJg5f1w5ioBr5aY~TSNfA tq8@k=8`0qCufJc#rIuy4hbx-+YCj*0=h?i?jOX0Z)W~cKuhBI^e*n+djT`^~ literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Billing.php b/vendor/google/common-protos/metadata/Api/Billing.php new file mode 100644 index 0000000..818aac1 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Billing.php @@ -0,0 +1,33 @@ +internalAddGeneratedFile( + ' + +google/api/billing.proto +google.api" +BillingE +consumer_destinations ( 2&.google.api.Billing.BillingDestinationA +BillingDestination +monitored_resource (  +metrics ( Bn +com.google.apiB BillingProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Client.php b/vendor/google/common-protos/metadata/Api/Client.php new file mode 100644 index 0000000000000000000000000000000000000000..28f84630237ddcb95c23c7cfe2f36a8f56e7421e GIT binary patch literal 4081 zcmbVP-Ez}L6t0sHlH(AJNP=-G6)uGU#c9K|WgKY7iH&gywrd+YWiqp~w$`#h)@r0x zAauCvTlB8I>GUDmC+PGc`V^hs^z2Hu)oK=XP(~UL)WsISJ3rxL$5bFdZk?JTtQKv2VRdAb(3?`W*gMC zHhQ+j98pj@0314GzDs*duQsmQO6l5*D?s*U0j|-lw+DQ1mFaA2>Z>aYvT|4X4M}Z|I>;iM{G_^yqC@w2jK*|P6^+|pS&{E0!x+2z z0Iz#}Oioh04*%rf!ZG)(L3mKW1jvn&L1h32cf%ORG|Y4AA#B6T)&#U%L#N$1o=uUM(?r&nJOrWm9@;eQ|pxo6?G~gys;d{Pwdm`t17h z=G8*XuMlS1uGRIZcYyaj0&5Q;=QEpO{_HbiqANXOhNXca%+8{X^rWWt2wj!nD0qm? z|2qq-6K2Nz&%)__=J`^gBCXwqC0pGw!Avq45>6rE3rWI>9ME#oe_s$M7%~qDGW_8y zZVTE5oOw?7DeZSoj?Nx|2WepLAgod0zepeZ|;Kfs*Tkl~PF9E@0AW@UPFA`aLa5i-)D ztzsP5OJezcz*LGeG`XlPkDV9B(^ zAm|dCcA1?WsIQk{t%qUcFR}HL=v*+0xnv=?MGdu~A%ZDMTr4>2Rra}(+kz$Tnbfgf zEBo0O_;q>n<76Zz62FlEYg>@9!?KG*F;t`U)(csYVV&;6d7pXv7PcKVuvCb{{*vC@NYYR0E3`wI9XaFb zau!w`;T>q3FponO8(h>@@<|2LTVL)jtR15*4YM!UK}7TnoZ6>$5O$Kq;>_Jtz69xH z9mmF{Yw68*FfLUjYx^WBewu;hL)Cr)HCi23*((>DpDF^I^clsW%H&l@XC|&<(p;gE zkb4k`<$g@T%CrOR16WmAMEwJ&M=XxLmUeAss5mcZd)MK^(EuZ1qr-kI4qWDsk&@Da zb`>rKPSo|8L881OhUJI)>}?^1sc(@}X9D0ySCa&8R#~V<`c_L*Lu~&? zP+s`Nj5)zg<^M6~b7xlDz zxFm7MBwpY+I8vihzn0`TsiUxq@K%VHg-ip%iOb!>8qs1aG`vQMkFG* zpmr!Eu;KAQWam_yJ6|Nj4tyStBvRm73m0I7EMypz?*PfL+wMLyhskfVzo!Wz1rJQ+BTZB_P zyNxI1OiDWqv!!x7Got~_Hy<`Sjdo@hDW=<O1k2=de-o}9;#jVpXn2odNAU zoNbnN9+j#U^0-vTf33{Qwgt;LzDK!$Yu9!&`2oJJ-jLu}{KxW#Son>=RTW!>8gKcmwbs Dp2iRE literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/ConfigChange.php b/vendor/google/common-protos/metadata/Api/ConfigChange.php new file mode 100644 index 0000000000000000000000000000000000000000..b0444eb417b735b750018d3555644018b6fd034e GIT binary patch literal 960 zcmaJ=ZEq4m5SG#w8JcR(L`jThY@3w&0!jS_Rs$SGKD1nvnrKMKayJ~C9J}Y;UQIRp z4!`>k{DUJOUrvj?MR8XC(aa;b^Flzu=B7V?HG#f+u}!fX@leUg(V@+z zPij4@)KWWMl}*#}8P*KPX7d)wQ&dqx`Ra%fsU#AujCYz~xjtpgUcKcj9&OKCmp#*a zsI3E2*b)3L!qfjRzyjm1>jmxqEWl2F%+@_9Q9uh4s#?H8t!(WCKK*E)a_^RBo{adiuewaST=4{T?y{U@+( zPSyjcc&p*-{TU9=hXA>ZkKs}Gefy%{n~Xj?y~*XpN2k{voDF*R{X13}w%WF>j|Hm& zr4POH;U|6Buy)|?`Or2|#m-mQ)zZ!p>FnhPlL^8peCe)Q@@1ekU6+yH@JVFKZWxyy sYn&6m8B5E&1atYdvDt4sgXwk#dwsNC;Y*{8oRI!0qAb$rWeH1wKh;(wMF0Q* literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Consumer.php b/vendor/google/common-protos/metadata/Api/Consumer.php new file mode 100644 index 0000000000000000000000000000000000000000..a62c598fa434499de18ff4c07974b10cbe843909 GIT binary patch literal 909 zcmZ`%U2hUW6qSNad#M#yAMkC8O}b4Kl4^Va(Ud~TCdd*?UkphzEO(bN%gkhU)&vdD z{uzIyvmdOO+I^Y1JLjBx?#G8uaw*{z86rnTH7>|}P4p6pR6+|+gk&E3J}Tmgm1H5R zCLw*7jNK_2^quL6p++KB9=1s!L=a+&O4jlOkK&a9rz!xPt}v3+Lo%H7KBJ}!s_AT) z5@wf@bpX7OMiIHniSQGM`D8o~nMWc`wK+~%bjLW;jE3xoaoQz54I?z<`&d8bo@RoR zgy3=y?Q@c8CfHLcOl4iNwJ=GFHHFR`u2FFs&iWX6ib*Zh#6a8a0Cmx#R9nk>N^qG6t~pbn~yB_ak*F&X|GND?E;w4&fr%WUOw1& z3$mxC8A+oH&rFry(9`CSs5HaKvH{G5@~B=SWxIOuqWPEA%(3gn?-Cqr1M3JX$wUpI zWFJ~BsOYuC`ksl7FHZhPFLb5`Xg!DOB5$vmP`#X}G)8c=)lWfBp?W*MnGCL+YiH1} zJ+cnru``~&e^)D62T0s8xDPI5rErW2N_GyILlT z7L(G~L0)DcLdt`tP(dp|E|b?*_GH=?rRyA_`p!HwTkW%;^G`J2PZ@8|iov|j=Do8X O53WXv%(h?y8-PEyAsIga literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Context.php b/vendor/google/common-protos/metadata/Api/Context.php new file mode 100644 index 0000000..74ffd87 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Context.php @@ -0,0 +1,36 @@ +internalAddGeneratedFile( + ' + +google/api/context.proto +google.api"1 +Context& +rules ( 2.google.api.ContextRule" + ContextRule +selector (  + requested (  +provided ( " +allowed_request_extensions ( # +allowed_response_extensions ( Bn +com.google.apiB ContextProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Control.php b/vendor/google/common-protos/metadata/Api/Control.php new file mode 100644 index 0000000..ead6700 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Control.php @@ -0,0 +1,32 @@ +internalAddGeneratedFile( + ' + +google/api/control.proto +google.api"Q +Control + environment ( 1 +method_policies ( 2.google.api.MethodPolicyBn +com.google.apiB ControlProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Distribution.php b/vendor/google/common-protos/metadata/Api/Distribution.php new file mode 100644 index 0000000000000000000000000000000000000000..052aa6c2bdea4fe341900215c1dae8685ddf5287 GIT binary patch literal 1699 zcma)6?QYXb5GAAybWAHSAVrogcMAwoi8@l?S4u$*?F|(l$-U|?6e-%+>tuzqYj)RA zKz$i_1|H_V4YO;<4Jxh3A7|}3XU@)?nWxXQSqAq=p9!X@VKJF}CT7M+rlgUPOvxlq z5~fHb=NV6#3JKXCkhg;)a;5WFcc{FO3%-9SXygpy_Cz=}7U+NHxUJ zZgYs3VRIFm#^%9_wnc{fw74-;3kwqW@syTa`2`^dWq|3V&VLaUY7$AsQn1y9{++ zzyi0;LQG+gyZ<-f+H&Llby$sLE=;pVYOT6|4OZriisofJ)qDa?ozKTI8S4)@RV*II z>?22WNYSjjh;3L^R7_cO1&?0mPIxLNT+S2zXQTXQurbM__sooCW?6Kz;cySm#r0hH zposQw!+ME#qIL5MsiW#Au*QzrJWHw4O~6-PXY*XfgEBJMgw;Zo2lY7@t^zgR9_VpV zfZ#_R)_+ydhmDjAM%B0wq8-fZY@eI&7kv2IfnQ$o|Am|EIFo`2J75)?Exgz1{2|-H zDFafzg6l|$6UR38POzxXVr;@{hW#z@s4+B}&9PA$RakS~Is?E} z(fa@!xV;yja2$I#mPf#?m0|7Oi*iJ!GR2t)rJA;3g literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Documentation.php b/vendor/google/common-protos/metadata/Api/Documentation.php new file mode 100644 index 0000000..2c80046 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Documentation.php @@ -0,0 +1,43 @@ +internalAddGeneratedFile( + ' + +google/api/documentation.proto +google.api" + Documentation +summary (  +pages ( 2.google.api.Page, +rules ( 2.google.api.DocumentationRule +documentation_root_url (  +service_root_url (  +overview ( "[ +DocumentationRule +selector (  + description (  +deprecation_description ( "I +Page +name (  +content ( " +subpages ( 2.google.api.PageBt +com.google.apiBDocumentationProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Endpoint.php b/vendor/google/common-protos/metadata/Api/Endpoint.php new file mode 100644 index 0000000..a51aa07 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Endpoint.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +google/api/endpoint.proto +google.api"M +Endpoint +name (  +aliases (  +targete (  + +allow_cors (Bo +com.google.apiB EndpointProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/ErrorReason.php b/vendor/google/common-protos/metadata/Api/ErrorReason.php new file mode 100644 index 0000000000000000000000000000000000000000..49f233ae3ca1264ba1b77b969a11d8c0d6defe32 GIT binary patch literal 1648 zcmaJ>+iu%N5N*;lNjHtdteyC7uj2rAidKH;n_Rb`$d$4+#bvmp5fuU!w7gOXC?r8r z4{hO}>1XtF`X!yEOqz+?>V?8w&YU?jJ3s!MeaO%u8K^|%QK_!T~cs+>&Hk6Aodd4~|26PE{s+AKJL)FNHv6V)ZNG@Z@WNtDGWD$mng<|-=Eq*Eaw zltdp@kwp_l23~Kd%IGR8qw%0h8k<>siqK>p6$PO>*{^cZABey&TU^fL2`S2`gwN}^ zkZ}^1aWs#A2f}A$8qEs@`FCTdi)2#9X+m@YPbTX44OwF9*wt;?%>vXAFrZkrpM$t9ZBY1 zm=3dzFYz{7uZ=ZO&*9cN;5@(wXt#F04FV4+^nnZYWgYSe@1d3fS(8<>5iv!DV1Gxh8z4W-ltdYE6+yOA#KpHoMcBSX@U#JyGo4Q)hC-^187I#HB1g8i= zX;;_#Ml0IbYw=d}Yy`DJp9P~kMV{dev}RhCmLuTj)CGnf^8wAkhiLy3kFdB$VJIT( z_nF108yL^=CVBxuJahvo0xd#a7guv>BL^c$hs6jzkNdjARo$Tl#Q=(#j*vqp1gwLx zra3pt)$P~FFYp$6DS)w7&f@%>-Bw-KgeuW)hA(>~nD>ym#s(fAp~D6>6y|`!u86>A zRyBl1`At0=F%khCO3(DoAq_z2HuEjKi#EAG_?LVjWo+YDXzz3PTWZ<>Q+KhWo3ED{ zZXpa_FnAfpE`E-l4lJ)V**&dCvn-!4%09+u!kVYWTukp6rU_za0!Y#$NIE=x&OTXU;r=c e@?n+s!%=f|zFXe1*6I7tvsXnfFWfb{M(7`3r_`eW literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/FieldBehavior.php b/vendor/google/common-protos/metadata/Api/FieldBehavior.php new file mode 100644 index 0000000000000000000000000000000000000000..b8a8d26ac9e55a43cb66622e35b0a3ceae022c49 GIT binary patch literal 915 zcmah{-Hww$7`40Wx{hu|5^wfG$GFLMjnWJ6TB`w}m4pIz!DLMnGKGOo!p@LkFj3PR zAH|38`5d5&-E559FhA#f-#K%>x9^K}0balvrkEpv6S(>Y#TvtcGr?k(!&Q~0n8TP| z6(q-8gV6M#>jlsI*UEXPAskYP%2o=TY6sFRA5d~zBF+eb5aP#eF+_n zGAz2+s!s;z+qQK%lEOi&aWuLmasmaf@NRbqITjVC<3@K~VAHJ{Wv}0ntqwg&y0%l9 z#GnJ#v@`H?A3Xa{1S)6&n#}0rISfxbI!fz+mbDNnxqN#2~6C< z6_Gf=5-%q?W!X2!X$oUabrchQN1(nWTgB9eRAQ-qM>JJssiZij-;~%Mgg8!# zV&BJx8S^FO3^ZZNd}5tIQBz}&60XekV5h;=ewEjy!z2+5$IBr}eL)k+g{z>QPDErm zC4FO^Y}@K`Gz6>A*y-F8*#jvuvfmv*5SaT0GTRPHkHw-|zbdFvuE0D+^^l7-mWLInSk1H7_Mc*Q z3A4vJ#ym%cASx?F%{uVpT|&~s1E^Y$&tB~F=IUX#!?ix6`j-A2nd9l~sz3J@*I(Sx zCui)8hQYx15G75TCesf}pweCtrmfVi1c@lOlzNY{Wi}F4?=Yi_53vYE@<;?6O3uB*hNbqO)*LxAO=9l3$_KJVG`c4?dvdF?W12 z%)yhs7N-DF%B^MRE9Pc4$;ZR|XgkrPTX z?=X@PhR3Xk>9L1eQAIuWH~rWbNd-{X?-{` zXJNsy+r34y$DGMGq75pn8g8CEYX8HuJ>U~PwkAjLWS*tz^)$vv#W*!+(R{^t zir+MsmP8HKSS4)i|6GH{(rp(S7E_E!F$!M^o2_lAl4?1&d4A7db>@Pqf1~RT)U>iL zsFn9!sK?~*Fjy}w_hDUg7cGK%Y3M*b%B)jYL4z!tCy!V8zs+AfoiTU5iIigtYBLpI z2OB;>YY(=m6s@GiX>Q)i%`e~~k7JrDMSY*ngp7quY_NH^M1v-55Hp`-zXK0$W%hZ$ zP@GZ+x)FL&2r)=thgN8X`JkDT_7ga+eD0SmNmR;Z(pDzvBq;M0>J(4ZP@69oms0t~ opn^_U&cD}c!~XbUR?nSY9xW&4Suuz!b9?8^=E!0^Z{P;t56?zATmS$7 literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Httpbody.php b/vendor/google/common-protos/metadata/Api/Httpbody.php new file mode 100644 index 0000000..88417c2 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Httpbody.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +google/api/httpbody.proto +google.api"X +HttpBody + content_type (  +data ( ( + +extensions ( 2.google.protobuf.AnyBe +com.google.apiB HttpBodyProtoPZ;google.golang.org/genproto/googleapis/api/httpbody;httpbodyGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Label.php b/vendor/google/common-protos/metadata/Api/Label.php new file mode 100644 index 0000000000000000000000000000000000000000..3dd6ebb152e320fba416aa29e8491182ed673ccb GIT binary patch literal 810 zcmZ`%U279T6g6or<`!yLLGpO5m8MWP;1`$}B_SFDH3=GgkcBe4x!Dd*XNK8XAxi#< zPrmsto!N~^u(~h1+&$;sbI-Z2-sme04{=D646`)Hc!~CkP#a}cq6EhIVnGHIb*;G| z6Cw^KIG)V#?O-%};Ha6(O+sxS^8qNCe9=yznge4(J}8$ATxAS!UhqglCsra?6?E-<-xSE||#3F>hiQxlAlq5A^jie9*3p~KH)G#9Klnzi61z*i=6y0lA8jjF31J$V#vJA{9+!%rSPbKu|} z9M0EfIlmiwzTfdV)V2tKgO9Thqw%nQE4Tyu{mJB_UI}V&do-TCcvi3WqX>@NW$n!C zLou+(Wm@_Ce61u^g2^;gCT*o8i_2=2zucDD_UJmoAJNb1{;)S4#RmoO>FLJ1^D>g1 P1pk{}fh>bs!3y9vALaR7 literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/LaunchStage.php b/vendor/google/common-protos/metadata/Api/LaunchStage.php new file mode 100644 index 0000000000000000000000000000000000000000..3f19c3ce1315d0fbd6aabec2b30fcc007d3ea926 GIT binary patch literal 811 zcmaJfgc5G5fkbfA^-i33Q3sMHkE%k^@zwXya_0mE2uxy*>cS zKj1fT;Fq$tLx@y?CCk>%dvD&%+mD}5dzCV3qsj13z$XggG6~(;C648uVCd17lH7w$dLJ2^!d!8mNF0QHH%Yj z`46#c>%#~oF(-^=$m^F_YUbGUMA-p5_{T+%&ur(N`_gbNSv>FaG}Iz7N(UC&YDL`a zH9N&%V6uZoXZ)}`qUI*kvR(Mj1-ARY!r9d)vGYMzt9{#Rn?ijL z%xM?!vkI^OyM7nSa>J(c?necl9W2>>1uq9=HtO9hCR5_k#cVVQXwSd)Y2SI|zJSx& z$R7p+I;5kiJvw$z;Uu`FCC7QGkMj;#AxdI3k1KhB#ICDb%`jN}R{; zF;qR`)Z8a!cW`DeSL3h2u5;k7$Rw!TUG3_TikXZWN=MCz%i?Y|%aR=} m&2L}ZzQ3w9j|BemxBz^(*zfCo8N)$p|4ghvmf>t+3-B8_n)H?c literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Log.php b/vendor/google/common-protos/metadata/Api/Log.php new file mode 100644 index 0000000..6fe86a6 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Log.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +google/api/log.proto +google.api"u + LogDescriptor +name ( + +labels ( 2.google.api.LabelDescriptor + description (  + display_name ( Bj +com.google.apiBLogProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Logging.php b/vendor/google/common-protos/metadata/Api/Logging.php new file mode 100644 index 0000000..179277d --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Logging.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +google/api/logging.proto +google.api" +LoggingE +producer_destinations ( 2&.google.api.Logging.LoggingDestinationE +consumer_destinations ( 2&.google.api.Logging.LoggingDestination> +LoggingDestination +monitored_resource (  +logs ( Bn +com.google.apiB LoggingProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Metric.php b/vendor/google/common-protos/metadata/Api/Metric.php new file mode 100644 index 0000000000000000000000000000000000000000..93c38242c59cb1ad775770f371e44b9df1c94bbb GIT binary patch literal 2077 zcma)7ZExd55GF6pHIuZ845FqdPD`n1PSE5i$BWV{C@mv&mSb;I>m1wI z&Pf6F6Z{fB^B4G4`~hayc~g2VHf5BvsDyRXhurye(E=LeAxdjpQ`RlnWwC+_ZN>kUvYCC*>cuX)UmuJSbqowdoE9Gkem~n zA3@P}qQEt0hDi5`*loi$au%0O2HYu}eEVp~%>-~QoTXzZt~W$3BG~T9-a42n8Yc86 z5s)W7GWJ7e8zD=^gUCFRcd*p?{l7CHKN#)njcB}g4@YaH<&^XSb|P~UxXcJx==e5v zl&Aa2g5g3lm4&dSDij@W%%a$^8J0~n^ihXDQg9eM6J|shfkmslZXKMPp>;bmT=tH+ zauze(J-J$hMrF^1uu{{#jYXv^I!5S=0KIwLE*9`AM?d&I1?0bsq?hnQS1zg1r#*%C zjUMf5gI<#w7Ygmwd(De$L#0<#H3pr2mo}Aig|9jUb^RU&f584zl@v}u$y^dhJ z0L{VWKt=E?ih#dBekJ&Q`1q=>4yd7Dcj*S)He?%`rY2}gNB{0+Lan6@8Y&`jntkNb zX_vA*iI&1wje$sFi&MDNI`q1fJD5T)$zeGb_@&NEm5s6R?0zSc=@3yb4rlwvP!Pi+ zSz;A4Z`o`=6FjB>*Co1^6v{wjHc)}E{fpDSURJT7-|2kinternalAddGeneratedFile( + ' + +#google/api/monitored_resource.proto +google.apigoogle/api/launch_stage.protogoogle/protobuf/struct.proto" +MonitoredResourceDescriptor +name (  +type (  + display_name (  + description ( + +labels ( 2.google.api.LabelDescriptor- + launch_stage (2.google.api.LaunchStage" +MonitoredResource +type ( 9 +labels ( 2).google.api.MonitoredResource.LabelsEntry- + LabelsEntry +key (  +value ( :8" +MonitoredResourceMetadata. + system_labels ( 2.google.protobuf.StructJ + user_labels ( 25.google.api.MonitoredResourceMetadata.UserLabelsEntry1 +UserLabelsEntry +key (  +value ( :8Bv +com.google.apiBMonitoredResourceProtoPZCgoogle.golang.org/genproto/googleapis/api/monitoredres;monitoredresGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Monitoring.php b/vendor/google/common-protos/metadata/Api/Monitoring.php new file mode 100644 index 0000000..2b13194 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Monitoring.php @@ -0,0 +1,35 @@ +internalAddGeneratedFile( + ' + +google/api/monitoring.proto +google.api" + +MonitoringK +producer_destinations ( 2,.google.api.Monitoring.MonitoringDestinationK +consumer_destinations ( 2,.google.api.Monitoring.MonitoringDestinationD +MonitoringDestination +monitored_resource (  +metrics ( Bq +com.google.apiBMonitoringProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Policy.php b/vendor/google/common-protos/metadata/Api/Policy.php new file mode 100644 index 0000000..c7d3fee --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Policy.php @@ -0,0 +1,35 @@ +internalAddGeneratedFile( + ' + +google/api/policy.proto +google.api google/protobuf/descriptor.proto"S + FieldPolicy +selector (  +resource_permission (  + resource_type ( "S + MethodPolicy +selector ( 1 +request_policies ( 2.google.api.FieldPolicyBm +com.google.apiB PolicyProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Quota.php b/vendor/google/common-protos/metadata/Api/Quota.php new file mode 100644 index 0000000..4226383 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Quota.php @@ -0,0 +1,55 @@ +internalAddGeneratedFile( + ' + +google/api/quota.proto +google.api"] +Quota& +limits ( 2.google.api.QuotaLimit, + metric_rules ( 2.google.api.MetricRule" + +MetricRule +selector ( = + metric_costs ( 2\'.google.api.MetricRule.MetricCostsEntry2 +MetricCostsEntry +key (  +value (:8" + +QuotaLimit +name (  + description (  + default_limit ( + max_limit ( + free_tier ( +duration (  +metric (  +unit ( 2 +values + ( 2".google.api.QuotaLimit.ValuesEntry + display_name ( - + ValuesEntry +key (  +value (:8Bl +com.google.apiB +QuotaProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Resource.php b/vendor/google/common-protos/metadata/Api/Resource.php new file mode 100644 index 0000000000000000000000000000000000000000..3e175ea87dc73c383b6b281c6c1af5559381e162 GIT binary patch literal 1132 zcmah|(QeZ)6s29afd!=tATlH*Qzq6)&`O&SsAHgPO}j{48>J~yp;F|gZffBflR zw4dSQc;p*!oHi>=6M2bseb2e)o_qb_Q#6mjOW45-b0qK-P8LwiF^qU9LO-N%lFVk9 zLqEKX2*tb(VXF^&eHWT7%Y7lCahPx)H(?Nl0mTgzkp{t@b!E~x`sHAsbdro5M-9j(PK>6@h{aQ)=W{vuJmaUb+RzwqysJ^L) zD&THRSddV}^(_@S0-Lc|P^<%4y?nU$AL2opTm1^QR~4RuN9WeS?K>lH*c;g9nbo$; zR^^WN9PIWTt7G+yZg=DjtX`*UdbZ)ZrqinwG#xx{58a_-dKbg4Yvnh^>U*%Ms%THZ z&cGc>)ZfGs*)q?%hGV$aXVYstmf34{N0mbLE!bIk;b8g3uw2uB?3V8Ob3&({8bL9& z;Pe|P%g4CZ`00ZcjoM?o@Woi#9fTCIpdRv|5n!f9-^i}yO2q1^BF4h>d4()KUOWFR hmO6%QO|}&1Xg}Y(*V#I+ZU3#CuQIbGzXDeP`~flCT73Wj literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Api/Routing.php b/vendor/google/common-protos/metadata/Api/Routing.php new file mode 100644 index 0000000..6139d25 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Routing.php @@ -0,0 +1,33 @@ +internalAddGeneratedFile( + ' + +google/api/routing.proto +google.api google/protobuf/descriptor.proto"G + RoutingRule8 +routing_parameters ( 2.google.api.RoutingParameter"8 +RoutingParameter +field (  + path_template ( Bj +com.google.apiB RoutingProtoPZAgoogle.golang.org/genproto/googleapis/api/annotations;annotationsGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Service.php b/vendor/google/common-protos/metadata/Api/Service.php new file mode 100644 index 0000000..109365a --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Service.php @@ -0,0 +1,80 @@ +internalAddGeneratedFile( + ' + +google/api/service.proto +google.apigoogle/api/backend.protogoogle/api/billing.protogoogle/api/client.protogoogle/api/context.protogoogle/api/control.protogoogle/api/documentation.protogoogle/api/endpoint.protogoogle/api/http.protogoogle/api/log.protogoogle/api/logging.protogoogle/api/metric.proto#google/api/monitored_resource.protogoogle/api/monitoring.protogoogle/api/quota.protogoogle/api/source_info.proto!google/api/system_parameter.protogoogle/api/usage.protogoogle/protobuf/api.protogoogle/protobuf/type.protogoogle/protobuf/wrappers.proto" +Service +name (  +title (  +producer_project_id (  + +id! ( " +apis ( 2.google.protobuf.Api$ +types ( 2.google.protobuf.Type$ +enums ( 2.google.protobuf.Enum0 + documentation ( 2.google.api.Documentation$ +backend ( 2.google.api.Backend +http ( 2.google.api.Http +quota + ( 2.google.api.Quota2 +authentication ( 2.google.api.Authentication$ +context ( 2.google.api.Context +usage ( 2.google.api.Usage\' + endpoints ( 2.google.api.Endpoint$ +control ( 2.google.api.Control\' +logs ( 2.google.api.LogDescriptor- +metrics ( 2.google.api.MetricDescriptorD +monitored_resources ( 2\'.google.api.MonitoredResourceDescriptor$ +billing ( 2.google.api.Billing$ +logging ( 2.google.api.Logging* + +monitoring ( 2.google.api.Monitoring7 +system_parameters ( 2.google.api.SystemParameters+ + source_info% ( 2.google.api.SourceInfo* + +publishing- ( 2.google.api.Publishing4 +config_version ( 2.google.protobuf.UInt32ValueBn +com.google.apiB ServiceProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/SourceInfo.php b/vendor/google/common-protos/metadata/Api/SourceInfo.php new file mode 100644 index 0000000..9e3a180 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/SourceInfo.php @@ -0,0 +1,32 @@ +internalAddGeneratedFile( + ' + +google/api/source_info.proto +google.api"8 + +SourceInfo* + source_files ( 2.google.protobuf.AnyBq +com.google.apiBSourceInfoProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/SystemParameter.php b/vendor/google/common-protos/metadata/Api/SystemParameter.php new file mode 100644 index 0000000..d341405 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/SystemParameter.php @@ -0,0 +1,38 @@ +internalAddGeneratedFile( + ' + +!google/api/system_parameter.proto +google.api"B +SystemParameters. +rules ( 2.google.api.SystemParameterRule"X +SystemParameterRule +selector ( / + +parameters ( 2.google.api.SystemParameter"Q +SystemParameter +name (  + http_header (  +url_query_parameter ( Bv +com.google.apiBSystemParameterProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Usage.php b/vendor/google/common-protos/metadata/Api/Usage.php new file mode 100644 index 0000000..3d7a644 --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Usage.php @@ -0,0 +1,37 @@ +internalAddGeneratedFile( + ' + +google/api/usage.proto +google.api"j +Usage + requirements ( $ +rules ( 2.google.api.UsageRule% +producer_notification_channel ( "] + UsageRule +selector (  +allow_unregistered_calls ( +skip_service_control (Bl +com.google.apiB +UsageProtoPZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfigGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Api/Visibility.php b/vendor/google/common-protos/metadata/Api/Visibility.php new file mode 100644 index 0000000..e9dd98b --- /dev/null +++ b/vendor/google/common-protos/metadata/Api/Visibility.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +google/api/visibility.proto +google.api google/protobuf/descriptor.proto"7 + +Visibility) +rules ( 2.google.api.VisibilityRule"7 +VisibilityRule +selector (  + restriction ( Bk +com.google.apiBVisibilityProtoPZ?google.golang.org/genproto/googleapis/api/visibility;visibilityGAPIbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Cloud/ExtendedOperations.php b/vendor/google/common-protos/metadata/Cloud/ExtendedOperations.php new file mode 100644 index 0000000000000000000000000000000000000000..08219cbcbcb69d82b9b2ba9961a36ff66c78a095 GIT binary patch literal 862 zcma))(T>tU6oy?S8=bhO_D18?F>YMeC|r0~L<6)-xPTI1Zwv_;ribn%-I>YEG;uY& zj4$G=Ic=dK5)*qhZU6Jnf6jM4e^qyiyoC`8)YM`En+LFW2ue#Unap65Z?~v{$$P~! z)NOz;hH1QnC>$@}xKbl?%`kve$~40c%VeH(@ViBkV6v8~@a0mNc4U^>MkKHqsBnAcZq8g@{@pjRKCeL17n>vgG+AKTyV>2#(%gLda$LL zL1%NS-R6Q7aiA!O1;f@gRGx+QQc2fx4-Ro=#T48GR%2mN3!1G$G)!}4rJgxy5Tt19 z*%e<}*ZXS=JHCZhl`#lTLiWJw9FK1Y&}eflx@GRdU{{~YWFNoqeU5&T)YslPF0EQv zlwFbE4f5{)fcVcUUAqML`hc;7o{3oP2?N1`_%qQf0vFtBz7hc1EPDnJL$Mf|t4kPce|AJgp?~`b;=#L_=Id~wR zTe$Xdvcb#KZ7A`~&b|%z!c=Bdq;09wPKu&zp;P^$ikrVyQ!3Lvtf@QyYBWdv*?4na ZmVLUa2l}DnbcFSvNK0i!Z%1~7`~l>L6}12W literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Cloud/Location/Locations.php b/vendor/google/common-protos/metadata/Cloud/Location/Locations.php new file mode 100644 index 0000000..ad572c2 --- /dev/null +++ b/vendor/google/common-protos/metadata/Cloud/Location/Locations.php @@ -0,0 +1,53 @@ +internalAddGeneratedFile( + ' + +%google/cloud/location/locations.protogoogle.cloud.locationgoogle/protobuf/any.protogoogle/api/client.proto"[ +ListLocationsRequest +name (  +filter (  + page_size ( + +page_token ( "d +ListLocationsResponse2 + locations ( 2.google.cloud.location.Location +next_page_token ( "" +GetLocationRequest +name ( " +Location +name (  + location_id (  + display_name ( ; +labels ( 2+.google.cloud.location.Location.LabelsEntry& +metadata ( 2.google.protobuf.Any- + LabelsEntry +key (  +value ( :82 + Locations + ListLocations+.google.cloud.location.ListLocationsRequest,.google.cloud.location.ListLocationsResponse"?9/v1/{name=locations}Z!/v1/{name=projects/*}/locations + GetLocation).google.cloud.location.GetLocationRequest.google.cloud.location.Location"C=/v1/{name=locations/*}Z#!/v1/{name=projects/*/locations/*}HAcloud.googleapis.comA.https://www.googleapis.com/auth/cloud-platformBo +com.google.cloud.locationBLocationsProtoPZ=google.golang.org/genproto/googleapis/cloud/location;locationbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Google/Iam/V1/IamPolicy.php b/vendor/google/common-protos/metadata/Google/Iam/V1/IamPolicy.php new file mode 100644 index 0000000..05b9b12 --- /dev/null +++ b/vendor/google/common-protos/metadata/Google/Iam/V1/IamPolicy.php @@ -0,0 +1,53 @@ +internalAddGeneratedFile( + ' + +google/iam/v1/iam_policy.proto google.iam.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.protogoogle/iam/v1/options.protogoogle/iam/v1/policy.proto google/protobuf/field_mask.proto" +SetIamPolicyRequest +resource ( B AA +** +policy ( 2.google.iam.v1.PolicyBA/ + update_mask ( 2.google.protobuf.FieldMask"d +GetIamPolicyRequest +resource ( B AA +*0 +options ( 2.google.iam.v1.GetPolicyOptions"R +TestIamPermissionsRequest +resource ( B AA +* + permissions ( BA"1 +TestIamPermissionsResponse + permissions ( 2 + IAMPolicyt + SetIamPolicy".google.iam.v1.SetIamPolicyRequest.google.iam.v1.Policy")#"/v1/{resource=**}:setIamPolicy:*t + GetIamPolicy".google.iam.v1.GetIamPolicyRequest.google.iam.v1.Policy")#"/v1/{resource=**}:getIamPolicy:* +TestIamPermissions(.google.iam.v1.TestIamPermissionsRequest).google.iam.v1.TestIamPermissionsResponse"/)"$/v1/{resource=**}:testIamPermissions:*Aiam-meta-api.googleapis.comB| +com.google.iam.v1BIamPolicyProtoPZ)cloud.google.com/go/iam/apiv1/iampb;iampbGoogle.Cloud.Iam.V1Google\\Cloud\\Iam\\V1bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Google/Iam/V1/Logging/AuditData.php b/vendor/google/common-protos/metadata/Google/Iam/V1/Logging/AuditData.php new file mode 100644 index 0000000..3dcb651 --- /dev/null +++ b/vendor/google/common-protos/metadata/Google/Iam/V1/Logging/AuditData.php @@ -0,0 +1,30 @@ +internalAddGeneratedFile( + ' + +&google/iam/v1/logging/audit_data.protogoogle.iam.v1.logging"= + AuditData0 + policy_delta ( 2.google.iam.v1.PolicyDeltaB +com.google.iam.v1.loggingBAuditDataProtoPZ9cloud.google.com/go/iam/apiv1/logging/loggingpb;loggingpbGoogle.Cloud.Iam.V1.Loggingbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Google/Iam/V1/Options.php b/vendor/google/common-protos/metadata/Google/Iam/V1/Options.php new file mode 100644 index 0000000..630ae5b --- /dev/null +++ b/vendor/google/common-protos/metadata/Google/Iam/V1/Options.php @@ -0,0 +1,29 @@ +internalAddGeneratedFile( + ' + +google/iam/v1/options.proto google.iam.v1"4 +GetPolicyOptions +requested_policy_version (B} +com.google.iam.v1B OptionsProtoPZ)cloud.google.com/go/iam/apiv1/iampb;iampbGoogle.Cloud.Iam.V1Google\\Cloud\\Iam\\V1bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Google/Iam/V1/Policy.php b/vendor/google/common-protos/metadata/Google/Iam/V1/Policy.php new file mode 100644 index 0000000000000000000000000000000000000000..ed5ae8178e3ce96fe8fda137efadc1b714c283ad GIT binary patch literal 1757 zcmbVNU2o$=6va(RH#coJ^`a$OgcwX=QwdxpD?XHNL2jL`ENzphWV?VYMUFGcj^ubO zds1zIN<8pCc;^rB#2?@n@yMN-I8D5i2l9}_<8#kF=ickz|xc5sU*7_-87@_kx*!**pRWqae#jUq!-CK=6~yN614m z5eWR*XW5X&Ot2tgKcd!SG6|xLV(6RL$vh4P<1vu|y*Q+e1EM)4c0b|h?U>{m`qD01 z^}SfoG!7!)rCFG=MDVna&~|%D#j;59q;arFE9uyTG_=Nc`wfxDM5J@Nnw^l8ig_9z zDczFbX8F(mmkJH86Y6(fCuzHV>*h9CnfdH%wvg_O$4jNpuxE`Wx6JeyeyhNvyPIY1 z=zBIc(!Oe1zZy{1Eiv!I))h@NENa~#M&oU>0ry5M9VXAGb3tKrC-bi^wm4=EGHKVf;>Z)%b zXT{uy3MN4wsZ$15TYGsLfrYeXA+7JAx|$4GGMZkoFsJ9c&hSO|+kWTNd**fA+FRx>fa9Kf-Qh*YachRWcAbGUe0kvwI<*aR2P*1X-7Zw`k1s*|ppinjhV zV0(?O1?50J$BV*Q1%_3y?I@(295o;t*!&8bF6+{%VJOVU=3VpgIg}S{55aU!2VSpR zDDD=N99LEqpnTCe?_FX=rT$vcl=(%$!zTp~#em$$%1~-6@524UI4nHXRt8L3s#yO| z|H;p=hns#~-^pSq)Q;>MKOBS+pO144!Vjlht^FWjxcTv^NJdBM`)|YeedB>%^Y*EV v@^GtMHvh^`eP12>>Lq}0fl*n#F`hhL?yOJs_FP%EcP?6m)NAnuZUFuP&9ek- literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Google/Iam/V1/ResourcePolicyMember.php b/vendor/google/common-protos/metadata/Google/Iam/V1/ResourcePolicyMember.php new file mode 100644 index 0000000..aa0d561 --- /dev/null +++ b/vendor/google/common-protos/metadata/Google/Iam/V1/ResourcePolicyMember.php @@ -0,0 +1,31 @@ +internalAddGeneratedFile( + ' + +*google/iam/v1/resource_policy_member.proto google.iam.v1"e +ResourcePolicyMember& +iam_policy_name_principal ( BA% +iam_policy_uid_principal ( BAB +com.google.iam.v1BResourcePolicyMemberProtoPZ)cloud.google.com/go/iam/apiv1/iampb;iampbGoogle.Cloud.Iam.V1Google\\Cloud\\Iam\\V1bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Google/Logging/Type/HttpRequest.php b/vendor/google/common-protos/metadata/Google/Logging/Type/HttpRequest.php new file mode 100644 index 0000000..3c51368 --- /dev/null +++ b/vendor/google/common-protos/metadata/Google/Logging/Type/HttpRequest.php @@ -0,0 +1,46 @@ +internalAddGeneratedFile( + ' + +&google/logging/type/http_request.protogoogle.logging.type" + HttpRequest +request_method (  + request_url (  + request_size ( +status ( + response_size ( + +user_agent (  + remote_ip (  + server_ip (  +referer ( * +latency ( 2.google.protobuf.Duration + cache_lookup ( + cache_hit (* +"cache_validated_with_origin_server + ( +cache_fill_bytes ( +protocol ( B +com.google.logging.typeBHttpRequestProtoPZ8google.golang.org/genproto/googleapis/logging/type;ltypeGoogle.Cloud.Logging.TypeGoogle\\Cloud\\Logging\\TypeGoogle::Cloud::Logging::Typebproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Google/Logging/Type/LogSeverity.php b/vendor/google/common-protos/metadata/Google/Logging/Type/LogSeverity.php new file mode 100644 index 0000000000000000000000000000000000000000..6acaa6953afd9c7c064b5952b940a1f6b109bc51 GIT binary patch literal 948 zcma)4-HOvd7`4Ca&Z>lXA%YhpE^b#ez3@g-tMn%gfo@Y`7f}MsG?``xvY9ZM2vvIH z6NpbBUW$+4tsp*u&)~HW;LIc&Dyv{_lFWC`_nrC9dHggzO~D;#;{-FraR`@d$WJj$ z8RayfFGawwhaON(cHFg%a1vR5N3$O_zN~0KeV;V&yiMo89s-Ke# zzru|0wV_%9kf1Z1r6|DAo)3>OMIi*@Gvf)G-LdYV1V#(y4%wb^zWtz}^2dM896(jM6wm8h7t)4eV{LUEc#c zV{0-vo-VXY`YvdVt>Lk)h2pd6%qFh(ttKFC5esKzX`k!*6|nPs;LV(wt-WjL0JJR6 zb3N@>L%#|xk32`<22<@vQinternalAddGeneratedFile( + ' + +google/iam/v1/iam_policy.proto google.iam.v1google/api/client.protogoogle/api/field_behavior.protogoogle/api/resource.protogoogle/iam/v1/options.protogoogle/iam/v1/policy.proto google/protobuf/field_mask.proto" +SetIamPolicyRequest +resource ( B AA +** +policy ( 2.google.iam.v1.PolicyBA/ + update_mask ( 2.google.protobuf.FieldMask"d +GetIamPolicyRequest +resource ( B AA +*0 +options ( 2.google.iam.v1.GetPolicyOptions"R +TestIamPermissionsRequest +resource ( B AA +* + permissions ( BA"1 +TestIamPermissionsResponse + permissions ( 2 + IAMPolicyt + SetIamPolicy".google.iam.v1.SetIamPolicyRequest.google.iam.v1.Policy")#"/v1/{resource=**}:setIamPolicy:*t + GetIamPolicy".google.iam.v1.GetIamPolicyRequest.google.iam.v1.Policy")#"/v1/{resource=**}:getIamPolicy:* +TestIamPermissions(.google.iam.v1.TestIamPermissionsRequest).google.iam.v1.TestIamPermissionsResponse"/)"$/v1/{resource=**}:testIamPermissions:*Aiam-meta-api.googleapis.comB| +com.google.iam.v1BIamPolicyProtoPZ)cloud.google.com/go/iam/apiv1/iampb;iampbGoogle.Cloud.Iam.V1Google\\Cloud\\Iam\\V1bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Iam/V1/Logging/AuditData.php b/vendor/google/common-protos/metadata/Iam/V1/Logging/AuditData.php new file mode 100644 index 0000000..3dcb651 --- /dev/null +++ b/vendor/google/common-protos/metadata/Iam/V1/Logging/AuditData.php @@ -0,0 +1,30 @@ +internalAddGeneratedFile( + ' + +&google/iam/v1/logging/audit_data.protogoogle.iam.v1.logging"= + AuditData0 + policy_delta ( 2.google.iam.v1.PolicyDeltaB +com.google.iam.v1.loggingBAuditDataProtoPZ9cloud.google.com/go/iam/apiv1/logging/loggingpb;loggingpbGoogle.Cloud.Iam.V1.Loggingbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Iam/V1/Options.php b/vendor/google/common-protos/metadata/Iam/V1/Options.php new file mode 100644 index 0000000..630ae5b --- /dev/null +++ b/vendor/google/common-protos/metadata/Iam/V1/Options.php @@ -0,0 +1,29 @@ +internalAddGeneratedFile( + ' + +google/iam/v1/options.proto google.iam.v1"4 +GetPolicyOptions +requested_policy_version (B} +com.google.iam.v1B OptionsProtoPZ)cloud.google.com/go/iam/apiv1/iampb;iampbGoogle.Cloud.Iam.V1Google\\Cloud\\Iam\\V1bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Iam/V1/Policy.php b/vendor/google/common-protos/metadata/Iam/V1/Policy.php new file mode 100644 index 0000000000000000000000000000000000000000..ed5ae8178e3ce96fe8fda137efadc1b714c283ad GIT binary patch literal 1757 zcmbVNU2o$=6va(RH#coJ^`a$OgcwX=QwdxpD?XHNL2jL`ENzphWV?VYMUFGcj^ubO zds1zIN<8pCc;^rB#2?@n@yMN-I8D5i2l9}_<8#kF=ickz|xc5sU*7_-87@_kx*!**pRWqae#jUq!-CK=6~yN614m z5eWR*XW5X&Ot2tgKcd!SG6|xLV(6RL$vh4P<1vu|y*Q+e1EM)4c0b|h?U>{m`qD01 z^}SfoG!7!)rCFG=MDVna&~|%D#j;59q;arFE9uyTG_=Nc`wfxDM5J@Nnw^l8ig_9z zDczFbX8F(mmkJH86Y6(fCuzHV>*h9CnfdH%wvg_O$4jNpuxE`Wx6JeyeyhNvyPIY1 z=zBIc(!Oe1zZy{1Eiv!I))h@NENa~#M&oU>0ry5M9VXAGb3tKrC-bi^wm4=EGHKVf;>Z)%b zXT{uy3MN4wsZ$15TYGsLfrYeXA+7JAx|$4GGMZkoFsJ9c&hSO|+kWTNd**fA+FRx>fa9Kf-Qh*YachRWcAbGUe0kvwI<*aR2P*1X-7Zw`k1s*|ppinjhV zV0(?O1?50J$BV*Q1%_3y?I@(295o;t*!&8bF6+{%VJOVU=3VpgIg}S{55aU!2VSpR zDDD=N99LEqpnTCe?_FX=rT$vcl=(%$!zTp~#em$$%1~-6@524UI4nHXRt8L3s#yO| z|H;p=hns#~-^pSq)Q;>MKOBS+pO144!Vjlht^FWjxcTv^NJdBM`)|YeedB>%^Y*EV v@^GtMHvh^`eP12>>Lq}0fl*n#F`hhL?yOJs_FP%EcP?6m)NAnuZUFuP&9ek- literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Iam/V1/ResourcePolicyMember.php b/vendor/google/common-protos/metadata/Iam/V1/ResourcePolicyMember.php new file mode 100644 index 0000000..aa0d561 --- /dev/null +++ b/vendor/google/common-protos/metadata/Iam/V1/ResourcePolicyMember.php @@ -0,0 +1,31 @@ +internalAddGeneratedFile( + ' + +*google/iam/v1/resource_policy_member.proto google.iam.v1"e +ResourcePolicyMember& +iam_policy_name_principal ( BA% +iam_policy_uid_principal ( BAB +com.google.iam.v1BResourcePolicyMemberProtoPZ)cloud.google.com/go/iam/apiv1/iampb;iampbGoogle.Cloud.Iam.V1Google\\Cloud\\Iam\\V1bproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Logging/Type/HttpRequest.php b/vendor/google/common-protos/metadata/Logging/Type/HttpRequest.php new file mode 100644 index 0000000..3c51368 --- /dev/null +++ b/vendor/google/common-protos/metadata/Logging/Type/HttpRequest.php @@ -0,0 +1,46 @@ +internalAddGeneratedFile( + ' + +&google/logging/type/http_request.protogoogle.logging.type" + HttpRequest +request_method (  + request_url (  + request_size ( +status ( + response_size ( + +user_agent (  + remote_ip (  + server_ip (  +referer ( * +latency ( 2.google.protobuf.Duration + cache_lookup ( + cache_hit (* +"cache_validated_with_origin_server + ( +cache_fill_bytes ( +protocol ( B +com.google.logging.typeBHttpRequestProtoPZ8google.golang.org/genproto/googleapis/logging/type;ltypeGoogle.Cloud.Logging.TypeGoogle\\Cloud\\Logging\\TypeGoogle::Cloud::Logging::Typebproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Logging/Type/LogSeverity.php b/vendor/google/common-protos/metadata/Logging/Type/LogSeverity.php new file mode 100644 index 0000000000000000000000000000000000000000..6acaa6953afd9c7c064b5952b940a1f6b109bc51 GIT binary patch literal 948 zcma)4-HOvd7`4Ca&Z>lXA%YhpE^b#ez3@g-tMn%gfo@Y`7f}MsG?``xvY9ZM2vvIH z6NpbBUW$+4tsp*u&)~HW;LIc&Dyv{_lFWC`_nrC9dHggzO~D;#;{-FraR`@d$WJj$ z8RayfFGawwhaON(cHFg%a1vR5N3$O_zN~0KeV;V&yiMo89s-Ke# zzru|0wV_%9kf1Z1r6|DAo)3>OMIi*@Gvf)G-LdYV1V#(y4%wb^zWtz}^2dM896(jM6wm8h7t)4eV{LUEc#c zV{0-vo-VXY`YvdVt>Lk)h2pd6%qFh(ttKFC5esKzX`k!*6|nPs;LV(wt-WjL0JJR6 zb3N@>L%#|xk32`<22<@vQl?)CBekL67XukeuPyov;$;>lMmZa6NhLKJb4;mLe9;}wpJ z+cM2~)xp@XF|&P44by)qsdX{0V&20^Q6w4fR%P6ciz)9k3IKU@%j+_VIUYLw5f{-k z647|rfX8kbp8>>KRM%LSB=`YUS$6oJ|$#X2KIe%Ck(H_Ssefqx-_|D&1_P5j^o4hzHUrz52k|K-p zq*GK$H{p2``0nB;D${!T6wcIp_|aN*9euLipiWPg7y5RQlLxW-Z=@RJB0YC-2k;xt Cy$~`0 literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Rpc/Context/AttributeContext.php b/vendor/google/common-protos/metadata/Rpc/Context/AttributeContext.php new file mode 100644 index 0000000..d7402e2 --- /dev/null +++ b/vendor/google/common-protos/metadata/Rpc/Context/AttributeContext.php @@ -0,0 +1,109 @@ +internalAddGeneratedFile( + ' + +*google/rpc/context/attribute_context.protogoogle.rpc.contextgoogle/protobuf/duration.protogoogle/protobuf/struct.protogoogle/protobuf/timestamp.proto" +AttributeContext9 +origin ( 2).google.rpc.context.AttributeContext.Peer9 +source ( 2).google.rpc.context.AttributeContext.Peer> + destination ( 2).google.rpc.context.AttributeContext.Peer= +request ( 2,.google.rpc.context.AttributeContext.Request? +response ( 2-.google.rpc.context.AttributeContext.Response? +resource ( 2-.google.rpc.context.AttributeContext.Resource5 +api ( 2(.google.rpc.context.AttributeContext.Api( + +extensions ( 2.google.protobuf.Any +Peer + +ip (  +port (E +labels ( 25.google.rpc.context.AttributeContext.Peer.LabelsEntry + principal (  + region_code ( - + LabelsEntry +key (  +value ( :8L +Api +service (  + operation (  +protocol (  +version (  +Auth + principal (  + audiences (  + presenter ( \' +claims ( 2.google.protobuf.Struct + access_levels (  +Request + +id (  +method ( J +headers ( 29.google.rpc.context.AttributeContext.Request.HeadersEntry +path (  +host (  +scheme (  +query ( ( +time ( 2.google.protobuf.Timestamp +size + ( +protocol (  +reason ( 7 +auth ( 2).google.rpc.context.AttributeContext.Auth. + HeadersEntry +key (  +value ( :8 +Response +code ( +size (K +headers ( 2:.google.rpc.context.AttributeContext.Response.HeadersEntry( +time ( 2.google.protobuf.Timestamp2 +backend_latency ( 2.google.protobuf.Duration. + HeadersEntry +key (  +value ( :8 +Resource +service (  +name (  +type ( I +labels ( 29.google.rpc.context.AttributeContext.Resource.LabelsEntry +uid ( S + annotations ( 2>.google.rpc.context.AttributeContext.Resource.AnnotationsEntry + display_name ( / + create_time ( 2.google.protobuf.Timestamp/ + update_time ( 2.google.protobuf.Timestamp/ + delete_time + ( 2.google.protobuf.Timestamp +etag (  +location ( - + LabelsEntry +key (  +value ( :82 +AnnotationsEntry +key (  +value ( :8B +com.google.rpc.contextBAttributeContextProtoPZUgoogle.golang.org/genproto/googleapis/rpc/context/attribute_context;attribute_contextbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Rpc/Context/AuditContext.php b/vendor/google/common-protos/metadata/Rpc/Context/AuditContext.php new file mode 100644 index 0000000..085e04b --- /dev/null +++ b/vendor/google/common-protos/metadata/Rpc/Context/AuditContext.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +&google/rpc/context/audit_context.protogoogle.rpc.context" + AuditContext + audit_log ( 1 +scrubbed_request ( 2.google.protobuf.Struct2 +scrubbed_response ( 2.google.protobuf.Struct$ +scrubbed_response_item_count ( +target_resource ( Bh +com.google.rpc.contextBAuditContextProtoPZ9google.golang.org/genproto/googleapis/rpc/context;contextbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Rpc/ErrorDetails.php b/vendor/google/common-protos/metadata/Rpc/ErrorDetails.php new file mode 100644 index 0000000000000000000000000000000000000000..c377e86efbcc2a5bb7f5af4c98bd429985f3d567 GIT binary patch literal 2068 zcmah~UvJw~6emsFH79N9+*Jw@f=gDkR02oJ#EMc%MM&FK+SW9h_JAT8$3F2cb$q>R zyC|T(^Tq?>3-DohKzt~U@3kGTEn8lkd++)G`<-*XISOBg@Q|HifYOf9Ws^CJUn2{p zh=n73Hc6&al*|#ckozc2#s=r?#raEiJUDy#8L37hkq-8lCxqu?M}|%Zr4-U~F}ArM znaUJEV9ziLZ3o%uu>YLiTsyYMr%G!)3Y`N0$G4-19jDp@tqi{cqhFXzeD1I)wqyG2 z^2p)=kGbvhUnt~5Hnsf-$-r&dX%aXw7XeEZ&I1SAdraF*Wp_hCDIT&sjA5EJWjsC$ zVw8dHj|Uhzl83R7LlW)vJdBH4r8n)p%x!9pPgz^X*z4U2@{q+c!LoP8B*uvh4piK! zf$QSm_>LkK(G3#9ijwN}7FjKfsHDF9mS-t^=ekA2Cj?=;@R53a1pn0GlXqihfPOa# z+twcys40Zbf~hbzVO63XiJ(zom3A#XyJBYZps}RRU%}cegSt^=)pou6&|DZZ3qxj3 zh~prZ^JWJ&-nuaAP`$)?=41m_u53R+?W4E!b)|IxwGoo03d)2!6;{rPfxfMk>fMiW zzlx58v6)w~)rHysCyA$&cVL4cbS^EVNH|91vzjHQD5;&cey_s%MIvJRggBl^G@bxl zap5amv{Jp>%6(Gd%(ArkDi>}3y#%%5WPAwsqGa+DI&qfkHq_mWf&_S0Rl2l8Zbc}s zxPw&KwDb>P{Y@H>MFp4KX)LSTEm+gH+-|H!h!H5RuiWv8tfie}A|-i$S5O z;4&y4ZBoN>kNi}PPr;ZbL~pdpZ)@q>(+_^DRGLrV!9^PIO>6JLy1xV4)@{qJKP#|3 zl<0`SrO_aQ9GJs9fY~c&dWTX8pQAE7>#!WpL(H%#fu-4g11yD0>)#4M-*!j%Cc!8+ zj$mub(RZy|Z27z#)I!5NNyQ6_G_PUv?HhyoL799PWfqO9*|HD!ec|WzE&5eS~^hB zhv^iEgNgLB$RESj%`&8ePSvl(g}jQ23w<9pX=j#P_wSb%o0{dr$`41`H1ue61fD6R z*YPk=GpeJXsMDi-t7a?p0Hw_S{^uLQqN$T}+4c7qw E0qv)0^8f$< literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Rpc/Status.php b/vendor/google/common-protos/metadata/Rpc/Status.php new file mode 100644 index 0000000..8560f42 --- /dev/null +++ b/vendor/google/common-protos/metadata/Rpc/Status.php @@ -0,0 +1,33 @@ +internalAddGeneratedFile( + ' + +google/rpc/status.proto +google.rpc"N +Status +code ( +message ( % +details ( 2.google.protobuf.AnyBa +com.google.rpcB StatusProtoPZ7google.golang.org/genproto/googleapis/rpc/status;statusRPCbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/CalendarPeriod.php b/vendor/google/common-protos/metadata/Type/CalendarPeriod.php new file mode 100644 index 0000000000000000000000000000000000000000..2f1368e67728caba6ad1a452b4e8a303f8638b9d GIT binary patch literal 840 zcmah{(QeZ)6lLwUGEYDh9(mwSOj?Jaec&ynptMQbh^+}B6B?>ixrv)u%52MVBnGPZ z7k+^sBu=`j)r81P?Btwt&%Niq|0r$*dIe*`h{TE{u($(tLqJHbc+4|c6w4)%5c69> zGa@?xjt^5m0@v}PlaiYALdL{`l=CzrU3Di&H^v!Z36^s~B;`q`QbUO0TapVL6Bq}B zOQLXs6`qYN;w&nOJ%r*6=Q#}50zt(`KM|CVC>9xwAy-(HuTz@ODWi(wjQ%K%_hE^% zTuVH}E(;bb${A>a&tlR(hgwr(PX#X#hIDjNuYaMZyR$Z5q8CH^!ks#HI1k*=^PTzC^h@9ly^-fS#v`+Z znvQ*K?3s_z{#V!iWHiht=xF4J(bOAHBBN;@p@U0*8cmFS^BA>0U)f>ghQ@&=Ozex1 zai~w%t{ob!!FTkm+^x=*r@`}GM^zlb-nYpblkyC+w8LfEO$n=3t6TrVg66vmSnpr& lejn@W??!VR1&hOq`tEEq#5Z*|TT%Wq#tK;{wn8g}{sK?l1Hb?P literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Type/Color.php b/vendor/google/common-protos/metadata/Type/Color.php new file mode 100644 index 0000000..cae1566 --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Color.php @@ -0,0 +1,34 @@ +internalAddGeneratedFile( + ' + +google/type/color.proto google.type"] +Color +red ( +green ( +blue (* +alpha ( 2.google.protobuf.FloatValueB` +com.google.typeB +ColorProtoPZ6google.golang.org/genproto/googleapis/type/color;colorGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Date.php b/vendor/google/common-protos/metadata/Type/Date.php new file mode 100644 index 0000000..8d754f8 --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Date.php @@ -0,0 +1,31 @@ +internalAddGeneratedFile( + ' + +google/type/date.proto google.type"0 +Date +year ( +month ( +day (B] +com.google.typeB DateProtoPZ4google.golang.org/genproto/googleapis/type/date;dateGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Datetime.php b/vendor/google/common-protos/metadata/Type/Datetime.php new file mode 100644 index 0000000000000000000000000000000000000000..bb5feded27f0ec26041ba6db17ec4640d9d3ffc6 GIT binary patch literal 1004 zcmZ`&O>fgc5UrbjBonGik&q0hrBrH)z>&($X+T7Qv142eO&m-Uzt)R3K?NYQX$d|dwP{)FE&t`EirH~0GuvST#;#&EH5Gk;D5FY|(WVl905QM3m}e{^N>gn5TOpOcN4)NS=Lq(f zg6oC9>yB+`#B}91s@TGehw}H_@fZ%5j29Y}zh7M_j0BIBe^3>0%7yX|-LVHy=;%%) zi9+o+&0YKAMX({}X3KaMR9(5+>AZoKox8hx!O?HI{O47^6%tqhwq8)%;7CV8hj$!>Br7~@I5?ezC$7UV2VTVUmbDUKZ@Ah&-G8Gx+X&_|UOOZRu xy)r~|rvBZQzS#=5Hh(oy-qh#rw0`y0_&pZOz`3bLTS4=~%-W;4czfgc5G5(3bjwHO3x{3?QK>0{|4AZ}BZ zplkuyE=*h>9DD4))YMGmGQbYRLc|HS)h5MuNH-$-hWNEr)FFh^Tg*}#AdI}hH7XiX zMVF(3vh+2jOGuE=ECc(FN`4T~Pnxe27C@$`(yud?tr%yD(S&{1YI_jTBs1*$xlzso z#RLaKaCv~u3n*)v+_O~Z>3VP{!ZQQwVV7gBP;#0qZOj76QYECPQ#+j)RkbGbr+Kk! zYs#?*nx)20=bp$OD4FAacL0ehm%Ll(HU+lTSE20f72E0Phhf!rs4Zw#iH3Gge%HzA ze|B#jmte~n^ZI9v9O(_a(L$SJost)J|MSWnt`?5-X*HkBJmjY zlbUr*4*j_^GeO;YN{$weJt@Nj>j`=6f1FPX@S$N1r(=`&$RM-6KcAYYVUXFpsCPJE zinternalAddGeneratedFile( + ' + +google/type/decimal.proto google.type" +Decimal +value ( Bf +com.google.typeB DecimalProtoPZ:google.golang.org/genproto/googleapis/type/decimal;decimalGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Expr.php b/vendor/google/common-protos/metadata/Type/Expr.php new file mode 100644 index 0000000..db6f33b --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Expr.php @@ -0,0 +1,33 @@ +internalAddGeneratedFile( + ' + +google/type/expr.proto google.type"P +Expr + +expression (  +title (  + description (  +location ( BZ +com.google.typeB ExprProtoPZ4google.golang.org/genproto/googleapis/type/expr;exprGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Fraction.php b/vendor/google/common-protos/metadata/Type/Fraction.php new file mode 100644 index 0000000..4c34bf8 --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Fraction.php @@ -0,0 +1,30 @@ +internalAddGeneratedFile( + ' + +google/type/fraction.proto google.type"2 +Fraction + numerator ( + denominator (Bf +com.google.typeB FractionProtoPZinternalAddGeneratedFile( + ' + +google/type/interval.proto google.type"h +Interval. + +start_time ( 2.google.protobuf.Timestamp, +end_time ( 2.google.protobuf.TimestampBi +com.google.typeB IntervalProtoPZinternalAddGeneratedFile( + ' + +google/type/latlng.proto google.type"- +LatLng +latitude ( + longitude (Bc +com.google.typeB LatLngProtoPZ8google.golang.org/genproto/googleapis/type/latlng;latlngGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/LocalizedText.php b/vendor/google/common-protos/metadata/Type/LocalizedText.php new file mode 100644 index 0000000..ab64343 --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/LocalizedText.php @@ -0,0 +1,30 @@ +internalAddGeneratedFile( + ' + + google/type/localized_text.proto google.type"4 + LocalizedText +text (  + language_code ( Bz +com.google.typeBLocalizedTextProtoPZHgoogle.golang.org/genproto/googleapis/type/localized_text;localized_textGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Money.php b/vendor/google/common-protos/metadata/Type/Money.php new file mode 100644 index 0000000..01395b8 --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Money.php @@ -0,0 +1,32 @@ +internalAddGeneratedFile( + ' + +google/type/money.proto google.type"< +Money + currency_code (  +units ( +nanos (B` +com.google.typeB +MoneyProtoPZ6google.golang.org/genproto/googleapis/type/money;moneyGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Month.php b/vendor/google/common-protos/metadata/Type/Month.php new file mode 100644 index 0000000000000000000000000000000000000000..e0c5124fc866aa5ccc1ecc02362e5ddfff4814f5 GIT binary patch literal 834 zcmZ`%-Hy^g6c*U!=di}w#CSW#O_ntZ7baeSXbKdT&C)hdOfZ&cq0;N`@1{G0o^GxO~JcsRBP#xt`Hm0Qc1ThoP6FfX7w zw0l$S70p^kwWj?WqohpBn~v{{GqVDviM24!%_^MT&K=t*=hofAsF(m{Yd)IKe4}bU zhuX~ce0$Qfr$$W`a{Iok98iTE_gfySD{o-;bMK<}172hY*F5Q>2f78lEwAwX(;*b{ z2(z%sMc4`n(+AheLpY|%$uV~HN&YUDM!vTyYv9ML<3!)*i#plslRMSOe0_V^1N;Mw CjXNJiHT%~`; zSAUWJ#7Ac)H3W+0B_Z?O=6vVnYqe2uAEzWpGeZfkF41fVm6k@vGQ(A|UX#XHZWYf+ zhlrCIUd-nBZgM`qXQ{a?bW8(GrA#yGn@dG~wUL6BqS&r1!%G1OwxwLLm~a}6Kayby zGi)*Sti{~2h5&KK@*E?_zVKxD4rm`$tTG;BZkVyJ6P_=*;D)n|f3uNCxMo@I_=nha zA!5U&Ku4H~n0jYeYC7zRlJ<%t{2L>3x3)K4oC`x*uxv4*Jl0$psUr&=3{o=HtlXd8 z+1}R4@iq3!jDx{J$PpS{P~9C-lPR2GFjJxpN!Z^!WL+eP!JMgI?>ymCg%*d?U44#xkL9!~ShQISy+= zVNE3ba?Gd@axwvkC@{5;f4-XZC!r{!H>q#bRMmm Zp852&8uf#+!CK+}EZZZ?UU#qq_ygup6FmR` literal 0 HcmV?d00001 diff --git a/vendor/google/common-protos/metadata/Type/PostalAddress.php b/vendor/google/common-protos/metadata/Type/PostalAddress.php new file mode 100644 index 0000000..46425c7 --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/PostalAddress.php @@ -0,0 +1,41 @@ +internalAddGeneratedFile( + ' + + google/type/postal_address.proto google.type" + PostalAddress +revision ( + region_code (  + language_code (  + postal_code (  + sorting_code (  +administrative_area (  +locality (  + sublocality (  + address_lines (  + +recipients + (  + organization ( Bx +com.google.typeBPostalAddressProtoPZFgoogle.golang.org/genproto/googleapis/type/postaladdress;postaladdressGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Quaternion.php b/vendor/google/common-protos/metadata/Type/Quaternion.php new file mode 100644 index 0000000..117de8e --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Quaternion.php @@ -0,0 +1,33 @@ +internalAddGeneratedFile( + ' + +google/type/quaternion.proto google.type"8 + +Quaternion +x ( +y ( +z ( +w (Bo +com.google.typeBQuaternionProtoPZ@google.golang.org/genproto/googleapis/type/quaternion;quaternionGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/metadata/Type/Timeofday.php b/vendor/google/common-protos/metadata/Type/Timeofday.php new file mode 100644 index 0000000..ae198be --- /dev/null +++ b/vendor/google/common-protos/metadata/Type/Timeofday.php @@ -0,0 +1,32 @@ +internalAddGeneratedFile( + ' + +google/type/timeofday.proto google.type"K + TimeOfDay +hours ( +minutes ( +seconds ( +nanos (Bl +com.google.typeBTimeOfDayProtoPZ>google.golang.org/genproto/googleapis/type/timeofday;timeofdayGTPbproto3' + , true); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/common-protos/renovate.json b/vendor/google/common-protos/renovate.json new file mode 100644 index 0000000..6d81213 --- /dev/null +++ b/vendor/google/common-protos/renovate.json @@ -0,0 +1,7 @@ +{ + "extends": [ + "config:base", + ":preserveSemverRanges", + ":disableDependencyDashboard" + ] +} diff --git a/vendor/google/common-protos/src/Api/Advice.php b/vendor/google/common-protos/src/Api/Advice.php new file mode 100644 index 0000000..e4a5378 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Advice.php @@ -0,0 +1,72 @@ +google.api.Advice + */ +class Advice extends \Google\Protobuf\Internal\Message +{ + /** + * Useful description for why this advice was applied and what actions should + * be taken to mitigate any implied risks. + * + * Generated from protobuf field string description = 2; + */ + protected $description = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $description + * Useful description for why this advice was applied and what actions should + * be taken to mitigate any implied risks. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\ConfigChange::initOnce(); + parent::__construct($data); + } + + /** + * Useful description for why this advice was applied and what actions should + * be taken to mitigate any implied risks. + * + * Generated from protobuf field string description = 2; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Useful description for why this advice was applied and what actions should + * be taken to mitigate any implied risks. + * + * Generated from protobuf field string description = 2; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/AuthProvider.php b/vendor/google/common-protos/src/Api/AuthProvider.php new file mode 100644 index 0000000..3640d3a --- /dev/null +++ b/vendor/google/common-protos/src/Api/AuthProvider.php @@ -0,0 +1,419 @@ +google.api.AuthProvider + */ +class AuthProvider extends \Google\Protobuf\Internal\Message +{ + /** + * The unique identifier of the auth provider. It will be referred to by + * `AuthRequirement.provider_id`. + * Example: "bookstore_auth". + * + * Generated from protobuf field string id = 1; + */ + protected $id = ''; + /** + * Identifies the principal that issued the JWT. See + * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 + * Usually a URL or an email address. + * Example: https://securetoken.google.com + * Example: 1234567-compute@developer.gserviceaccount.com + * + * Generated from protobuf field string issuer = 2; + */ + protected $issuer = ''; + /** + * URL of the provider's public key set to validate signature of the JWT. See + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). + * Optional if the key set document: + * - can be retrieved from + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) + * of the issuer. + * - can be inferred from the email domain of the issuer (e.g. a Google + * service account). + * Example: https://www.googleapis.com/oauth2/v1/certs + * + * Generated from protobuf field string jwks_uri = 3; + */ + protected $jwks_uri = ''; + /** + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, JWTs with audiences: + * - "https://[service.name]/[google.protobuf.Api.name]" + * - "https://[service.name]/" + * will be accepted. + * For example, if no audiences are in the setting, LibraryService API will + * accept JWTs with the following audiences: + * - + * https://library-example.googleapis.com/google.example.library.v1.LibraryService + * - https://library-example.googleapis.com/ + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * + * Generated from protobuf field string audiences = 4; + */ + protected $audiences = ''; + /** + * Redirect URL if JWT token is required but not present or is expired. + * Implement authorizationUrl of securityDefinitions in OpenAPI spec. + * + * Generated from protobuf field string authorization_url = 5; + */ + protected $authorization_url = ''; + /** + * Defines the locations to extract the JWT. For now it is only used by the + * Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] + * (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) + * JWT locations can be one of HTTP headers, URL query parameters or + * cookies. The rule is that the first match wins. + * If not specified, default to use following 3 locations: + * 1) Authorization: Bearer + * 2) x-goog-iap-jwt-assertion + * 3) access_token query parameter + * Default locations can be specified as followings: + * jwt_locations: + * - header: Authorization + * value_prefix: "Bearer " + * - header: x-goog-iap-jwt-assertion + * - query: access_token + * + * Generated from protobuf field repeated .google.api.JwtLocation jwt_locations = 6; + */ + private $jwt_locations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $id + * The unique identifier of the auth provider. It will be referred to by + * `AuthRequirement.provider_id`. + * Example: "bookstore_auth". + * @type string $issuer + * Identifies the principal that issued the JWT. See + * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 + * Usually a URL or an email address. + * Example: https://securetoken.google.com + * Example: 1234567-compute@developer.gserviceaccount.com + * @type string $jwks_uri + * URL of the provider's public key set to validate signature of the JWT. See + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). + * Optional if the key set document: + * - can be retrieved from + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) + * of the issuer. + * - can be inferred from the email domain of the issuer (e.g. a Google + * service account). + * Example: https://www.googleapis.com/oauth2/v1/certs + * @type string $audiences + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, JWTs with audiences: + * - "https://[service.name]/[google.protobuf.Api.name]" + * - "https://[service.name]/" + * will be accepted. + * For example, if no audiences are in the setting, LibraryService API will + * accept JWTs with the following audiences: + * - + * https://library-example.googleapis.com/google.example.library.v1.LibraryService + * - https://library-example.googleapis.com/ + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * @type string $authorization_url + * Redirect URL if JWT token is required but not present or is expired. + * Implement authorizationUrl of securityDefinitions in OpenAPI spec. + * @type array<\Google\Api\JwtLocation>|\Google\Protobuf\Internal\RepeatedField $jwt_locations + * Defines the locations to extract the JWT. For now it is only used by the + * Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] + * (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) + * JWT locations can be one of HTTP headers, URL query parameters or + * cookies. The rule is that the first match wins. + * If not specified, default to use following 3 locations: + * 1) Authorization: Bearer + * 2) x-goog-iap-jwt-assertion + * 3) access_token query parameter + * Default locations can be specified as followings: + * jwt_locations: + * - header: Authorization + * value_prefix: "Bearer " + * - header: x-goog-iap-jwt-assertion + * - query: access_token + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Auth::initOnce(); + parent::__construct($data); + } + + /** + * The unique identifier of the auth provider. It will be referred to by + * `AuthRequirement.provider_id`. + * Example: "bookstore_auth". + * + * Generated from protobuf field string id = 1; + * @return string + */ + public function getId() + { + return $this->id; + } + + /** + * The unique identifier of the auth provider. It will be referred to by + * `AuthRequirement.provider_id`. + * Example: "bookstore_auth". + * + * Generated from protobuf field string id = 1; + * @param string $var + * @return $this + */ + public function setId($var) + { + GPBUtil::checkString($var, True); + $this->id = $var; + + return $this; + } + + /** + * Identifies the principal that issued the JWT. See + * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 + * Usually a URL or an email address. + * Example: https://securetoken.google.com + * Example: 1234567-compute@developer.gserviceaccount.com + * + * Generated from protobuf field string issuer = 2; + * @return string + */ + public function getIssuer() + { + return $this->issuer; + } + + /** + * Identifies the principal that issued the JWT. See + * https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 + * Usually a URL or an email address. + * Example: https://securetoken.google.com + * Example: 1234567-compute@developer.gserviceaccount.com + * + * Generated from protobuf field string issuer = 2; + * @param string $var + * @return $this + */ + public function setIssuer($var) + { + GPBUtil::checkString($var, True); + $this->issuer = $var; + + return $this; + } + + /** + * URL of the provider's public key set to validate signature of the JWT. See + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). + * Optional if the key set document: + * - can be retrieved from + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) + * of the issuer. + * - can be inferred from the email domain of the issuer (e.g. a Google + * service account). + * Example: https://www.googleapis.com/oauth2/v1/certs + * + * Generated from protobuf field string jwks_uri = 3; + * @return string + */ + public function getJwksUri() + { + return $this->jwks_uri; + } + + /** + * URL of the provider's public key set to validate signature of the JWT. See + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata). + * Optional if the key set document: + * - can be retrieved from + * [OpenID + * Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html) + * of the issuer. + * - can be inferred from the email domain of the issuer (e.g. a Google + * service account). + * Example: https://www.googleapis.com/oauth2/v1/certs + * + * Generated from protobuf field string jwks_uri = 3; + * @param string $var + * @return $this + */ + public function setJwksUri($var) + { + GPBUtil::checkString($var, True); + $this->jwks_uri = $var; + + return $this; + } + + /** + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, JWTs with audiences: + * - "https://[service.name]/[google.protobuf.Api.name]" + * - "https://[service.name]/" + * will be accepted. + * For example, if no audiences are in the setting, LibraryService API will + * accept JWTs with the following audiences: + * - + * https://library-example.googleapis.com/google.example.library.v1.LibraryService + * - https://library-example.googleapis.com/ + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * + * Generated from protobuf field string audiences = 4; + * @return string + */ + public function getAudiences() + { + return $this->audiences; + } + + /** + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, JWTs with audiences: + * - "https://[service.name]/[google.protobuf.Api.name]" + * - "https://[service.name]/" + * will be accepted. + * For example, if no audiences are in the setting, LibraryService API will + * accept JWTs with the following audiences: + * - + * https://library-example.googleapis.com/google.example.library.v1.LibraryService + * - https://library-example.googleapis.com/ + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * + * Generated from protobuf field string audiences = 4; + * @param string $var + * @return $this + */ + public function setAudiences($var) + { + GPBUtil::checkString($var, True); + $this->audiences = $var; + + return $this; + } + + /** + * Redirect URL if JWT token is required but not present or is expired. + * Implement authorizationUrl of securityDefinitions in OpenAPI spec. + * + * Generated from protobuf field string authorization_url = 5; + * @return string + */ + public function getAuthorizationUrl() + { + return $this->authorization_url; + } + + /** + * Redirect URL if JWT token is required but not present or is expired. + * Implement authorizationUrl of securityDefinitions in OpenAPI spec. + * + * Generated from protobuf field string authorization_url = 5; + * @param string $var + * @return $this + */ + public function setAuthorizationUrl($var) + { + GPBUtil::checkString($var, True); + $this->authorization_url = $var; + + return $this; + } + + /** + * Defines the locations to extract the JWT. For now it is only used by the + * Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] + * (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) + * JWT locations can be one of HTTP headers, URL query parameters or + * cookies. The rule is that the first match wins. + * If not specified, default to use following 3 locations: + * 1) Authorization: Bearer + * 2) x-goog-iap-jwt-assertion + * 3) access_token query parameter + * Default locations can be specified as followings: + * jwt_locations: + * - header: Authorization + * value_prefix: "Bearer " + * - header: x-goog-iap-jwt-assertion + * - query: access_token + * + * Generated from protobuf field repeated .google.api.JwtLocation jwt_locations = 6; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getJwtLocations() + { + return $this->jwt_locations; + } + + /** + * Defines the locations to extract the JWT. For now it is only used by the + * Cloud Endpoints to store the OpenAPI extension [x-google-jwt-locations] + * (https://cloud.google.com/endpoints/docs/openapi/openapi-extensions#x-google-jwt-locations) + * JWT locations can be one of HTTP headers, URL query parameters or + * cookies. The rule is that the first match wins. + * If not specified, default to use following 3 locations: + * 1) Authorization: Bearer + * 2) x-goog-iap-jwt-assertion + * 3) access_token query parameter + * Default locations can be specified as followings: + * jwt_locations: + * - header: Authorization + * value_prefix: "Bearer " + * - header: x-goog-iap-jwt-assertion + * - query: access_token + * + * Generated from protobuf field repeated .google.api.JwtLocation jwt_locations = 6; + * @param array<\Google\Api\JwtLocation>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setJwtLocations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\JwtLocation::class); + $this->jwt_locations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/AuthRequirement.php b/vendor/google/common-protos/src/Api/AuthRequirement.php new file mode 100644 index 0000000..287f2a7 --- /dev/null +++ b/vendor/google/common-protos/src/Api/AuthRequirement.php @@ -0,0 +1,159 @@ +google.api.AuthRequirement + */ +class AuthRequirement extends \Google\Protobuf\Internal\Message +{ + /** + * [id][google.api.AuthProvider.id] from authentication provider. + * Example: + * provider_id: bookstore_auth + * + * Generated from protobuf field string provider_id = 1; + */ + protected $provider_id = ''; + /** + * NOTE: This will be deprecated soon, once AuthProvider.audiences is + * implemented and accepted in all the runtime components. + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, only JWTs with audience + * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" + * will be accepted. For example, if no audiences are in the setting, + * LibraryService API will only accept JWTs with the following audience + * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * + * Generated from protobuf field string audiences = 2; + */ + protected $audiences = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $provider_id + * [id][google.api.AuthProvider.id] from authentication provider. + * Example: + * provider_id: bookstore_auth + * @type string $audiences + * NOTE: This will be deprecated soon, once AuthProvider.audiences is + * implemented and accepted in all the runtime components. + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, only JWTs with audience + * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" + * will be accepted. For example, if no audiences are in the setting, + * LibraryService API will only accept JWTs with the following audience + * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Auth::initOnce(); + parent::__construct($data); + } + + /** + * [id][google.api.AuthProvider.id] from authentication provider. + * Example: + * provider_id: bookstore_auth + * + * Generated from protobuf field string provider_id = 1; + * @return string + */ + public function getProviderId() + { + return $this->provider_id; + } + + /** + * [id][google.api.AuthProvider.id] from authentication provider. + * Example: + * provider_id: bookstore_auth + * + * Generated from protobuf field string provider_id = 1; + * @param string $var + * @return $this + */ + public function setProviderId($var) + { + GPBUtil::checkString($var, True); + $this->provider_id = $var; + + return $this; + } + + /** + * NOTE: This will be deprecated soon, once AuthProvider.audiences is + * implemented and accepted in all the runtime components. + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, only JWTs with audience + * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" + * will be accepted. For example, if no audiences are in the setting, + * LibraryService API will only accept JWTs with the following audience + * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * + * Generated from protobuf field string audiences = 2; + * @return string + */ + public function getAudiences() + { + return $this->audiences; + } + + /** + * NOTE: This will be deprecated soon, once AuthProvider.audiences is + * implemented and accepted in all the runtime components. + * The list of JWT + * [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). + * that are allowed to access. A JWT containing any of these audiences will + * be accepted. When this setting is absent, only JWTs with audience + * "https://[Service_name][google.api.Service.name]/[API_name][google.protobuf.Api.name]" + * will be accepted. For example, if no audiences are in the setting, + * LibraryService API will only accept JWTs with the following audience + * "https://library-example.googleapis.com/google.example.library.v1.LibraryService". + * Example: + * audiences: bookstore_android.apps.googleusercontent.com, + * bookstore_web.apps.googleusercontent.com + * + * Generated from protobuf field string audiences = 2; + * @param string $var + * @return $this + */ + public function setAudiences($var) + { + GPBUtil::checkString($var, True); + $this->audiences = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Authentication.php b/vendor/google/common-protos/src/Api/Authentication.php new file mode 100644 index 0000000..9ee3ba6 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Authentication.php @@ -0,0 +1,120 @@ +google.api.Authentication + */ +class Authentication extends \Google\Protobuf\Internal\Message +{ + /** + * A list of authentication rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.AuthenticationRule rules = 3; + */ + private $rules; + /** + * Defines a set of authentication providers that a service supports. + * + * Generated from protobuf field repeated .google.api.AuthProvider providers = 4; + */ + private $providers; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\AuthenticationRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of authentication rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * @type array<\Google\Api\AuthProvider>|\Google\Protobuf\Internal\RepeatedField $providers + * Defines a set of authentication providers that a service supports. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Auth::initOnce(); + parent::__construct($data); + } + + /** + * A list of authentication rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.AuthenticationRule rules = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of authentication rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.AuthenticationRule rules = 3; + * @param array<\Google\Api\AuthenticationRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\AuthenticationRule::class); + $this->rules = $arr; + + return $this; + } + + /** + * Defines a set of authentication providers that a service supports. + * + * Generated from protobuf field repeated .google.api.AuthProvider providers = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getProviders() + { + return $this->providers; + } + + /** + * Defines a set of authentication providers that a service supports. + * + * Generated from protobuf field repeated .google.api.AuthProvider providers = 4; + * @param array<\Google\Api\AuthProvider>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setProviders($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\AuthProvider::class); + $this->providers = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/AuthenticationRule.php b/vendor/google/common-protos/src/Api/AuthenticationRule.php new file mode 100644 index 0000000..7606811 --- /dev/null +++ b/vendor/google/common-protos/src/Api/AuthenticationRule.php @@ -0,0 +1,197 @@ +google.api.AuthenticationRule + */ +class AuthenticationRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * The requirements for OAuth credentials. + * + * Generated from protobuf field .google.api.OAuthRequirements oauth = 2; + */ + protected $oauth = null; + /** + * If true, the service accepts API keys without any other credential. + * This flag only applies to HTTP and gRPC requests. + * + * Generated from protobuf field bool allow_without_credential = 5; + */ + protected $allow_without_credential = false; + /** + * Requirements for additional authentication providers. + * + * Generated from protobuf field repeated .google.api.AuthRequirement requirements = 7; + */ + private $requirements; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type \Google\Api\OAuthRequirements $oauth + * The requirements for OAuth credentials. + * @type bool $allow_without_credential + * If true, the service accepts API keys without any other credential. + * This flag only applies to HTTP and gRPC requests. + * @type array<\Google\Api\AuthRequirement>|\Google\Protobuf\Internal\RepeatedField $requirements + * Requirements for additional authentication providers. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Auth::initOnce(); + parent::__construct($data); + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * The requirements for OAuth credentials. + * + * Generated from protobuf field .google.api.OAuthRequirements oauth = 2; + * @return \Google\Api\OAuthRequirements|null + */ + public function getOauth() + { + return $this->oauth; + } + + public function hasOauth() + { + return isset($this->oauth); + } + + public function clearOauth() + { + unset($this->oauth); + } + + /** + * The requirements for OAuth credentials. + * + * Generated from protobuf field .google.api.OAuthRequirements oauth = 2; + * @param \Google\Api\OAuthRequirements $var + * @return $this + */ + public function setOauth($var) + { + GPBUtil::checkMessage($var, \Google\Api\OAuthRequirements::class); + $this->oauth = $var; + + return $this; + } + + /** + * If true, the service accepts API keys without any other credential. + * This flag only applies to HTTP and gRPC requests. + * + * Generated from protobuf field bool allow_without_credential = 5; + * @return bool + */ + public function getAllowWithoutCredential() + { + return $this->allow_without_credential; + } + + /** + * If true, the service accepts API keys without any other credential. + * This flag only applies to HTTP and gRPC requests. + * + * Generated from protobuf field bool allow_without_credential = 5; + * @param bool $var + * @return $this + */ + public function setAllowWithoutCredential($var) + { + GPBUtil::checkBool($var); + $this->allow_without_credential = $var; + + return $this; + } + + /** + * Requirements for additional authentication providers. + * + * Generated from protobuf field repeated .google.api.AuthRequirement requirements = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRequirements() + { + return $this->requirements; + } + + /** + * Requirements for additional authentication providers. + * + * Generated from protobuf field repeated .google.api.AuthRequirement requirements = 7; + * @param array<\Google\Api\AuthRequirement>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRequirements($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\AuthRequirement::class); + $this->requirements = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Backend.php b/vendor/google/common-protos/src/Api/Backend.php new file mode 100644 index 0000000..28b6a07 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Backend.php @@ -0,0 +1,71 @@ +google.api.Backend + */ +class Backend extends \Google\Protobuf\Internal\Message +{ + /** + * A list of API backend rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.BackendRule rules = 1; + */ + private $rules; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\BackendRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of API backend rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Backend::initOnce(); + parent::__construct($data); + } + + /** + * A list of API backend rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.BackendRule rules = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of API backend rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.BackendRule rules = 1; + * @param array<\Google\Api\BackendRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\BackendRule::class); + $this->rules = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/BackendRule.php b/vendor/google/common-protos/src/Api/BackendRule.php new file mode 100644 index 0000000..fa45353 --- /dev/null +++ b/vendor/google/common-protos/src/Api/BackendRule.php @@ -0,0 +1,527 @@ +google.api.BackendRule + */ +class BackendRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * The address of the API backend. + * The scheme is used to determine the backend protocol and security. + * The following schemes are accepted: + * SCHEME PROTOCOL SECURITY + * http:// HTTP None + * https:// HTTP TLS + * grpc:// gRPC None + * grpcs:// gRPC TLS + * It is recommended to explicitly include a scheme. Leaving out the scheme + * may cause constrasting behaviors across platforms. + * If the port is unspecified, the default is: + * - 80 for schemes without TLS + * - 443 for schemes with TLS + * For HTTP backends, use [protocol][google.api.BackendRule.protocol] + * to specify the protocol version. + * + * Generated from protobuf field string address = 2; + */ + protected $address = ''; + /** + * The number of seconds to wait for a response from a request. The default + * varies based on the request protocol and deployment environment. + * + * Generated from protobuf field double deadline = 3; + */ + protected $deadline = 0.0; + /** + * Deprecated, do not use. + * + * Generated from protobuf field double min_deadline = 4 [deprecated = true]; + * @deprecated + */ + protected $min_deadline = 0.0; + /** + * The number of seconds to wait for the completion of a long running + * operation. The default is no deadline. + * + * Generated from protobuf field double operation_deadline = 5; + */ + protected $operation_deadline = 0.0; + /** + * Generated from protobuf field .google.api.BackendRule.PathTranslation path_translation = 6; + */ + protected $path_translation = 0; + /** + * The protocol used for sending a request to the backend. + * The supported values are "http/1.1" and "h2". + * The default value is inferred from the scheme in the + * [address][google.api.BackendRule.address] field: + * SCHEME PROTOCOL + * http:// http/1.1 + * https:// http/1.1 + * grpc:// h2 + * grpcs:// h2 + * For secure HTTP backends (https://) that support HTTP/2, set this field + * to "h2" for improved performance. + * Configuring this field to non-default values is only supported for secure + * HTTP backends. This field will be ignored for all other backends. + * See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for more details on the supported values. + * + * Generated from protobuf field string protocol = 9; + */ + protected $protocol = ''; + /** + * The map between request protocol and the backend address. + * + * Generated from protobuf field map overrides_by_request_protocol = 10; + */ + private $overrides_by_request_protocol; + protected $authentication; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type string $address + * The address of the API backend. + * The scheme is used to determine the backend protocol and security. + * The following schemes are accepted: + * SCHEME PROTOCOL SECURITY + * http:// HTTP None + * https:// HTTP TLS + * grpc:// gRPC None + * grpcs:// gRPC TLS + * It is recommended to explicitly include a scheme. Leaving out the scheme + * may cause constrasting behaviors across platforms. + * If the port is unspecified, the default is: + * - 80 for schemes without TLS + * - 443 for schemes with TLS + * For HTTP backends, use [protocol][google.api.BackendRule.protocol] + * to specify the protocol version. + * @type float $deadline + * The number of seconds to wait for a response from a request. The default + * varies based on the request protocol and deployment environment. + * @type float $min_deadline + * Deprecated, do not use. + * @type float $operation_deadline + * The number of seconds to wait for the completion of a long running + * operation. The default is no deadline. + * @type int $path_translation + * @type string $jwt_audience + * The JWT audience is used when generating a JWT ID token for the backend. + * This ID token will be added in the HTTP "authorization" header, and sent + * to the backend. + * @type bool $disable_auth + * When disable_auth is true, a JWT ID token won't be generated and the + * original "Authorization" HTTP header will be preserved. If the header is + * used to carry the original token and is expected by the backend, this + * field must be set to true to preserve the header. + * @type string $protocol + * The protocol used for sending a request to the backend. + * The supported values are "http/1.1" and "h2". + * The default value is inferred from the scheme in the + * [address][google.api.BackendRule.address] field: + * SCHEME PROTOCOL + * http:// http/1.1 + * https:// http/1.1 + * grpc:// h2 + * grpcs:// h2 + * For secure HTTP backends (https://) that support HTTP/2, set this field + * to "h2" for improved performance. + * Configuring this field to non-default values is only supported for secure + * HTTP backends. This field will be ignored for all other backends. + * See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for more details on the supported values. + * @type array|\Google\Protobuf\Internal\MapField $overrides_by_request_protocol + * The map between request protocol and the backend address. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Backend::initOnce(); + parent::__construct($data); + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * The address of the API backend. + * The scheme is used to determine the backend protocol and security. + * The following schemes are accepted: + * SCHEME PROTOCOL SECURITY + * http:// HTTP None + * https:// HTTP TLS + * grpc:// gRPC None + * grpcs:// gRPC TLS + * It is recommended to explicitly include a scheme. Leaving out the scheme + * may cause constrasting behaviors across platforms. + * If the port is unspecified, the default is: + * - 80 for schemes without TLS + * - 443 for schemes with TLS + * For HTTP backends, use [protocol][google.api.BackendRule.protocol] + * to specify the protocol version. + * + * Generated from protobuf field string address = 2; + * @return string + */ + public function getAddress() + { + return $this->address; + } + + /** + * The address of the API backend. + * The scheme is used to determine the backend protocol and security. + * The following schemes are accepted: + * SCHEME PROTOCOL SECURITY + * http:// HTTP None + * https:// HTTP TLS + * grpc:// gRPC None + * grpcs:// gRPC TLS + * It is recommended to explicitly include a scheme. Leaving out the scheme + * may cause constrasting behaviors across platforms. + * If the port is unspecified, the default is: + * - 80 for schemes without TLS + * - 443 for schemes with TLS + * For HTTP backends, use [protocol][google.api.BackendRule.protocol] + * to specify the protocol version. + * + * Generated from protobuf field string address = 2; + * @param string $var + * @return $this + */ + public function setAddress($var) + { + GPBUtil::checkString($var, True); + $this->address = $var; + + return $this; + } + + /** + * The number of seconds to wait for a response from a request. The default + * varies based on the request protocol and deployment environment. + * + * Generated from protobuf field double deadline = 3; + * @return float + */ + public function getDeadline() + { + return $this->deadline; + } + + /** + * The number of seconds to wait for a response from a request. The default + * varies based on the request protocol and deployment environment. + * + * Generated from protobuf field double deadline = 3; + * @param float $var + * @return $this + */ + public function setDeadline($var) + { + GPBUtil::checkDouble($var); + $this->deadline = $var; + + return $this; + } + + /** + * Deprecated, do not use. + * + * Generated from protobuf field double min_deadline = 4 [deprecated = true]; + * @return float + * @deprecated + */ + public function getMinDeadline() + { + if ($this->min_deadline !== 0.0) { + @trigger_error('min_deadline is deprecated.', E_USER_DEPRECATED); + } + return $this->min_deadline; + } + + /** + * Deprecated, do not use. + * + * Generated from protobuf field double min_deadline = 4 [deprecated = true]; + * @param float $var + * @return $this + * @deprecated + */ + public function setMinDeadline($var) + { + @trigger_error('min_deadline is deprecated.', E_USER_DEPRECATED); + GPBUtil::checkDouble($var); + $this->min_deadline = $var; + + return $this; + } + + /** + * The number of seconds to wait for the completion of a long running + * operation. The default is no deadline. + * + * Generated from protobuf field double operation_deadline = 5; + * @return float + */ + public function getOperationDeadline() + { + return $this->operation_deadline; + } + + /** + * The number of seconds to wait for the completion of a long running + * operation. The default is no deadline. + * + * Generated from protobuf field double operation_deadline = 5; + * @param float $var + * @return $this + */ + public function setOperationDeadline($var) + { + GPBUtil::checkDouble($var); + $this->operation_deadline = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.api.BackendRule.PathTranslation path_translation = 6; + * @return int + */ + public function getPathTranslation() + { + return $this->path_translation; + } + + /** + * Generated from protobuf field .google.api.BackendRule.PathTranslation path_translation = 6; + * @param int $var + * @return $this + */ + public function setPathTranslation($var) + { + GPBUtil::checkEnum($var, \Google\Api\BackendRule\PathTranslation::class); + $this->path_translation = $var; + + return $this; + } + + /** + * The JWT audience is used when generating a JWT ID token for the backend. + * This ID token will be added in the HTTP "authorization" header, and sent + * to the backend. + * + * Generated from protobuf field string jwt_audience = 7; + * @return string + */ + public function getJwtAudience() + { + return $this->readOneof(7); + } + + public function hasJwtAudience() + { + return $this->hasOneof(7); + } + + /** + * The JWT audience is used when generating a JWT ID token for the backend. + * This ID token will be added in the HTTP "authorization" header, and sent + * to the backend. + * + * Generated from protobuf field string jwt_audience = 7; + * @param string $var + * @return $this + */ + public function setJwtAudience($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(7, $var); + + return $this; + } + + /** + * When disable_auth is true, a JWT ID token won't be generated and the + * original "Authorization" HTTP header will be preserved. If the header is + * used to carry the original token and is expected by the backend, this + * field must be set to true to preserve the header. + * + * Generated from protobuf field bool disable_auth = 8; + * @return bool + */ + public function getDisableAuth() + { + return $this->readOneof(8); + } + + public function hasDisableAuth() + { + return $this->hasOneof(8); + } + + /** + * When disable_auth is true, a JWT ID token won't be generated and the + * original "Authorization" HTTP header will be preserved. If the header is + * used to carry the original token and is expected by the backend, this + * field must be set to true to preserve the header. + * + * Generated from protobuf field bool disable_auth = 8; + * @param bool $var + * @return $this + */ + public function setDisableAuth($var) + { + GPBUtil::checkBool($var); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * The protocol used for sending a request to the backend. + * The supported values are "http/1.1" and "h2". + * The default value is inferred from the scheme in the + * [address][google.api.BackendRule.address] field: + * SCHEME PROTOCOL + * http:// http/1.1 + * https:// http/1.1 + * grpc:// h2 + * grpcs:// h2 + * For secure HTTP backends (https://) that support HTTP/2, set this field + * to "h2" for improved performance. + * Configuring this field to non-default values is only supported for secure + * HTTP backends. This field will be ignored for all other backends. + * See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for more details on the supported values. + * + * Generated from protobuf field string protocol = 9; + * @return string + */ + public function getProtocol() + { + return $this->protocol; + } + + /** + * The protocol used for sending a request to the backend. + * The supported values are "http/1.1" and "h2". + * The default value is inferred from the scheme in the + * [address][google.api.BackendRule.address] field: + * SCHEME PROTOCOL + * http:// http/1.1 + * https:// http/1.1 + * grpc:// h2 + * grpcs:// h2 + * For secure HTTP backends (https://) that support HTTP/2, set this field + * to "h2" for improved performance. + * Configuring this field to non-default values is only supported for secure + * HTTP backends. This field will be ignored for all other backends. + * See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for more details on the supported values. + * + * Generated from protobuf field string protocol = 9; + * @param string $var + * @return $this + */ + public function setProtocol($var) + { + GPBUtil::checkString($var, True); + $this->protocol = $var; + + return $this; + } + + /** + * The map between request protocol and the backend address. + * + * Generated from protobuf field map overrides_by_request_protocol = 10; + * @return \Google\Protobuf\Internal\MapField + */ + public function getOverridesByRequestProtocol() + { + return $this->overrides_by_request_protocol; + } + + /** + * The map between request protocol and the backend address. + * + * Generated from protobuf field map overrides_by_request_protocol = 10; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setOverridesByRequestProtocol($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\BackendRule::class); + $this->overrides_by_request_protocol = $arr; + + return $this; + } + + /** + * @return string + */ + public function getAuthentication() + { + return $this->whichOneof("authentication"); + } + +} + diff --git a/vendor/google/common-protos/src/Api/BackendRule/PathTranslation.php b/vendor/google/common-protos/src/Api/BackendRule/PathTranslation.php new file mode 100644 index 0000000..d076295 --- /dev/null +++ b/vendor/google/common-protos/src/Api/BackendRule/PathTranslation.php @@ -0,0 +1,93 @@ +google.api.BackendRule.PathTranslation + */ +class PathTranslation +{ + /** + * Generated from protobuf enum PATH_TRANSLATION_UNSPECIFIED = 0; + */ + const PATH_TRANSLATION_UNSPECIFIED = 0; + /** + * Use the backend address as-is, with no modification to the path. If the + * URL pattern contains variables, the variable names and values will be + * appended to the query string. If a query string parameter and a URL + * pattern variable have the same name, this may result in duplicate keys in + * the query string. + * # Examples + * Given the following operation config: + * Method path: /api/company/{cid}/user/{uid} + * Backend address: https://example.cloudfunctions.net/getUser + * Requests to the following request paths will call the backend at the + * translated path: + * Request path: /api/company/widgetworks/user/johndoe + * Translated: + * https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe + * Request path: /api/company/widgetworks/user/johndoe?timezone=EST + * Translated: + * https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe + * + * Generated from protobuf enum CONSTANT_ADDRESS = 1; + */ + const CONSTANT_ADDRESS = 1; + /** + * The request path will be appended to the backend address. + * # Examples + * Given the following operation config: + * Method path: /api/company/{cid}/user/{uid} + * Backend address: https://example.appspot.com + * Requests to the following request paths will call the backend at the + * translated path: + * Request path: /api/company/widgetworks/user/johndoe + * Translated: + * https://example.appspot.com/api/company/widgetworks/user/johndoe + * Request path: /api/company/widgetworks/user/johndoe?timezone=EST + * Translated: + * https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST + * + * Generated from protobuf enum APPEND_PATH_TO_ADDRESS = 2; + */ + const APPEND_PATH_TO_ADDRESS = 2; + + private static $valueToName = [ + self::PATH_TRANSLATION_UNSPECIFIED => 'PATH_TRANSLATION_UNSPECIFIED', + self::CONSTANT_ADDRESS => 'CONSTANT_ADDRESS', + self::APPEND_PATH_TO_ADDRESS => 'APPEND_PATH_TO_ADDRESS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/Billing.php b/vendor/google/common-protos/src/Api/Billing.php new file mode 100644 index 0000000..241d2f0 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Billing.php @@ -0,0 +1,107 @@ +google.api.Billing + */ +class Billing extends \Google\Protobuf\Internal\Message +{ + /** + * Billing configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations per service, each one must have + * a different monitored resource type. A metric can be used in at most + * one consumer destination. + * + * Generated from protobuf field repeated .google.api.Billing.BillingDestination consumer_destinations = 8; + */ + private $consumer_destinations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\Billing\BillingDestination>|\Google\Protobuf\Internal\RepeatedField $consumer_destinations + * Billing configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations per service, each one must have + * a different monitored resource type. A metric can be used in at most + * one consumer destination. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Billing::initOnce(); + parent::__construct($data); + } + + /** + * Billing configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations per service, each one must have + * a different monitored resource type. A metric can be used in at most + * one consumer destination. + * + * Generated from protobuf field repeated .google.api.Billing.BillingDestination consumer_destinations = 8; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConsumerDestinations() + { + return $this->consumer_destinations; + } + + /** + * Billing configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations per service, each one must have + * a different monitored resource type. A metric can be used in at most + * one consumer destination. + * + * Generated from protobuf field repeated .google.api.Billing.BillingDestination consumer_destinations = 8; + * @param array<\Google\Api\Billing\BillingDestination>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConsumerDestinations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Billing\BillingDestination::class); + $this->consumer_destinations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Billing/BillingDestination.php b/vendor/google/common-protos/src/Api/Billing/BillingDestination.php new file mode 100644 index 0000000..39be6dd --- /dev/null +++ b/vendor/google/common-protos/src/Api/Billing/BillingDestination.php @@ -0,0 +1,119 @@ +google.api.Billing.BillingDestination + */ +class BillingDestination extends \Google\Protobuf\Internal\Message +{ + /** + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 1; + */ + protected $monitored_resource = ''; + /** + * Names of the metrics to report to this billing destination. + * Each name must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * + * Generated from protobuf field repeated string metrics = 2; + */ + private $metrics; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $monitored_resource + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * @type array|\Google\Protobuf\Internal\RepeatedField $metrics + * Names of the metrics to report to this billing destination. + * Each name must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Billing::initOnce(); + parent::__construct($data); + } + + /** + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 1; + * @return string + */ + public function getMonitoredResource() + { + return $this->monitored_resource; + } + + /** + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 1; + * @param string $var + * @return $this + */ + public function setMonitoredResource($var) + { + GPBUtil::checkString($var, True); + $this->monitored_resource = $var; + + return $this; + } + + /** + * Names of the metrics to report to this billing destination. + * Each name must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * + * Generated from protobuf field repeated string metrics = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMetrics() + { + return $this->metrics; + } + + /** + * Names of the metrics to report to this billing destination. + * Each name must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * + * Generated from protobuf field repeated string metrics = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMetrics($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->metrics = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/ChangeType.php b/vendor/google/common-protos/src/Api/ChangeType.php new file mode 100644 index 0000000..e39ab1b --- /dev/null +++ b/vendor/google/common-protos/src/Api/ChangeType.php @@ -0,0 +1,72 @@ +google.api.ChangeType + */ +class ChangeType +{ + /** + * No value was provided. + * + * Generated from protobuf enum CHANGE_TYPE_UNSPECIFIED = 0; + */ + const CHANGE_TYPE_UNSPECIFIED = 0; + /** + * The changed object exists in the 'new' service configuration, but not + * in the 'old' service configuration. + * + * Generated from protobuf enum ADDED = 1; + */ + const ADDED = 1; + /** + * The changed object exists in the 'old' service configuration, but not + * in the 'new' service configuration. + * + * Generated from protobuf enum REMOVED = 2; + */ + const REMOVED = 2; + /** + * The changed object exists in both service configurations, but its value + * is different. + * + * Generated from protobuf enum MODIFIED = 3; + */ + const MODIFIED = 3; + + private static $valueToName = [ + self::CHANGE_TYPE_UNSPECIFIED => 'CHANGE_TYPE_UNSPECIFIED', + self::ADDED => 'ADDED', + self::REMOVED => 'REMOVED', + self::MODIFIED => 'MODIFIED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Api/ClientLibraryDestination.php b/vendor/google/common-protos/src/Api/ClientLibraryDestination.php new file mode 100644 index 0000000..81aee77 --- /dev/null +++ b/vendor/google/common-protos/src/Api/ClientLibraryDestination.php @@ -0,0 +1,63 @@ +google.api.ClientLibraryDestination + */ +class ClientLibraryDestination +{ + /** + * Client libraries will neither be generated nor published to package + * managers. + * + * Generated from protobuf enum CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0; + */ + const CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0; + /** + * Generate the client library in a repo under github.com/googleapis, + * but don't publish it to package managers. + * + * Generated from protobuf enum GITHUB = 10; + */ + const GITHUB = 10; + /** + * Publish the library to package managers like nuget.org and npmjs.com. + * + * Generated from protobuf enum PACKAGE_MANAGER = 20; + */ + const PACKAGE_MANAGER = 20; + + private static $valueToName = [ + self::CLIENT_LIBRARY_DESTINATION_UNSPECIFIED => 'CLIENT_LIBRARY_DESTINATION_UNSPECIFIED', + self::GITHUB => 'GITHUB', + self::PACKAGE_MANAGER => 'PACKAGE_MANAGER', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Api/ClientLibraryOrganization.php b/vendor/google/common-protos/src/Api/ClientLibraryOrganization.php new file mode 100644 index 0000000..bbb985f --- /dev/null +++ b/vendor/google/common-protos/src/Api/ClientLibraryOrganization.php @@ -0,0 +1,97 @@ +google.api.ClientLibraryOrganization + */ +class ClientLibraryOrganization +{ + /** + * Not useful. + * + * Generated from protobuf enum CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0; + */ + const CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0; + /** + * Google Cloud Platform Org. + * + * Generated from protobuf enum CLOUD = 1; + */ + const CLOUD = 1; + /** + * Ads (Advertising) Org. + * + * Generated from protobuf enum ADS = 2; + */ + const ADS = 2; + /** + * Photos Org. + * + * Generated from protobuf enum PHOTOS = 3; + */ + const PHOTOS = 3; + /** + * Street View Org. + * + * Generated from protobuf enum STREET_VIEW = 4; + */ + const STREET_VIEW = 4; + /** + * Shopping Org. + * + * Generated from protobuf enum SHOPPING = 5; + */ + const SHOPPING = 5; + /** + * Geo Org. + * + * Generated from protobuf enum GEO = 6; + */ + const GEO = 6; + /** + * Generative AI - https://developers.generativeai.google + * + * Generated from protobuf enum GENERATIVE_AI = 7; + */ + const GENERATIVE_AI = 7; + + private static $valueToName = [ + self::CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED => 'CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED', + self::CLOUD => 'CLOUD', + self::ADS => 'ADS', + self::PHOTOS => 'PHOTOS', + self::STREET_VIEW => 'STREET_VIEW', + self::SHOPPING => 'SHOPPING', + self::GEO => 'GEO', + self::GENERATIVE_AI => 'GENERATIVE_AI', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Api/ClientLibrarySettings.php b/vendor/google/common-protos/src/Api/ClientLibrarySettings.php new file mode 100644 index 0000000..d67588e --- /dev/null +++ b/vendor/google/common-protos/src/Api/ClientLibrarySettings.php @@ -0,0 +1,499 @@ +google.api.ClientLibrarySettings + */ +class ClientLibrarySettings extends \Google\Protobuf\Internal\Message +{ + /** + * Version of the API to apply these settings to. This is the full protobuf + * package for the API, ending in the version element. + * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1". + * + * Generated from protobuf field string version = 1; + */ + protected $version = ''; + /** + * Launch stage of this version of the API. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 2; + */ + protected $launch_stage = 0; + /** + * When using transport=rest, the client request will encode enums as + * numbers rather than strings. + * + * Generated from protobuf field bool rest_numeric_enums = 3; + */ + protected $rest_numeric_enums = false; + /** + * Settings for legacy Java features, supported in the Service YAML. + * + * Generated from protobuf field .google.api.JavaSettings java_settings = 21; + */ + protected $java_settings = null; + /** + * Settings for C++ client libraries. + * + * Generated from protobuf field .google.api.CppSettings cpp_settings = 22; + */ + protected $cpp_settings = null; + /** + * Settings for PHP client libraries. + * + * Generated from protobuf field .google.api.PhpSettings php_settings = 23; + */ + protected $php_settings = null; + /** + * Settings for Python client libraries. + * + * Generated from protobuf field .google.api.PythonSettings python_settings = 24; + */ + protected $python_settings = null; + /** + * Settings for Node client libraries. + * + * Generated from protobuf field .google.api.NodeSettings node_settings = 25; + */ + protected $node_settings = null; + /** + * Settings for .NET client libraries. + * + * Generated from protobuf field .google.api.DotnetSettings dotnet_settings = 26; + */ + protected $dotnet_settings = null; + /** + * Settings for Ruby client libraries. + * + * Generated from protobuf field .google.api.RubySettings ruby_settings = 27; + */ + protected $ruby_settings = null; + /** + * Settings for Go client libraries. + * + * Generated from protobuf field .google.api.GoSettings go_settings = 28; + */ + protected $go_settings = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $version + * Version of the API to apply these settings to. This is the full protobuf + * package for the API, ending in the version element. + * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1". + * @type int $launch_stage + * Launch stage of this version of the API. + * @type bool $rest_numeric_enums + * When using transport=rest, the client request will encode enums as + * numbers rather than strings. + * @type \Google\Api\JavaSettings $java_settings + * Settings for legacy Java features, supported in the Service YAML. + * @type \Google\Api\CppSettings $cpp_settings + * Settings for C++ client libraries. + * @type \Google\Api\PhpSettings $php_settings + * Settings for PHP client libraries. + * @type \Google\Api\PythonSettings $python_settings + * Settings for Python client libraries. + * @type \Google\Api\NodeSettings $node_settings + * Settings for Node client libraries. + * @type \Google\Api\DotnetSettings $dotnet_settings + * Settings for .NET client libraries. + * @type \Google\Api\RubySettings $ruby_settings + * Settings for Ruby client libraries. + * @type \Google\Api\GoSettings $go_settings + * Settings for Go client libraries. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Version of the API to apply these settings to. This is the full protobuf + * package for the API, ending in the version element. + * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1". + * + * Generated from protobuf field string version = 1; + * @return string + */ + public function getVersion() + { + return $this->version; + } + + /** + * Version of the API to apply these settings to. This is the full protobuf + * package for the API, ending in the version element. + * Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1". + * + * Generated from protobuf field string version = 1; + * @param string $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkString($var, True); + $this->version = $var; + + return $this; + } + + /** + * Launch stage of this version of the API. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 2; + * @return int + */ + public function getLaunchStage() + { + return $this->launch_stage; + } + + /** + * Launch stage of this version of the API. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 2; + * @param int $var + * @return $this + */ + public function setLaunchStage($var) + { + GPBUtil::checkEnum($var, \Google\Api\LaunchStage::class); + $this->launch_stage = $var; + + return $this; + } + + /** + * When using transport=rest, the client request will encode enums as + * numbers rather than strings. + * + * Generated from protobuf field bool rest_numeric_enums = 3; + * @return bool + */ + public function getRestNumericEnums() + { + return $this->rest_numeric_enums; + } + + /** + * When using transport=rest, the client request will encode enums as + * numbers rather than strings. + * + * Generated from protobuf field bool rest_numeric_enums = 3; + * @param bool $var + * @return $this + */ + public function setRestNumericEnums($var) + { + GPBUtil::checkBool($var); + $this->rest_numeric_enums = $var; + + return $this; + } + + /** + * Settings for legacy Java features, supported in the Service YAML. + * + * Generated from protobuf field .google.api.JavaSettings java_settings = 21; + * @return \Google\Api\JavaSettings|null + */ + public function getJavaSettings() + { + return $this->java_settings; + } + + public function hasJavaSettings() + { + return isset($this->java_settings); + } + + public function clearJavaSettings() + { + unset($this->java_settings); + } + + /** + * Settings for legacy Java features, supported in the Service YAML. + * + * Generated from protobuf field .google.api.JavaSettings java_settings = 21; + * @param \Google\Api\JavaSettings $var + * @return $this + */ + public function setJavaSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\JavaSettings::class); + $this->java_settings = $var; + + return $this; + } + + /** + * Settings for C++ client libraries. + * + * Generated from protobuf field .google.api.CppSettings cpp_settings = 22; + * @return \Google\Api\CppSettings|null + */ + public function getCppSettings() + { + return $this->cpp_settings; + } + + public function hasCppSettings() + { + return isset($this->cpp_settings); + } + + public function clearCppSettings() + { + unset($this->cpp_settings); + } + + /** + * Settings for C++ client libraries. + * + * Generated from protobuf field .google.api.CppSettings cpp_settings = 22; + * @param \Google\Api\CppSettings $var + * @return $this + */ + public function setCppSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\CppSettings::class); + $this->cpp_settings = $var; + + return $this; + } + + /** + * Settings for PHP client libraries. + * + * Generated from protobuf field .google.api.PhpSettings php_settings = 23; + * @return \Google\Api\PhpSettings|null + */ + public function getPhpSettings() + { + return $this->php_settings; + } + + public function hasPhpSettings() + { + return isset($this->php_settings); + } + + public function clearPhpSettings() + { + unset($this->php_settings); + } + + /** + * Settings for PHP client libraries. + * + * Generated from protobuf field .google.api.PhpSettings php_settings = 23; + * @param \Google\Api\PhpSettings $var + * @return $this + */ + public function setPhpSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\PhpSettings::class); + $this->php_settings = $var; + + return $this; + } + + /** + * Settings for Python client libraries. + * + * Generated from protobuf field .google.api.PythonSettings python_settings = 24; + * @return \Google\Api\PythonSettings|null + */ + public function getPythonSettings() + { + return $this->python_settings; + } + + public function hasPythonSettings() + { + return isset($this->python_settings); + } + + public function clearPythonSettings() + { + unset($this->python_settings); + } + + /** + * Settings for Python client libraries. + * + * Generated from protobuf field .google.api.PythonSettings python_settings = 24; + * @param \Google\Api\PythonSettings $var + * @return $this + */ + public function setPythonSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\PythonSettings::class); + $this->python_settings = $var; + + return $this; + } + + /** + * Settings for Node client libraries. + * + * Generated from protobuf field .google.api.NodeSettings node_settings = 25; + * @return \Google\Api\NodeSettings|null + */ + public function getNodeSettings() + { + return $this->node_settings; + } + + public function hasNodeSettings() + { + return isset($this->node_settings); + } + + public function clearNodeSettings() + { + unset($this->node_settings); + } + + /** + * Settings for Node client libraries. + * + * Generated from protobuf field .google.api.NodeSettings node_settings = 25; + * @param \Google\Api\NodeSettings $var + * @return $this + */ + public function setNodeSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\NodeSettings::class); + $this->node_settings = $var; + + return $this; + } + + /** + * Settings for .NET client libraries. + * + * Generated from protobuf field .google.api.DotnetSettings dotnet_settings = 26; + * @return \Google\Api\DotnetSettings|null + */ + public function getDotnetSettings() + { + return $this->dotnet_settings; + } + + public function hasDotnetSettings() + { + return isset($this->dotnet_settings); + } + + public function clearDotnetSettings() + { + unset($this->dotnet_settings); + } + + /** + * Settings for .NET client libraries. + * + * Generated from protobuf field .google.api.DotnetSettings dotnet_settings = 26; + * @param \Google\Api\DotnetSettings $var + * @return $this + */ + public function setDotnetSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\DotnetSettings::class); + $this->dotnet_settings = $var; + + return $this; + } + + /** + * Settings for Ruby client libraries. + * + * Generated from protobuf field .google.api.RubySettings ruby_settings = 27; + * @return \Google\Api\RubySettings|null + */ + public function getRubySettings() + { + return $this->ruby_settings; + } + + public function hasRubySettings() + { + return isset($this->ruby_settings); + } + + public function clearRubySettings() + { + unset($this->ruby_settings); + } + + /** + * Settings for Ruby client libraries. + * + * Generated from protobuf field .google.api.RubySettings ruby_settings = 27; + * @param \Google\Api\RubySettings $var + * @return $this + */ + public function setRubySettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\RubySettings::class); + $this->ruby_settings = $var; + + return $this; + } + + /** + * Settings for Go client libraries. + * + * Generated from protobuf field .google.api.GoSettings go_settings = 28; + * @return \Google\Api\GoSettings|null + */ + public function getGoSettings() + { + return $this->go_settings; + } + + public function hasGoSettings() + { + return isset($this->go_settings); + } + + public function clearGoSettings() + { + unset($this->go_settings); + } + + /** + * Settings for Go client libraries. + * + * Generated from protobuf field .google.api.GoSettings go_settings = 28; + * @param \Google\Api\GoSettings $var + * @return $this + */ + public function setGoSettings($var) + { + GPBUtil::checkMessage($var, \Google\Api\GoSettings::class); + $this->go_settings = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/CommonLanguageSettings.php b/vendor/google/common-protos/src/Api/CommonLanguageSettings.php new file mode 100644 index 0000000..07f8230 --- /dev/null +++ b/vendor/google/common-protos/src/Api/CommonLanguageSettings.php @@ -0,0 +1,156 @@ +google.api.CommonLanguageSettings + */ +class CommonLanguageSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Link to automatically generated reference documentation. Example: + * https://cloud.google.com/nodejs/docs/reference/asset/latest + * + * Generated from protobuf field string reference_docs_uri = 1 [deprecated = true]; + * @deprecated + */ + protected $reference_docs_uri = ''; + /** + * The destination where API teams want this client library to be published. + * + * Generated from protobuf field repeated .google.api.ClientLibraryDestination destinations = 2; + */ + private $destinations; + /** + * Configuration for which RPCs should be generated in the GAPIC client. + * + * Generated from protobuf field .google.api.SelectiveGapicGeneration selective_gapic_generation = 3; + */ + protected $selective_gapic_generation = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $reference_docs_uri + * Link to automatically generated reference documentation. Example: + * https://cloud.google.com/nodejs/docs/reference/asset/latest + * @type array|\Google\Protobuf\Internal\RepeatedField $destinations + * The destination where API teams want this client library to be published. + * @type \Google\Api\SelectiveGapicGeneration $selective_gapic_generation + * Configuration for which RPCs should be generated in the GAPIC client. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Link to automatically generated reference documentation. Example: + * https://cloud.google.com/nodejs/docs/reference/asset/latest + * + * Generated from protobuf field string reference_docs_uri = 1 [deprecated = true]; + * @return string + * @deprecated + */ + public function getReferenceDocsUri() + { + if ($this->reference_docs_uri !== '') { + @trigger_error('reference_docs_uri is deprecated.', E_USER_DEPRECATED); + } + return $this->reference_docs_uri; + } + + /** + * Link to automatically generated reference documentation. Example: + * https://cloud.google.com/nodejs/docs/reference/asset/latest + * + * Generated from protobuf field string reference_docs_uri = 1 [deprecated = true]; + * @param string $var + * @return $this + * @deprecated + */ + public function setReferenceDocsUri($var) + { + @trigger_error('reference_docs_uri is deprecated.', E_USER_DEPRECATED); + GPBUtil::checkString($var, True); + $this->reference_docs_uri = $var; + + return $this; + } + + /** + * The destination where API teams want this client library to be published. + * + * Generated from protobuf field repeated .google.api.ClientLibraryDestination destinations = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDestinations() + { + return $this->destinations; + } + + /** + * The destination where API teams want this client library to be published. + * + * Generated from protobuf field repeated .google.api.ClientLibraryDestination destinations = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDestinations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Api\ClientLibraryDestination::class); + $this->destinations = $arr; + + return $this; + } + + /** + * Configuration for which RPCs should be generated in the GAPIC client. + * + * Generated from protobuf field .google.api.SelectiveGapicGeneration selective_gapic_generation = 3; + * @return \Google\Api\SelectiveGapicGeneration|null + */ + public function getSelectiveGapicGeneration() + { + return $this->selective_gapic_generation; + } + + public function hasSelectiveGapicGeneration() + { + return isset($this->selective_gapic_generation); + } + + public function clearSelectiveGapicGeneration() + { + unset($this->selective_gapic_generation); + } + + /** + * Configuration for which RPCs should be generated in the GAPIC client. + * + * Generated from protobuf field .google.api.SelectiveGapicGeneration selective_gapic_generation = 3; + * @param \Google\Api\SelectiveGapicGeneration $var + * @return $this + */ + public function setSelectiveGapicGeneration($var) + { + GPBUtil::checkMessage($var, \Google\Api\SelectiveGapicGeneration::class); + $this->selective_gapic_generation = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/ConfigChange.php b/vendor/google/common-protos/src/Api/ConfigChange.php new file mode 100644 index 0000000..8c4fcd5 --- /dev/null +++ b/vendor/google/common-protos/src/Api/ConfigChange.php @@ -0,0 +1,251 @@ +google.api.ConfigChange + */ +class ConfigChange extends \Google\Protobuf\Internal\Message +{ + /** + * Object hierarchy path to the change, with levels separated by a '.' + * character. For repeated fields, an applicable unique identifier field is + * used for the index (usually selector, name, or id). For maps, the term + * 'key' is used. If the field has no unique identifier, the numeric index + * is used. + * Examples: + * - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction + * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value + * - logging.producer_destinations[0] + * + * Generated from protobuf field string element = 1; + */ + protected $element = ''; + /** + * Value of the changed object in the old Service configuration, + * in JSON format. This field will not be populated if ChangeType == ADDED. + * + * Generated from protobuf field string old_value = 2; + */ + protected $old_value = ''; + /** + * Value of the changed object in the new Service configuration, + * in JSON format. This field will not be populated if ChangeType == REMOVED. + * + * Generated from protobuf field string new_value = 3; + */ + protected $new_value = ''; + /** + * The type for this change, either ADDED, REMOVED, or MODIFIED. + * + * Generated from protobuf field .google.api.ChangeType change_type = 4; + */ + protected $change_type = 0; + /** + * Collection of advice provided for this change, useful for determining the + * possible impact of this change. + * + * Generated from protobuf field repeated .google.api.Advice advices = 5; + */ + private $advices; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $element + * Object hierarchy path to the change, with levels separated by a '.' + * character. For repeated fields, an applicable unique identifier field is + * used for the index (usually selector, name, or id). For maps, the term + * 'key' is used. If the field has no unique identifier, the numeric index + * is used. + * Examples: + * - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction + * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value + * - logging.producer_destinations[0] + * @type string $old_value + * Value of the changed object in the old Service configuration, + * in JSON format. This field will not be populated if ChangeType == ADDED. + * @type string $new_value + * Value of the changed object in the new Service configuration, + * in JSON format. This field will not be populated if ChangeType == REMOVED. + * @type int $change_type + * The type for this change, either ADDED, REMOVED, or MODIFIED. + * @type array<\Google\Api\Advice>|\Google\Protobuf\Internal\RepeatedField $advices + * Collection of advice provided for this change, useful for determining the + * possible impact of this change. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\ConfigChange::initOnce(); + parent::__construct($data); + } + + /** + * Object hierarchy path to the change, with levels separated by a '.' + * character. For repeated fields, an applicable unique identifier field is + * used for the index (usually selector, name, or id). For maps, the term + * 'key' is used. If the field has no unique identifier, the numeric index + * is used. + * Examples: + * - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction + * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value + * - logging.producer_destinations[0] + * + * Generated from protobuf field string element = 1; + * @return string + */ + public function getElement() + { + return $this->element; + } + + /** + * Object hierarchy path to the change, with levels separated by a '.' + * character. For repeated fields, an applicable unique identifier field is + * used for the index (usually selector, name, or id). For maps, the term + * 'key' is used. If the field has no unique identifier, the numeric index + * is used. + * Examples: + * - visibility.rules[selector=="google.LibraryService.ListBooks"].restriction + * - quota.metric_rules[selector=="google"].metric_costs[key=="reads"].value + * - logging.producer_destinations[0] + * + * Generated from protobuf field string element = 1; + * @param string $var + * @return $this + */ + public function setElement($var) + { + GPBUtil::checkString($var, True); + $this->element = $var; + + return $this; + } + + /** + * Value of the changed object in the old Service configuration, + * in JSON format. This field will not be populated if ChangeType == ADDED. + * + * Generated from protobuf field string old_value = 2; + * @return string + */ + public function getOldValue() + { + return $this->old_value; + } + + /** + * Value of the changed object in the old Service configuration, + * in JSON format. This field will not be populated if ChangeType == ADDED. + * + * Generated from protobuf field string old_value = 2; + * @param string $var + * @return $this + */ + public function setOldValue($var) + { + GPBUtil::checkString($var, True); + $this->old_value = $var; + + return $this; + } + + /** + * Value of the changed object in the new Service configuration, + * in JSON format. This field will not be populated if ChangeType == REMOVED. + * + * Generated from protobuf field string new_value = 3; + * @return string + */ + public function getNewValue() + { + return $this->new_value; + } + + /** + * Value of the changed object in the new Service configuration, + * in JSON format. This field will not be populated if ChangeType == REMOVED. + * + * Generated from protobuf field string new_value = 3; + * @param string $var + * @return $this + */ + public function setNewValue($var) + { + GPBUtil::checkString($var, True); + $this->new_value = $var; + + return $this; + } + + /** + * The type for this change, either ADDED, REMOVED, or MODIFIED. + * + * Generated from protobuf field .google.api.ChangeType change_type = 4; + * @return int + */ + public function getChangeType() + { + return $this->change_type; + } + + /** + * The type for this change, either ADDED, REMOVED, or MODIFIED. + * + * Generated from protobuf field .google.api.ChangeType change_type = 4; + * @param int $var + * @return $this + */ + public function setChangeType($var) + { + GPBUtil::checkEnum($var, \Google\Api\ChangeType::class); + $this->change_type = $var; + + return $this; + } + + /** + * Collection of advice provided for this change, useful for determining the + * possible impact of this change. + * + * Generated from protobuf field repeated .google.api.Advice advices = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAdvices() + { + return $this->advices; + } + + /** + * Collection of advice provided for this change, useful for determining the + * possible impact of this change. + * + * Generated from protobuf field repeated .google.api.Advice advices = 5; + * @param array<\Google\Api\Advice>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAdvices($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Advice::class); + $this->advices = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Context.php b/vendor/google/common-protos/src/Api/Context.php new file mode 100644 index 0000000..b353115 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Context.php @@ -0,0 +1,98 @@ +-bin” and + * “x-goog-ext--jspb” format. For example, list any service + * specific protobuf types that can appear in grpc metadata as follows in your + * yaml file: + * Example: + * context: + * rules: + * - selector: "google.example.library.v1.LibraryService.CreateBook" + * allowed_request_extensions: + * - google.foo.v1.NewExtension + * allowed_response_extensions: + * - google.foo.v1.NewExtension + * You can also specify extension ID instead of fully qualified extension name + * here. + * + * Generated from protobuf message google.api.Context + */ +class Context extends \Google\Protobuf\Internal\Message +{ + /** + * A list of RPC context rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.ContextRule rules = 1; + */ + private $rules; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\ContextRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of RPC context rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Context::initOnce(); + parent::__construct($data); + } + + /** + * A list of RPC context rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.ContextRule rules = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of RPC context rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.ContextRule rules = 1; + * @param array<\Google\Api\ContextRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\ContextRule::class); + $this->rules = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/ContextRule.php b/vendor/google/common-protos/src/Api/ContextRule.php new file mode 100644 index 0000000..f455b1e --- /dev/null +++ b/vendor/google/common-protos/src/Api/ContextRule.php @@ -0,0 +1,228 @@ +google.api.ContextRule + */ +class ContextRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * A list of full type names of requested contexts, only the requested context + * will be made available to the backend. + * + * Generated from protobuf field repeated string requested = 2; + */ + private $requested; + /** + * A list of full type names of provided contexts. It is used to support + * propagating HTTP headers and ETags from the response extension. + * + * Generated from protobuf field repeated string provided = 3; + */ + private $provided; + /** + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from client to backend. + * + * Generated from protobuf field repeated string allowed_request_extensions = 4; + */ + private $allowed_request_extensions; + /** + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from backend to client. + * + * Generated from protobuf field repeated string allowed_response_extensions = 5; + */ + private $allowed_response_extensions; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type array|\Google\Protobuf\Internal\RepeatedField $requested + * A list of full type names of requested contexts, only the requested context + * will be made available to the backend. + * @type array|\Google\Protobuf\Internal\RepeatedField $provided + * A list of full type names of provided contexts. It is used to support + * propagating HTTP headers and ETags from the response extension. + * @type array|\Google\Protobuf\Internal\RepeatedField $allowed_request_extensions + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from client to backend. + * @type array|\Google\Protobuf\Internal\RepeatedField $allowed_response_extensions + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from backend to client. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Context::initOnce(); + parent::__construct($data); + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * A list of full type names of requested contexts, only the requested context + * will be made available to the backend. + * + * Generated from protobuf field repeated string requested = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRequested() + { + return $this->requested; + } + + /** + * A list of full type names of requested contexts, only the requested context + * will be made available to the backend. + * + * Generated from protobuf field repeated string requested = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRequested($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->requested = $arr; + + return $this; + } + + /** + * A list of full type names of provided contexts. It is used to support + * propagating HTTP headers and ETags from the response extension. + * + * Generated from protobuf field repeated string provided = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getProvided() + { + return $this->provided; + } + + /** + * A list of full type names of provided contexts. It is used to support + * propagating HTTP headers and ETags from the response extension. + * + * Generated from protobuf field repeated string provided = 3; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setProvided($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->provided = $arr; + + return $this; + } + + /** + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from client to backend. + * + * Generated from protobuf field repeated string allowed_request_extensions = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAllowedRequestExtensions() + { + return $this->allowed_request_extensions; + } + + /** + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from client to backend. + * + * Generated from protobuf field repeated string allowed_request_extensions = 4; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAllowedRequestExtensions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->allowed_request_extensions = $arr; + + return $this; + } + + /** + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from backend to client. + * + * Generated from protobuf field repeated string allowed_response_extensions = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAllowedResponseExtensions() + { + return $this->allowed_response_extensions; + } + + /** + * A list of full type names or extension IDs of extensions allowed in grpc + * side channel from backend to client. + * + * Generated from protobuf field repeated string allowed_response_extensions = 5; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAllowedResponseExtensions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->allowed_response_extensions = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Control.php b/vendor/google/common-protos/src/Api/Control.php new file mode 100644 index 0000000..5b9bdf1 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Control.php @@ -0,0 +1,112 @@ +google.api.Control + */ +class Control extends \Google\Protobuf\Internal\Message +{ + /** + * The service controller environment to use. If empty, no control plane + * feature (like quota and billing) will be enabled. The recommended value for + * most services is servicecontrol.googleapis.com + * + * Generated from protobuf field string environment = 1; + */ + protected $environment = ''; + /** + * Defines policies applying to the API methods of the service. + * + * Generated from protobuf field repeated .google.api.MethodPolicy method_policies = 4; + */ + private $method_policies; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $environment + * The service controller environment to use. If empty, no control plane + * feature (like quota and billing) will be enabled. The recommended value for + * most services is servicecontrol.googleapis.com + * @type array<\Google\Api\MethodPolicy>|\Google\Protobuf\Internal\RepeatedField $method_policies + * Defines policies applying to the API methods of the service. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Control::initOnce(); + parent::__construct($data); + } + + /** + * The service controller environment to use. If empty, no control plane + * feature (like quota and billing) will be enabled. The recommended value for + * most services is servicecontrol.googleapis.com + * + * Generated from protobuf field string environment = 1; + * @return string + */ + public function getEnvironment() + { + return $this->environment; + } + + /** + * The service controller environment to use. If empty, no control plane + * feature (like quota and billing) will be enabled. The recommended value for + * most services is servicecontrol.googleapis.com + * + * Generated from protobuf field string environment = 1; + * @param string $var + * @return $this + */ + public function setEnvironment($var) + { + GPBUtil::checkString($var, True); + $this->environment = $var; + + return $this; + } + + /** + * Defines policies applying to the API methods of the service. + * + * Generated from protobuf field repeated .google.api.MethodPolicy method_policies = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMethodPolicies() + { + return $this->method_policies; + } + + /** + * Defines policies applying to the API methods of the service. + * + * Generated from protobuf field repeated .google.api.MethodPolicy method_policies = 4; + * @param array<\Google\Api\MethodPolicy>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMethodPolicies($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MethodPolicy::class); + $this->method_policies = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/CppSettings.php b/vendor/google/common-protos/src/Api/CppSettings.php new file mode 100644 index 0000000..d814b5c --- /dev/null +++ b/vendor/google/common-protos/src/Api/CppSettings.php @@ -0,0 +1,77 @@ +google.api.CppSettings + */ +class CppSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/CustomHttpPattern.php b/vendor/google/common-protos/src/Api/CustomHttpPattern.php new file mode 100644 index 0000000..e937032 --- /dev/null +++ b/vendor/google/common-protos/src/Api/CustomHttpPattern.php @@ -0,0 +1,101 @@ +google.api.CustomHttpPattern + */ +class CustomHttpPattern extends \Google\Protobuf\Internal\Message +{ + /** + * The name of this custom HTTP verb. + * + * Generated from protobuf field string kind = 1; + */ + protected $kind = ''; + /** + * The path matched by this custom verb. + * + * Generated from protobuf field string path = 2; + */ + protected $path = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $kind + * The name of this custom HTTP verb. + * @type string $path + * The path matched by this custom verb. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Http::initOnce(); + parent::__construct($data); + } + + /** + * The name of this custom HTTP verb. + * + * Generated from protobuf field string kind = 1; + * @return string + */ + public function getKind() + { + return $this->kind; + } + + /** + * The name of this custom HTTP verb. + * + * Generated from protobuf field string kind = 1; + * @param string $var + * @return $this + */ + public function setKind($var) + { + GPBUtil::checkString($var, True); + $this->kind = $var; + + return $this; + } + + /** + * The path matched by this custom verb. + * + * Generated from protobuf field string path = 2; + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * The path matched by this custom verb. + * + * Generated from protobuf field string path = 2; + * @param string $var + * @return $this + */ + public function setPath($var) + { + GPBUtil::checkString($var, True); + $this->path = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Distribution.php b/vendor/google/common-protos/src/Api/Distribution.php new file mode 100644 index 0000000..e81aae5 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution.php @@ -0,0 +1,390 @@ +google.api.Distribution + */ +class Distribution extends \Google\Protobuf\Internal\Message +{ + /** + * The number of values in the population. Must be non-negative. This value + * must equal the sum of the values in `bucket_counts` if a histogram is + * provided. + * + * Generated from protobuf field int64 count = 1; + */ + protected $count = 0; + /** + * The arithmetic mean of the values in the population. If `count` is zero + * then this field must be zero. + * + * Generated from protobuf field double mean = 2; + */ + protected $mean = 0.0; + /** + * The sum of squared deviations from the mean of the values in the + * population. For values x_i this is: + * Sum[i=1..n]((x_i - mean)^2) + * Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3rd edition + * describes Welford's method for accumulating this sum in one pass. + * If `count` is zero then this field must be zero. + * + * Generated from protobuf field double sum_of_squared_deviation = 3; + */ + protected $sum_of_squared_deviation = 0.0; + /** + * If specified, contains the range of the population values. The field + * must not be present if the `count` is zero. + * + * Generated from protobuf field .google.api.Distribution.Range range = 4; + */ + protected $range = null; + /** + * Defines the histogram bucket boundaries. If the distribution does not + * contain a histogram, then omit this field. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions bucket_options = 6; + */ + protected $bucket_options = null; + /** + * The number of values in each bucket of the histogram, as described in + * `bucket_options`. If the distribution does not have a histogram, then omit + * this field. If there is a histogram, then the sum of the values in + * `bucket_counts` must equal the value in the `count` field of the + * distribution. + * If present, `bucket_counts` should contain N values, where N is the number + * of buckets specified in `bucket_options`. If you supply fewer than N + * values, the remaining values are assumed to be 0. + * The order of the values in `bucket_counts` follows the bucket numbering + * schemes described for the three bucket types. The first value must be the + * count for the underflow bucket (number 0). The next N-2 values are the + * counts for the finite buckets (number 1 through N-2). The N'th value in + * `bucket_counts` is the count for the overflow bucket (number N-1). + * + * Generated from protobuf field repeated int64 bucket_counts = 7; + */ + private $bucket_counts; + /** + * Must be in increasing order of `value` field. + * + * Generated from protobuf field repeated .google.api.Distribution.Exemplar exemplars = 10; + */ + private $exemplars; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $count + * The number of values in the population. Must be non-negative. This value + * must equal the sum of the values in `bucket_counts` if a histogram is + * provided. + * @type float $mean + * The arithmetic mean of the values in the population. If `count` is zero + * then this field must be zero. + * @type float $sum_of_squared_deviation + * The sum of squared deviations from the mean of the values in the + * population. For values x_i this is: + * Sum[i=1..n]((x_i - mean)^2) + * Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3rd edition + * describes Welford's method for accumulating this sum in one pass. + * If `count` is zero then this field must be zero. + * @type \Google\Api\Distribution\Range $range + * If specified, contains the range of the population values. The field + * must not be present if the `count` is zero. + * @type \Google\Api\Distribution\BucketOptions $bucket_options + * Defines the histogram bucket boundaries. If the distribution does not + * contain a histogram, then omit this field. + * @type array|array|\Google\Protobuf\Internal\RepeatedField $bucket_counts + * The number of values in each bucket of the histogram, as described in + * `bucket_options`. If the distribution does not have a histogram, then omit + * this field. If there is a histogram, then the sum of the values in + * `bucket_counts` must equal the value in the `count` field of the + * distribution. + * If present, `bucket_counts` should contain N values, where N is the number + * of buckets specified in `bucket_options`. If you supply fewer than N + * values, the remaining values are assumed to be 0. + * The order of the values in `bucket_counts` follows the bucket numbering + * schemes described for the three bucket types. The first value must be the + * count for the underflow bucket (number 0). The next N-2 values are the + * counts for the finite buckets (number 1 through N-2). The N'th value in + * `bucket_counts` is the count for the overflow bucket (number N-1). + * @type array<\Google\Api\Distribution\Exemplar>|\Google\Protobuf\Internal\RepeatedField $exemplars + * Must be in increasing order of `value` field. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * The number of values in the population. Must be non-negative. This value + * must equal the sum of the values in `bucket_counts` if a histogram is + * provided. + * + * Generated from protobuf field int64 count = 1; + * @return int|string + */ + public function getCount() + { + return $this->count; + } + + /** + * The number of values in the population. Must be non-negative. This value + * must equal the sum of the values in `bucket_counts` if a histogram is + * provided. + * + * Generated from protobuf field int64 count = 1; + * @param int|string $var + * @return $this + */ + public function setCount($var) + { + GPBUtil::checkInt64($var); + $this->count = $var; + + return $this; + } + + /** + * The arithmetic mean of the values in the population. If `count` is zero + * then this field must be zero. + * + * Generated from protobuf field double mean = 2; + * @return float + */ + public function getMean() + { + return $this->mean; + } + + /** + * The arithmetic mean of the values in the population. If `count` is zero + * then this field must be zero. + * + * Generated from protobuf field double mean = 2; + * @param float $var + * @return $this + */ + public function setMean($var) + { + GPBUtil::checkDouble($var); + $this->mean = $var; + + return $this; + } + + /** + * The sum of squared deviations from the mean of the values in the + * population. For values x_i this is: + * Sum[i=1..n]((x_i - mean)^2) + * Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3rd edition + * describes Welford's method for accumulating this sum in one pass. + * If `count` is zero then this field must be zero. + * + * Generated from protobuf field double sum_of_squared_deviation = 3; + * @return float + */ + public function getSumOfSquaredDeviation() + { + return $this->sum_of_squared_deviation; + } + + /** + * The sum of squared deviations from the mean of the values in the + * population. For values x_i this is: + * Sum[i=1..n]((x_i - mean)^2) + * Knuth, "The Art of Computer Programming", Vol. 2, page 232, 3rd edition + * describes Welford's method for accumulating this sum in one pass. + * If `count` is zero then this field must be zero. + * + * Generated from protobuf field double sum_of_squared_deviation = 3; + * @param float $var + * @return $this + */ + public function setSumOfSquaredDeviation($var) + { + GPBUtil::checkDouble($var); + $this->sum_of_squared_deviation = $var; + + return $this; + } + + /** + * If specified, contains the range of the population values. The field + * must not be present if the `count` is zero. + * + * Generated from protobuf field .google.api.Distribution.Range range = 4; + * @return \Google\Api\Distribution\Range|null + */ + public function getRange() + { + return $this->range; + } + + public function hasRange() + { + return isset($this->range); + } + + public function clearRange() + { + unset($this->range); + } + + /** + * If specified, contains the range of the population values. The field + * must not be present if the `count` is zero. + * + * Generated from protobuf field .google.api.Distribution.Range range = 4; + * @param \Google\Api\Distribution\Range $var + * @return $this + */ + public function setRange($var) + { + GPBUtil::checkMessage($var, \Google\Api\Distribution\Range::class); + $this->range = $var; + + return $this; + } + + /** + * Defines the histogram bucket boundaries. If the distribution does not + * contain a histogram, then omit this field. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions bucket_options = 6; + * @return \Google\Api\Distribution\BucketOptions|null + */ + public function getBucketOptions() + { + return $this->bucket_options; + } + + public function hasBucketOptions() + { + return isset($this->bucket_options); + } + + public function clearBucketOptions() + { + unset($this->bucket_options); + } + + /** + * Defines the histogram bucket boundaries. If the distribution does not + * contain a histogram, then omit this field. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions bucket_options = 6; + * @param \Google\Api\Distribution\BucketOptions $var + * @return $this + */ + public function setBucketOptions($var) + { + GPBUtil::checkMessage($var, \Google\Api\Distribution\BucketOptions::class); + $this->bucket_options = $var; + + return $this; + } + + /** + * The number of values in each bucket of the histogram, as described in + * `bucket_options`. If the distribution does not have a histogram, then omit + * this field. If there is a histogram, then the sum of the values in + * `bucket_counts` must equal the value in the `count` field of the + * distribution. + * If present, `bucket_counts` should contain N values, where N is the number + * of buckets specified in `bucket_options`. If you supply fewer than N + * values, the remaining values are assumed to be 0. + * The order of the values in `bucket_counts` follows the bucket numbering + * schemes described for the three bucket types. The first value must be the + * count for the underflow bucket (number 0). The next N-2 values are the + * counts for the finite buckets (number 1 through N-2). The N'th value in + * `bucket_counts` is the count for the overflow bucket (number N-1). + * + * Generated from protobuf field repeated int64 bucket_counts = 7; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getBucketCounts() + { + return $this->bucket_counts; + } + + /** + * The number of values in each bucket of the histogram, as described in + * `bucket_options`. If the distribution does not have a histogram, then omit + * this field. If there is a histogram, then the sum of the values in + * `bucket_counts` must equal the value in the `count` field of the + * distribution. + * If present, `bucket_counts` should contain N values, where N is the number + * of buckets specified in `bucket_options`. If you supply fewer than N + * values, the remaining values are assumed to be 0. + * The order of the values in `bucket_counts` follows the bucket numbering + * schemes described for the three bucket types. The first value must be the + * count for the underflow bucket (number 0). The next N-2 values are the + * counts for the finite buckets (number 1 through N-2). The N'th value in + * `bucket_counts` is the count for the overflow bucket (number N-1). + * + * Generated from protobuf field repeated int64 bucket_counts = 7; + * @param array|array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setBucketCounts($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::INT64); + $this->bucket_counts = $arr; + + return $this; + } + + /** + * Must be in increasing order of `value` field. + * + * Generated from protobuf field repeated .google.api.Distribution.Exemplar exemplars = 10; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getExemplars() + { + return $this->exemplars; + } + + /** + * Must be in increasing order of `value` field. + * + * Generated from protobuf field repeated .google.api.Distribution.Exemplar exemplars = 10; + * @param array<\Google\Api\Distribution\Exemplar>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setExemplars($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Distribution\Exemplar::class); + $this->exemplars = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Distribution/BucketOptions.php b/vendor/google/common-protos/src/Api/Distribution/BucketOptions.php new file mode 100644 index 0000000..22aa21f --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution/BucketOptions.php @@ -0,0 +1,155 @@ + 0) is the + * same as the upper bound of bucket i - 1. The buckets span the whole range + * of finite values: lower bound of the underflow bucket is -infinity and the + * upper bound of the overflow bucket is +infinity. The finite buckets are + * so-called because both bounds are finite. + * + * Generated from protobuf message google.api.Distribution.BucketOptions + */ +class BucketOptions extends \Google\Protobuf\Internal\Message +{ + protected $options; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\Distribution\BucketOptions\Linear $linear_buckets + * The linear bucket. + * @type \Google\Api\Distribution\BucketOptions\Exponential $exponential_buckets + * The exponential buckets. + * @type \Google\Api\Distribution\BucketOptions\Explicit $explicit_buckets + * The explicit buckets. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * The linear bucket. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions.Linear linear_buckets = 1; + * @return \Google\Api\Distribution\BucketOptions\Linear|null + */ + public function getLinearBuckets() + { + return $this->readOneof(1); + } + + public function hasLinearBuckets() + { + return $this->hasOneof(1); + } + + /** + * The linear bucket. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions.Linear linear_buckets = 1; + * @param \Google\Api\Distribution\BucketOptions\Linear $var + * @return $this + */ + public function setLinearBuckets($var) + { + GPBUtil::checkMessage($var, \Google\Api\Distribution\BucketOptions\Linear::class); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * The exponential buckets. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions.Exponential exponential_buckets = 2; + * @return \Google\Api\Distribution\BucketOptions\Exponential|null + */ + public function getExponentialBuckets() + { + return $this->readOneof(2); + } + + public function hasExponentialBuckets() + { + return $this->hasOneof(2); + } + + /** + * The exponential buckets. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions.Exponential exponential_buckets = 2; + * @param \Google\Api\Distribution\BucketOptions\Exponential $var + * @return $this + */ + public function setExponentialBuckets($var) + { + GPBUtil::checkMessage($var, \Google\Api\Distribution\BucketOptions\Exponential::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The explicit buckets. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions.Explicit explicit_buckets = 3; + * @return \Google\Api\Distribution\BucketOptions\Explicit|null + */ + public function getExplicitBuckets() + { + return $this->readOneof(3); + } + + public function hasExplicitBuckets() + { + return $this->hasOneof(3); + } + + /** + * The explicit buckets. + * + * Generated from protobuf field .google.api.Distribution.BucketOptions.Explicit explicit_buckets = 3; + * @param \Google\Api\Distribution\BucketOptions\Explicit $var + * @return $this + */ + public function setExplicitBuckets($var) + { + GPBUtil::checkMessage($var, \Google\Api\Distribution\BucketOptions\Explicit::class); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * @return string + */ + public function getOptions() + { + return $this->whichOneof("options"); + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Explicit.php b/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Explicit.php new file mode 100644 index 0000000..e39aaae --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Explicit.php @@ -0,0 +1,75 @@ +google.api.Distribution.BucketOptions.Explicit + */ +class Explicit extends \Google\Protobuf\Internal\Message +{ + /** + * The values must be monotonically increasing. + * + * Generated from protobuf field repeated double bounds = 1; + */ + private $bounds; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $bounds + * The values must be monotonically increasing. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * The values must be monotonically increasing. + * + * Generated from protobuf field repeated double bounds = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getBounds() + { + return $this->bounds; + } + + /** + * The values must be monotonically increasing. + * + * Generated from protobuf field repeated double bounds = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setBounds($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::DOUBLE); + $this->bounds = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Exponential.php b/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Exponential.php new file mode 100644 index 0000000..b717581 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Exponential.php @@ -0,0 +1,142 @@ +google.api.Distribution.BucketOptions.Exponential + */ +class Exponential extends \Google\Protobuf\Internal\Message +{ + /** + * Must be greater than 0. + * + * Generated from protobuf field int32 num_finite_buckets = 1; + */ + protected $num_finite_buckets = 0; + /** + * Must be greater than 1. + * + * Generated from protobuf field double growth_factor = 2; + */ + protected $growth_factor = 0.0; + /** + * Must be greater than 0. + * + * Generated from protobuf field double scale = 3; + */ + protected $scale = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $num_finite_buckets + * Must be greater than 0. + * @type float $growth_factor + * Must be greater than 1. + * @type float $scale + * Must be greater than 0. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field int32 num_finite_buckets = 1; + * @return int + */ + public function getNumFiniteBuckets() + { + return $this->num_finite_buckets; + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field int32 num_finite_buckets = 1; + * @param int $var + * @return $this + */ + public function setNumFiniteBuckets($var) + { + GPBUtil::checkInt32($var); + $this->num_finite_buckets = $var; + + return $this; + } + + /** + * Must be greater than 1. + * + * Generated from protobuf field double growth_factor = 2; + * @return float + */ + public function getGrowthFactor() + { + return $this->growth_factor; + } + + /** + * Must be greater than 1. + * + * Generated from protobuf field double growth_factor = 2; + * @param float $var + * @return $this + */ + public function setGrowthFactor($var) + { + GPBUtil::checkDouble($var); + $this->growth_factor = $var; + + return $this; + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field double scale = 3; + * @return float + */ + public function getScale() + { + return $this->scale; + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field double scale = 3; + * @param float $var + * @return $this + */ + public function setScale($var) + { + GPBUtil::checkDouble($var); + $this->scale = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Linear.php b/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Linear.php new file mode 100644 index 0000000..8ed9bc9 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution/BucketOptions/Linear.php @@ -0,0 +1,142 @@ +google.api.Distribution.BucketOptions.Linear + */ +class Linear extends \Google\Protobuf\Internal\Message +{ + /** + * Must be greater than 0. + * + * Generated from protobuf field int32 num_finite_buckets = 1; + */ + protected $num_finite_buckets = 0; + /** + * Must be greater than 0. + * + * Generated from protobuf field double width = 2; + */ + protected $width = 0.0; + /** + * Lower bound of the first bucket. + * + * Generated from protobuf field double offset = 3; + */ + protected $offset = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $num_finite_buckets + * Must be greater than 0. + * @type float $width + * Must be greater than 0. + * @type float $offset + * Lower bound of the first bucket. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field int32 num_finite_buckets = 1; + * @return int + */ + public function getNumFiniteBuckets() + { + return $this->num_finite_buckets; + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field int32 num_finite_buckets = 1; + * @param int $var + * @return $this + */ + public function setNumFiniteBuckets($var) + { + GPBUtil::checkInt32($var); + $this->num_finite_buckets = $var; + + return $this; + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field double width = 2; + * @return float + */ + public function getWidth() + { + return $this->width; + } + + /** + * Must be greater than 0. + * + * Generated from protobuf field double width = 2; + * @param float $var + * @return $this + */ + public function setWidth($var) + { + GPBUtil::checkDouble($var); + $this->width = $var; + + return $this; + } + + /** + * Lower bound of the first bucket. + * + * Generated from protobuf field double offset = 3; + * @return float + */ + public function getOffset() + { + return $this->offset; + } + + /** + * Lower bound of the first bucket. + * + * Generated from protobuf field double offset = 3; + * @param float $var + * @return $this + */ + public function setOffset($var) + { + GPBUtil::checkDouble($var); + $this->offset = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Distribution/Exemplar.php b/vendor/google/common-protos/src/Api/Distribution/Exemplar.php new file mode 100644 index 0000000..5e7654a --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution/Exemplar.php @@ -0,0 +1,178 @@ +google.api.Distribution.Exemplar + */ +class Exemplar extends \Google\Protobuf\Internal\Message +{ + /** + * Value of the exemplar point. This value determines to which bucket the + * exemplar belongs. + * + * Generated from protobuf field double value = 1; + */ + protected $value = 0.0; + /** + * The observation (sampling) time of the above value. + * + * Generated from protobuf field .google.protobuf.Timestamp timestamp = 2; + */ + protected $timestamp = null; + /** + * Contextual information about the example value. Examples are: + * Trace: type.googleapis.com/google.monitoring.v3.SpanContext + * Literal string: type.googleapis.com/google.protobuf.StringValue + * Labels dropped during aggregation: + * type.googleapis.com/google.monitoring.v3.DroppedLabels + * There may be only a single attachment of any given message type in a + * single exemplar, and this is enforced by the system. + * + * Generated from protobuf field repeated .google.protobuf.Any attachments = 3; + */ + private $attachments; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $value + * Value of the exemplar point. This value determines to which bucket the + * exemplar belongs. + * @type \Google\Protobuf\Timestamp $timestamp + * The observation (sampling) time of the above value. + * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $attachments + * Contextual information about the example value. Examples are: + * Trace: type.googleapis.com/google.monitoring.v3.SpanContext + * Literal string: type.googleapis.com/google.protobuf.StringValue + * Labels dropped during aggregation: + * type.googleapis.com/google.monitoring.v3.DroppedLabels + * There may be only a single attachment of any given message type in a + * single exemplar, and this is enforced by the system. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * Value of the exemplar point. This value determines to which bucket the + * exemplar belongs. + * + * Generated from protobuf field double value = 1; + * @return float + */ + public function getValue() + { + return $this->value; + } + + /** + * Value of the exemplar point. This value determines to which bucket the + * exemplar belongs. + * + * Generated from protobuf field double value = 1; + * @param float $var + * @return $this + */ + public function setValue($var) + { + GPBUtil::checkDouble($var); + $this->value = $var; + + return $this; + } + + /** + * The observation (sampling) time of the above value. + * + * Generated from protobuf field .google.protobuf.Timestamp timestamp = 2; + * @return \Google\Protobuf\Timestamp|null + */ + public function getTimestamp() + { + return $this->timestamp; + } + + public function hasTimestamp() + { + return isset($this->timestamp); + } + + public function clearTimestamp() + { + unset($this->timestamp); + } + + /** + * The observation (sampling) time of the above value. + * + * Generated from protobuf field .google.protobuf.Timestamp timestamp = 2; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setTimestamp($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->timestamp = $var; + + return $this; + } + + /** + * Contextual information about the example value. Examples are: + * Trace: type.googleapis.com/google.monitoring.v3.SpanContext + * Literal string: type.googleapis.com/google.protobuf.StringValue + * Labels dropped during aggregation: + * type.googleapis.com/google.monitoring.v3.DroppedLabels + * There may be only a single attachment of any given message type in a + * single exemplar, and this is enforced by the system. + * + * Generated from protobuf field repeated .google.protobuf.Any attachments = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAttachments() + { + return $this->attachments; + } + + /** + * Contextual information about the example value. Examples are: + * Trace: type.googleapis.com/google.monitoring.v3.SpanContext + * Literal string: type.googleapis.com/google.protobuf.StringValue + * Labels dropped during aggregation: + * type.googleapis.com/google.monitoring.v3.DroppedLabels + * There may be only a single attachment of any given message type in a + * single exemplar, and this is enforced by the system. + * + * Generated from protobuf field repeated .google.protobuf.Any attachments = 3; + * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAttachments($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); + $this->attachments = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Distribution/Range.php b/vendor/google/common-protos/src/Api/Distribution/Range.php new file mode 100644 index 0000000..8ace8a8 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Distribution/Range.php @@ -0,0 +1,102 @@ +google.api.Distribution.Range + */ +class Range extends \Google\Protobuf\Internal\Message +{ + /** + * The minimum of the population values. + * + * Generated from protobuf field double min = 1; + */ + protected $min = 0.0; + /** + * The maximum of the population values. + * + * Generated from protobuf field double max = 2; + */ + protected $max = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $min + * The minimum of the population values. + * @type float $max + * The maximum of the population values. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Distribution::initOnce(); + parent::__construct($data); + } + + /** + * The minimum of the population values. + * + * Generated from protobuf field double min = 1; + * @return float + */ + public function getMin() + { + return $this->min; + } + + /** + * The minimum of the population values. + * + * Generated from protobuf field double min = 1; + * @param float $var + * @return $this + */ + public function setMin($var) + { + GPBUtil::checkDouble($var); + $this->min = $var; + + return $this; + } + + /** + * The maximum of the population values. + * + * Generated from protobuf field double max = 2; + * @return float + */ + public function getMax() + { + return $this->max; + } + + /** + * The maximum of the population values. + * + * Generated from protobuf field double max = 2; + * @param float $var + * @return $this + */ + public function setMax($var) + { + GPBUtil::checkDouble($var); + $this->max = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Documentation.php b/vendor/google/common-protos/src/Api/Documentation.php new file mode 100644 index 0000000..aced421 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Documentation.php @@ -0,0 +1,362 @@ +documentation: + * summary: > + * The Google Calendar API gives access + * to most calendar features. + * pages: + * - name: Overview + * content: (== include google/foo/overview.md ==) + * - name: Tutorial + * content: (== include google/foo/tutorial.md ==) + * subpages: + * - name: Java + * content: (== include google/foo/tutorial_java.md ==) + * rules: + * - selector: google.calendar.Calendar.Get + * description: > + * ... + * - selector: google.calendar.Calendar.Put + * description: > + * ... + * + * Documentation is provided in markdown syntax. In addition to + * standard markdown features, definition lists, tables and fenced + * code blocks are supported. Section headers can be provided and are + * interpreted relative to the section nesting of the context where + * a documentation fragment is embedded. + * Documentation from the IDL is merged with documentation defined + * via the config at normalization time, where documentation provided + * by config rules overrides IDL provided. + * A number of constructs specific to the API platform are supported + * in documentation text. + * In order to reference a proto element, the following + * notation can be used: + *
[fully.qualified.proto.name][]
+ * To override the display text used for the link, this can be used: + *
[display text][fully.qualified.proto.name]
+ * Text can be excluded from doc using the following notation: + *
(-- internal comment --)
+ * A few directives are available in documentation. Note that + * directives must appear on a single line to be properly + * identified. The `include` directive includes a markdown file from + * an external source: + *
(== include path/to/file ==)
+ * The `resource_for` directive marks a message to be the resource of + * a collection in REST view. If it is not specified, tools attempt + * to infer the resource from the operations in a collection: + *
(== resource_for v1.shelves.books ==)
+ * The directive `suppress_warning` does not directly affect documentation + * and is documented together with service config validation. + * + * Generated from protobuf message google.api.Documentation + */ +class Documentation extends \Google\Protobuf\Internal\Message +{ + /** + * A short description of what the service does. The summary must be plain + * text. It becomes the overview of the service displayed in Google Cloud + * Console. + * NOTE: This field is equivalent to the standard field `description`. + * + * Generated from protobuf field string summary = 1; + */ + protected $summary = ''; + /** + * The top level pages for the documentation set. + * + * Generated from protobuf field repeated .google.api.Page pages = 5; + */ + private $pages; + /** + * A list of documentation rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.DocumentationRule rules = 3; + */ + private $rules; + /** + * The URL to the root of documentation. + * + * Generated from protobuf field string documentation_root_url = 4; + */ + protected $documentation_root_url = ''; + /** + * Specifies the service root url if the default one (the service name + * from the yaml file) is not suitable. This can be seen in any fully + * specified service urls as well as sections that show a base that other + * urls are relative to. + * + * Generated from protobuf field string service_root_url = 6; + */ + protected $service_root_url = ''; + /** + * Declares a single overview page. For example: + *
documentation:
+     *   summary: ...
+     *   overview: (== include overview.md ==)
+     * 
+ * This is a shortcut for the following declaration (using pages style): + *
documentation:
+     *   summary: ...
+     *   pages:
+     *   - name: Overview
+     *     content: (== include overview.md ==)
+     * 
+ * Note: you cannot specify both `overview` field and `pages` field. + * + * Generated from protobuf field string overview = 2; + */ + protected $overview = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $summary + * A short description of what the service does. The summary must be plain + * text. It becomes the overview of the service displayed in Google Cloud + * Console. + * NOTE: This field is equivalent to the standard field `description`. + * @type array<\Google\Api\Page>|\Google\Protobuf\Internal\RepeatedField $pages + * The top level pages for the documentation set. + * @type array<\Google\Api\DocumentationRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of documentation rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * @type string $documentation_root_url + * The URL to the root of documentation. + * @type string $service_root_url + * Specifies the service root url if the default one (the service name + * from the yaml file) is not suitable. This can be seen in any fully + * specified service urls as well as sections that show a base that other + * urls are relative to. + * @type string $overview + * Declares a single overview page. For example: + *
documentation:
+     *             summary: ...
+     *             overview: (== include overview.md ==)
+     *           
+ * This is a shortcut for the following declaration (using pages style): + *
documentation:
+     *             summary: ...
+     *             pages:
+     *             - name: Overview
+     *               content: (== include overview.md ==)
+     *           
+ * Note: you cannot specify both `overview` field and `pages` field. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Documentation::initOnce(); + parent::__construct($data); + } + + /** + * A short description of what the service does. The summary must be plain + * text. It becomes the overview of the service displayed in Google Cloud + * Console. + * NOTE: This field is equivalent to the standard field `description`. + * + * Generated from protobuf field string summary = 1; + * @return string + */ + public function getSummary() + { + return $this->summary; + } + + /** + * A short description of what the service does. The summary must be plain + * text. It becomes the overview of the service displayed in Google Cloud + * Console. + * NOTE: This field is equivalent to the standard field `description`. + * + * Generated from protobuf field string summary = 1; + * @param string $var + * @return $this + */ + public function setSummary($var) + { + GPBUtil::checkString($var, True); + $this->summary = $var; + + return $this; + } + + /** + * The top level pages for the documentation set. + * + * Generated from protobuf field repeated .google.api.Page pages = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPages() + { + return $this->pages; + } + + /** + * The top level pages for the documentation set. + * + * Generated from protobuf field repeated .google.api.Page pages = 5; + * @param array<\Google\Api\Page>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Page::class); + $this->pages = $arr; + + return $this; + } + + /** + * A list of documentation rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.DocumentationRule rules = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of documentation rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.DocumentationRule rules = 3; + * @param array<\Google\Api\DocumentationRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\DocumentationRule::class); + $this->rules = $arr; + + return $this; + } + + /** + * The URL to the root of documentation. + * + * Generated from protobuf field string documentation_root_url = 4; + * @return string + */ + public function getDocumentationRootUrl() + { + return $this->documentation_root_url; + } + + /** + * The URL to the root of documentation. + * + * Generated from protobuf field string documentation_root_url = 4; + * @param string $var + * @return $this + */ + public function setDocumentationRootUrl($var) + { + GPBUtil::checkString($var, True); + $this->documentation_root_url = $var; + + return $this; + } + + /** + * Specifies the service root url if the default one (the service name + * from the yaml file) is not suitable. This can be seen in any fully + * specified service urls as well as sections that show a base that other + * urls are relative to. + * + * Generated from protobuf field string service_root_url = 6; + * @return string + */ + public function getServiceRootUrl() + { + return $this->service_root_url; + } + + /** + * Specifies the service root url if the default one (the service name + * from the yaml file) is not suitable. This can be seen in any fully + * specified service urls as well as sections that show a base that other + * urls are relative to. + * + * Generated from protobuf field string service_root_url = 6; + * @param string $var + * @return $this + */ + public function setServiceRootUrl($var) + { + GPBUtil::checkString($var, True); + $this->service_root_url = $var; + + return $this; + } + + /** + * Declares a single overview page. For example: + *
documentation:
+     *   summary: ...
+     *   overview: (== include overview.md ==)
+     * 
+ * This is a shortcut for the following declaration (using pages style): + *
documentation:
+     *   summary: ...
+     *   pages:
+     *   - name: Overview
+     *     content: (== include overview.md ==)
+     * 
+ * Note: you cannot specify both `overview` field and `pages` field. + * + * Generated from protobuf field string overview = 2; + * @return string + */ + public function getOverview() + { + return $this->overview; + } + + /** + * Declares a single overview page. For example: + *
documentation:
+     *   summary: ...
+     *   overview: (== include overview.md ==)
+     * 
+ * This is a shortcut for the following declaration (using pages style): + *
documentation:
+     *   summary: ...
+     *   pages:
+     *   - name: Overview
+     *     content: (== include overview.md ==)
+     * 
+ * Note: you cannot specify both `overview` field and `pages` field. + * + * Generated from protobuf field string overview = 2; + * @param string $var + * @return $this + */ + public function setOverview($var) + { + GPBUtil::checkString($var, True); + $this->overview = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/DocumentationRule.php b/vendor/google/common-protos/src/Api/DocumentationRule.php new file mode 100644 index 0000000..c904d1a --- /dev/null +++ b/vendor/google/common-protos/src/Api/DocumentationRule.php @@ -0,0 +1,171 @@ +google.api.DocumentationRule + */ +class DocumentationRule extends \Google\Protobuf\Internal\Message +{ + /** + * The selector is a comma-separated list of patterns for any element such as + * a method, a field, an enum value. Each pattern is a qualified name of the + * element which may end in "*", indicating a wildcard. Wildcards are only + * allowed at the end and for a whole component of the qualified name, + * i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match + * one or more components. To specify a default for all applicable elements, + * the whole pattern "*" is used. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * Description of the selected proto element (e.g. a message, a method, a + * 'service' definition, or a field). Defaults to leading & trailing comments + * taken from the proto source definition of the proto element. + * + * Generated from protobuf field string description = 2; + */ + protected $description = ''; + /** + * Deprecation description of the selected element(s). It can be provided if + * an element is marked as `deprecated`. + * + * Generated from protobuf field string deprecation_description = 3; + */ + protected $deprecation_description = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * The selector is a comma-separated list of patterns for any element such as + * a method, a field, an enum value. Each pattern is a qualified name of the + * element which may end in "*", indicating a wildcard. Wildcards are only + * allowed at the end and for a whole component of the qualified name, + * i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match + * one or more components. To specify a default for all applicable elements, + * the whole pattern "*" is used. + * @type string $description + * Description of the selected proto element (e.g. a message, a method, a + * 'service' definition, or a field). Defaults to leading & trailing comments + * taken from the proto source definition of the proto element. + * @type string $deprecation_description + * Deprecation description of the selected element(s). It can be provided if + * an element is marked as `deprecated`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Documentation::initOnce(); + parent::__construct($data); + } + + /** + * The selector is a comma-separated list of patterns for any element such as + * a method, a field, an enum value. Each pattern is a qualified name of the + * element which may end in "*", indicating a wildcard. Wildcards are only + * allowed at the end and for a whole component of the qualified name, + * i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match + * one or more components. To specify a default for all applicable elements, + * the whole pattern "*" is used. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * The selector is a comma-separated list of patterns for any element such as + * a method, a field, an enum value. Each pattern is a qualified name of the + * element which may end in "*", indicating a wildcard. Wildcards are only + * allowed at the end and for a whole component of the qualified name, + * i.e. "foo.*" is ok, but not "foo.b*" or "foo.*.bar". A wildcard will match + * one or more components. To specify a default for all applicable elements, + * the whole pattern "*" is used. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Description of the selected proto element (e.g. a message, a method, a + * 'service' definition, or a field). Defaults to leading & trailing comments + * taken from the proto source definition of the proto element. + * + * Generated from protobuf field string description = 2; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Description of the selected proto element (e.g. a message, a method, a + * 'service' definition, or a field). Defaults to leading & trailing comments + * taken from the proto source definition of the proto element. + * + * Generated from protobuf field string description = 2; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Deprecation description of the selected element(s). It can be provided if + * an element is marked as `deprecated`. + * + * Generated from protobuf field string deprecation_description = 3; + * @return string + */ + public function getDeprecationDescription() + { + return $this->deprecation_description; + } + + /** + * Deprecation description of the selected element(s). It can be provided if + * an element is marked as `deprecated`. + * + * Generated from protobuf field string deprecation_description = 3; + * @param string $var + * @return $this + */ + public function setDeprecationDescription($var) + { + GPBUtil::checkString($var, True); + $this->deprecation_description = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/DotnetSettings.php b/vendor/google/common-protos/src/Api/DotnetSettings.php new file mode 100644 index 0000000..de7672c --- /dev/null +++ b/vendor/google/common-protos/src/Api/DotnetSettings.php @@ -0,0 +1,307 @@ +google.api.DotnetSettings + */ +class DotnetSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + /** + * Map from original service names to renamed versions. + * This is used when the default generated types + * would cause a naming conflict. (Neither name is + * fully-qualified.) + * Example: Subscriber to SubscriberServiceApi. + * + * Generated from protobuf field map renamed_services = 2; + */ + private $renamed_services; + /** + * Map from full resource types to the effective short name + * for the resource. This is used when otherwise resource + * named from different services would cause naming collisions. + * Example entry: + * "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" + * + * Generated from protobuf field map renamed_resources = 3; + */ + private $renamed_resources; + /** + * List of full resource types to ignore during generation. + * This is typically used for API-specific Location resources, + * which should be handled by the generator as if they were actually + * the common Location resources. + * Example entry: "documentai.googleapis.com/Location" + * + * Generated from protobuf field repeated string ignored_resources = 4; + */ + private $ignored_resources; + /** + * Namespaces which must be aliased in snippets due to + * a known (but non-generator-predictable) naming collision + * + * Generated from protobuf field repeated string forced_namespace_aliases = 5; + */ + private $forced_namespace_aliases; + /** + * Method signatures (in the form "service.method(signature)") + * which are provided separately, so shouldn't be generated. + * Snippets *calling* these methods are still generated, however. + * + * Generated from protobuf field repeated string handwritten_signatures = 6; + */ + private $handwritten_signatures; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * @type array|\Google\Protobuf\Internal\MapField $renamed_services + * Map from original service names to renamed versions. + * This is used when the default generated types + * would cause a naming conflict. (Neither name is + * fully-qualified.) + * Example: Subscriber to SubscriberServiceApi. + * @type array|\Google\Protobuf\Internal\MapField $renamed_resources + * Map from full resource types to the effective short name + * for the resource. This is used when otherwise resource + * named from different services would cause naming collisions. + * Example entry: + * "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" + * @type array|\Google\Protobuf\Internal\RepeatedField $ignored_resources + * List of full resource types to ignore during generation. + * This is typically used for API-specific Location resources, + * which should be handled by the generator as if they were actually + * the common Location resources. + * Example entry: "documentai.googleapis.com/Location" + * @type array|\Google\Protobuf\Internal\RepeatedField $forced_namespace_aliases + * Namespaces which must be aliased in snippets due to + * a known (but non-generator-predictable) naming collision + * @type array|\Google\Protobuf\Internal\RepeatedField $handwritten_signatures + * Method signatures (in the form "service.method(signature)") + * which are provided separately, so shouldn't be generated. + * Snippets *calling* these methods are still generated, however. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + + /** + * Map from original service names to renamed versions. + * This is used when the default generated types + * would cause a naming conflict. (Neither name is + * fully-qualified.) + * Example: Subscriber to SubscriberServiceApi. + * + * Generated from protobuf field map renamed_services = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getRenamedServices() + { + return $this->renamed_services; + } + + /** + * Map from original service names to renamed versions. + * This is used when the default generated types + * would cause a naming conflict. (Neither name is + * fully-qualified.) + * Example: Subscriber to SubscriberServiceApi. + * + * Generated from protobuf field map renamed_services = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setRenamedServices($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->renamed_services = $arr; + + return $this; + } + + /** + * Map from full resource types to the effective short name + * for the resource. This is used when otherwise resource + * named from different services would cause naming collisions. + * Example entry: + * "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" + * + * Generated from protobuf field map renamed_resources = 3; + * @return \Google\Protobuf\Internal\MapField + */ + public function getRenamedResources() + { + return $this->renamed_resources; + } + + /** + * Map from full resource types to the effective short name + * for the resource. This is used when otherwise resource + * named from different services would cause naming collisions. + * Example entry: + * "datalabeling.googleapis.com/Dataset": "DataLabelingDataset" + * + * Generated from protobuf field map renamed_resources = 3; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setRenamedResources($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->renamed_resources = $arr; + + return $this; + } + + /** + * List of full resource types to ignore during generation. + * This is typically used for API-specific Location resources, + * which should be handled by the generator as if they were actually + * the common Location resources. + * Example entry: "documentai.googleapis.com/Location" + * + * Generated from protobuf field repeated string ignored_resources = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getIgnoredResources() + { + return $this->ignored_resources; + } + + /** + * List of full resource types to ignore during generation. + * This is typically used for API-specific Location resources, + * which should be handled by the generator as if they were actually + * the common Location resources. + * Example entry: "documentai.googleapis.com/Location" + * + * Generated from protobuf field repeated string ignored_resources = 4; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setIgnoredResources($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->ignored_resources = $arr; + + return $this; + } + + /** + * Namespaces which must be aliased in snippets due to + * a known (but non-generator-predictable) naming collision + * + * Generated from protobuf field repeated string forced_namespace_aliases = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getForcedNamespaceAliases() + { + return $this->forced_namespace_aliases; + } + + /** + * Namespaces which must be aliased in snippets due to + * a known (but non-generator-predictable) naming collision + * + * Generated from protobuf field repeated string forced_namespace_aliases = 5; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setForcedNamespaceAliases($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->forced_namespace_aliases = $arr; + + return $this; + } + + /** + * Method signatures (in the form "service.method(signature)") + * which are provided separately, so shouldn't be generated. + * Snippets *calling* these methods are still generated, however. + * + * Generated from protobuf field repeated string handwritten_signatures = 6; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getHandwrittenSignatures() + { + return $this->handwritten_signatures; + } + + /** + * Method signatures (in the form "service.method(signature)") + * which are provided separately, so shouldn't be generated. + * Snippets *calling* these methods are still generated, however. + * + * Generated from protobuf field repeated string handwritten_signatures = 6; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setHandwrittenSignatures($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->handwritten_signatures = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Endpoint.php b/vendor/google/common-protos/src/Api/Endpoint.php new file mode 100644 index 0000000..41c1cbe --- /dev/null +++ b/vendor/google/common-protos/src/Api/Endpoint.php @@ -0,0 +1,231 @@ +google.api.Endpoint + */ +class Endpoint extends \Google\Protobuf\Internal\Message +{ + /** + * The canonical name of this endpoint. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Aliases for this endpoint, these will be served by the same UrlMap as the + * parent endpoint, and will be provisioned in the GCP stack for the Regional + * Endpoints. + * + * Generated from protobuf field repeated string aliases = 2; + */ + private $aliases; + /** + * The specification of an Internet routable address of API frontend that will + * handle requests to this [API + * Endpoint](https://cloud.google.com/apis/design/glossary). It should be + * either a valid IPv4 address or a fully-qualified domain name. For example, + * "8.8.8.8" or "myservice.appspot.com". + * + * Generated from protobuf field string target = 101; + */ + protected $target = ''; + /** + * Allowing + * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka + * cross-domain traffic, would allow the backends served from this endpoint to + * receive and respond to HTTP OPTIONS requests. The response will be used by + * the browser to determine whether the subsequent cross-origin request is + * allowed to proceed. + * + * Generated from protobuf field bool allow_cors = 5; + */ + protected $allow_cors = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The canonical name of this endpoint. + * @type array|\Google\Protobuf\Internal\RepeatedField $aliases + * Aliases for this endpoint, these will be served by the same UrlMap as the + * parent endpoint, and will be provisioned in the GCP stack for the Regional + * Endpoints. + * @type string $target + * The specification of an Internet routable address of API frontend that will + * handle requests to this [API + * Endpoint](https://cloud.google.com/apis/design/glossary). It should be + * either a valid IPv4 address or a fully-qualified domain name. For example, + * "8.8.8.8" or "myservice.appspot.com". + * @type bool $allow_cors + * Allowing + * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka + * cross-domain traffic, would allow the backends served from this endpoint to + * receive and respond to HTTP OPTIONS requests. The response will be used by + * the browser to determine whether the subsequent cross-origin request is + * allowed to proceed. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Endpoint::initOnce(); + parent::__construct($data); + } + + /** + * The canonical name of this endpoint. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The canonical name of this endpoint. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Aliases for this endpoint, these will be served by the same UrlMap as the + * parent endpoint, and will be provisioned in the GCP stack for the Regional + * Endpoints. + * + * Generated from protobuf field repeated string aliases = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAliases() + { + return $this->aliases; + } + + /** + * Aliases for this endpoint, these will be served by the same UrlMap as the + * parent endpoint, and will be provisioned in the GCP stack for the Regional + * Endpoints. + * + * Generated from protobuf field repeated string aliases = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAliases($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->aliases = $arr; + + return $this; + } + + /** + * The specification of an Internet routable address of API frontend that will + * handle requests to this [API + * Endpoint](https://cloud.google.com/apis/design/glossary). It should be + * either a valid IPv4 address or a fully-qualified domain name. For example, + * "8.8.8.8" or "myservice.appspot.com". + * + * Generated from protobuf field string target = 101; + * @return string + */ + public function getTarget() + { + return $this->target; + } + + /** + * The specification of an Internet routable address of API frontend that will + * handle requests to this [API + * Endpoint](https://cloud.google.com/apis/design/glossary). It should be + * either a valid IPv4 address or a fully-qualified domain name. For example, + * "8.8.8.8" or "myservice.appspot.com". + * + * Generated from protobuf field string target = 101; + * @param string $var + * @return $this + */ + public function setTarget($var) + { + GPBUtil::checkString($var, True); + $this->target = $var; + + return $this; + } + + /** + * Allowing + * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka + * cross-domain traffic, would allow the backends served from this endpoint to + * receive and respond to HTTP OPTIONS requests. The response will be used by + * the browser to determine whether the subsequent cross-origin request is + * allowed to proceed. + * + * Generated from protobuf field bool allow_cors = 5; + * @return bool + */ + public function getAllowCors() + { + return $this->allow_cors; + } + + /** + * Allowing + * [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), aka + * cross-domain traffic, would allow the backends served from this endpoint to + * receive and respond to HTTP OPTIONS requests. The response will be used by + * the browser to determine whether the subsequent cross-origin request is + * allowed to proceed. + * + * Generated from protobuf field bool allow_cors = 5; + * @param bool $var + * @return $this + */ + public function setAllowCors($var) + { + GPBUtil::checkBool($var); + $this->allow_cors = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/ErrorReason.php b/vendor/google/common-protos/src/Api/ErrorReason.php new file mode 100644 index 0000000..04641c2 --- /dev/null +++ b/vendor/google/common-protos/src/Api/ErrorReason.php @@ -0,0 +1,690 @@ +google.api.ErrorReason + */ +class ErrorReason +{ + /** + * Do not use this default value. + * + * Generated from protobuf enum ERROR_REASON_UNSPECIFIED = 0; + */ + const ERROR_REASON_UNSPECIFIED = 0; + /** + * The request is calling a disabled service for a consumer. + * Example of an ErrorInfo when the consumer "projects/123" contacting + * "pubsub.googleapis.com" service which is disabled: + * { "reason": "SERVICE_DISABLED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "pubsub.googleapis.com" + * } + * } + * This response indicates the "pubsub.googleapis.com" has been disabled in + * "projects/123". + * + * Generated from protobuf enum SERVICE_DISABLED = 1; + */ + const SERVICE_DISABLED = 1; + /** + * The request whose associated billing account is disabled. + * Example of an ErrorInfo when the consumer "projects/123" fails to contact + * "pubsub.googleapis.com" service because the associated billing account is + * disabled: + * { "reason": "BILLING_DISABLED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "pubsub.googleapis.com" + * } + * } + * This response indicates the billing account associated has been disabled. + * + * Generated from protobuf enum BILLING_DISABLED = 2; + */ + const BILLING_DISABLED = 2; + /** + * The request is denied because the provided [API + * key](https://cloud.google.com/docs/authentication/api-keys) is invalid. It + * may be in a bad format, cannot be found, or has been expired). + * Example of an ErrorInfo when the request is contacting + * "storage.googleapis.com" service with an invalid API key: + * { "reason": "API_KEY_INVALID", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * } + * } + * + * Generated from protobuf enum API_KEY_INVALID = 3; + */ + const API_KEY_INVALID = 3; + /** + * The request is denied because it violates [API key API + * restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_api_restrictions). + * Example of an ErrorInfo when the consumer "projects/123" fails to call the + * "storage.googleapis.com" service because this service is restricted in the + * API key: + * { "reason": "API_KEY_SERVICE_BLOCKED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum API_KEY_SERVICE_BLOCKED = 4; + */ + const API_KEY_SERVICE_BLOCKED = 4; + /** + * The request is denied because it violates [API key HTTP + * restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions). + * Example of an ErrorInfo when the consumer "projects/123" fails to call + * "storage.googleapis.com" service because the http referrer of the request + * violates API key HTTP restrictions: + * { "reason": "API_KEY_HTTP_REFERRER_BLOCKED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com", + * } + * } + * + * Generated from protobuf enum API_KEY_HTTP_REFERRER_BLOCKED = 7; + */ + const API_KEY_HTTP_REFERRER_BLOCKED = 7; + /** + * The request is denied because it violates [API key IP address + * restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions). + * Example of an ErrorInfo when the consumer "projects/123" fails to call + * "storage.googleapis.com" service because the caller IP of the request + * violates API key IP address restrictions: + * { "reason": "API_KEY_IP_ADDRESS_BLOCKED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com", + * } + * } + * + * Generated from protobuf enum API_KEY_IP_ADDRESS_BLOCKED = 8; + */ + const API_KEY_IP_ADDRESS_BLOCKED = 8; + /** + * The request is denied because it violates [API key Android application + * restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions). + * Example of an ErrorInfo when the consumer "projects/123" fails to call + * "storage.googleapis.com" service because the request from the Android apps + * violates the API key Android application restrictions: + * { "reason": "API_KEY_ANDROID_APP_BLOCKED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum API_KEY_ANDROID_APP_BLOCKED = 9; + */ + const API_KEY_ANDROID_APP_BLOCKED = 9; + /** + * The request is denied because it violates [API key iOS application + * restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions). + * Example of an ErrorInfo when the consumer "projects/123" fails to call + * "storage.googleapis.com" service because the request from the iOS apps + * violates the API key iOS application restrictions: + * { "reason": "API_KEY_IOS_APP_BLOCKED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum API_KEY_IOS_APP_BLOCKED = 13; + */ + const API_KEY_IOS_APP_BLOCKED = 13; + /** + * The request is denied because there is not enough rate quota for the + * consumer. + * Example of an ErrorInfo when the consumer "projects/123" fails to contact + * "pubsub.googleapis.com" service because consumer's rate quota usage has + * reached the maximum value set for the quota limit + * "ReadsPerMinutePerProject" on the quota metric + * "pubsub.googleapis.com/read_requests": + * { "reason": "RATE_LIMIT_EXCEEDED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "pubsub.googleapis.com", + * "quota_metric": "pubsub.googleapis.com/read_requests", + * "quota_limit": "ReadsPerMinutePerProject" + * } + * } + * Example of an ErrorInfo when the consumer "projects/123" checks quota on + * the service "dataflow.googleapis.com" and hits the organization quota + * limit "DefaultRequestsPerMinutePerOrganization" on the metric + * "dataflow.googleapis.com/default_requests". + * { "reason": "RATE_LIMIT_EXCEEDED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "dataflow.googleapis.com", + * "quota_metric": "dataflow.googleapis.com/default_requests", + * "quota_limit": "DefaultRequestsPerMinutePerOrganization" + * } + * } + * + * Generated from protobuf enum RATE_LIMIT_EXCEEDED = 5; + */ + const RATE_LIMIT_EXCEEDED = 5; + /** + * The request is denied because there is not enough resource quota for the + * consumer. + * Example of an ErrorInfo when the consumer "projects/123" fails to contact + * "compute.googleapis.com" service because consumer's resource quota usage + * has reached the maximum value set for the quota limit "VMsPerProject" + * on the quota metric "compute.googleapis.com/vms": + * { "reason": "RESOURCE_QUOTA_EXCEEDED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "compute.googleapis.com", + * "quota_metric": "compute.googleapis.com/vms", + * "quota_limit": "VMsPerProject" + * } + * } + * Example of an ErrorInfo when the consumer "projects/123" checks resource + * quota on the service "dataflow.googleapis.com" and hits the organization + * quota limit "jobs-per-organization" on the metric + * "dataflow.googleapis.com/job_count". + * { "reason": "RESOURCE_QUOTA_EXCEEDED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "dataflow.googleapis.com", + * "quota_metric": "dataflow.googleapis.com/job_count", + * "quota_limit": "jobs-per-organization" + * } + * } + * + * Generated from protobuf enum RESOURCE_QUOTA_EXCEEDED = 6; + */ + const RESOURCE_QUOTA_EXCEEDED = 6; + /** + * The request whose associated billing account address is in a tax restricted + * location, violates the local tax restrictions when creating resources in + * the restricted region. + * Example of an ErrorInfo when creating the Cloud Storage Bucket in the + * container "projects/123" under a tax restricted region + * "locations/asia-northeast3": + * { "reason": "LOCATION_TAX_POLICY_VIOLATED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com", + * "location": "locations/asia-northeast3" + * } + * } + * This response indicates creating the Cloud Storage Bucket in + * "locations/asia-northeast3" violates the location tax restriction. + * + * Generated from protobuf enum LOCATION_TAX_POLICY_VIOLATED = 10; + */ + const LOCATION_TAX_POLICY_VIOLATED = 10; + /** + * The request is denied because the caller does not have required permission + * on the user project "projects/123" or the user project is invalid. For more + * information, check the [userProject System + * Parameters](https://cloud.google.com/apis/docs/system-parameters). + * Example of an ErrorInfo when the caller is calling Cloud Storage service + * with insufficient permissions on the user project: + * { "reason": "USER_PROJECT_DENIED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum USER_PROJECT_DENIED = 11; + */ + const USER_PROJECT_DENIED = 11; + /** + * The request is denied because the consumer "projects/123" is suspended due + * to Terms of Service(Tos) violations. Check [Project suspension + * guidelines](https://cloud.google.com/resource-manager/docs/project-suspension-guidelines) + * for more information. + * Example of an ErrorInfo when calling Cloud Storage service with the + * suspended consumer "projects/123": + * { "reason": "CONSUMER_SUSPENDED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum CONSUMER_SUSPENDED = 12; + */ + const CONSUMER_SUSPENDED = 12; + /** + * The request is denied because the associated consumer is invalid. It may be + * in a bad format, cannot be found, or have been deleted. + * Example of an ErrorInfo when calling Cloud Storage service with the + * invalid consumer "projects/123": + * { "reason": "CONSUMER_INVALID", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum CONSUMER_INVALID = 14; + */ + const CONSUMER_INVALID = 14; + /** + * The request is denied because it violates [VPC Service + * Controls](https://cloud.google.com/vpc-service-controls/docs/overview). + * The 'uid' field is a random generated identifier that customer can use it + * to search the audit log for a request rejected by VPC Service Controls. For + * more information, please refer [VPC Service Controls + * Troubleshooting](https://cloud.google.com/vpc-service-controls/docs/troubleshooting#unique-id) + * Example of an ErrorInfo when the consumer "projects/123" fails to call + * Cloud Storage service because the request is prohibited by the VPC Service + * Controls. + * { "reason": "SECURITY_POLICY_VIOLATED", + * "domain": "googleapis.com", + * "metadata": { + * "uid": "123456789abcde", + * "consumer": "projects/123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum SECURITY_POLICY_VIOLATED = 15; + */ + const SECURITY_POLICY_VIOLATED = 15; + /** + * The request is denied because the provided access token has expired. + * Example of an ErrorInfo when the request is calling Cloud Storage service + * with an expired access token: + * { "reason": "ACCESS_TOKEN_EXPIRED", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject" + * } + * } + * + * Generated from protobuf enum ACCESS_TOKEN_EXPIRED = 16; + */ + const ACCESS_TOKEN_EXPIRED = 16; + /** + * The request is denied because the provided access token doesn't have at + * least one of the acceptable scopes required for the API. Please check + * [OAuth 2.0 Scopes for Google + * APIs](https://developers.google.com/identity/protocols/oauth2/scopes) for + * the list of the OAuth 2.0 scopes that you might need to request to access + * the API. + * Example of an ErrorInfo when the request is calling Cloud Storage service + * with an access token that is missing required scopes: + * { "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject" + * } + * } + * + * Generated from protobuf enum ACCESS_TOKEN_SCOPE_INSUFFICIENT = 17; + */ + const ACCESS_TOKEN_SCOPE_INSUFFICIENT = 17; + /** + * The request is denied because the account associated with the provided + * access token is in an invalid state, such as disabled or deleted. + * For more information, see https://cloud.google.com/docs/authentication. + * Warning: For privacy reasons, the server may not be able to disclose the + * email address for some accounts. The client MUST NOT depend on the + * availability of the `email` attribute. + * Example of an ErrorInfo when the request is to the Cloud Storage API with + * an access token that is associated with a disabled or deleted [service + * account](http://cloud/iam/docs/service-accounts): + * { "reason": "ACCOUNT_STATE_INVALID", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject", + * "email": "user@123.iam.gserviceaccount.com" + * } + * } + * + * Generated from protobuf enum ACCOUNT_STATE_INVALID = 18; + */ + const ACCOUNT_STATE_INVALID = 18; + /** + * The request is denied because the type of the provided access token is not + * supported by the API being called. + * Example of an ErrorInfo when the request is to the Cloud Storage API with + * an unsupported token type. + * { "reason": "ACCESS_TOKEN_TYPE_UNSUPPORTED", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject" + * } + * } + * + * Generated from protobuf enum ACCESS_TOKEN_TYPE_UNSUPPORTED = 19; + */ + const ACCESS_TOKEN_TYPE_UNSUPPORTED = 19; + /** + * The request is denied because the request doesn't have any authentication + * credentials. For more information regarding the supported authentication + * strategies for Google Cloud APIs, see + * https://cloud.google.com/docs/authentication. + * Example of an ErrorInfo when the request is to the Cloud Storage API + * without any authentication credentials. + * { "reason": "CREDENTIALS_MISSING", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject" + * } + * } + * + * Generated from protobuf enum CREDENTIALS_MISSING = 20; + */ + const CREDENTIALS_MISSING = 20; + /** + * The request is denied because the provided project owning the resource + * which acts as the [API + * consumer](https://cloud.google.com/apis/design/glossary#api_consumer) is + * invalid. It may be in a bad format or empty. + * Example of an ErrorInfo when the request is to the Cloud Functions API, + * but the offered resource project in the request in a bad format which can't + * perform the ListFunctions method. + * { "reason": "RESOURCE_PROJECT_INVALID", + * "domain": "googleapis.com", + * "metadata": { + * "service": "cloudfunctions.googleapis.com", + * "method": + * "google.cloud.functions.v1.CloudFunctionsService.ListFunctions" + * } + * } + * + * Generated from protobuf enum RESOURCE_PROJECT_INVALID = 21; + */ + const RESOURCE_PROJECT_INVALID = 21; + /** + * The request is denied because the provided session cookie is missing, + * invalid or failed to decode. + * Example of an ErrorInfo when the request is calling Cloud Storage service + * with a SID cookie which can't be decoded. + * { "reason": "SESSION_COOKIE_INVALID", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject", + * "cookie": "SID" + * } + * } + * + * Generated from protobuf enum SESSION_COOKIE_INVALID = 23; + */ + const SESSION_COOKIE_INVALID = 23; + /** + * The request is denied because the user is from a Google Workspace customer + * that blocks their users from accessing a particular service. + * Example scenario: https://support.google.com/a/answer/9197205?hl=en + * Example of an ErrorInfo when access to Google Cloud Storage service is + * blocked by the Google Workspace administrator: + * { "reason": "USER_BLOCKED_BY_ADMIN", + * "domain": "googleapis.com", + * "metadata": { + * "service": "storage.googleapis.com", + * "method": "google.storage.v1.Storage.GetObject", + * } + * } + * + * Generated from protobuf enum USER_BLOCKED_BY_ADMIN = 24; + */ + const USER_BLOCKED_BY_ADMIN = 24; + /** + * The request is denied because the resource service usage is restricted + * by administrators according to the organization policy constraint. + * For more information see + * https://cloud.google.com/resource-manager/docs/organization-policy/restricting-services. + * Example of an ErrorInfo when access to Google Cloud Storage service is + * restricted by Resource Usage Restriction policy: + * { "reason": "RESOURCE_USAGE_RESTRICTION_VIOLATED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/project-123", + * "service": "storage.googleapis.com" + * } + * } + * + * Generated from protobuf enum RESOURCE_USAGE_RESTRICTION_VIOLATED = 25; + */ + const RESOURCE_USAGE_RESTRICTION_VIOLATED = 25; + /** + * Unimplemented. Do not use. + * The request is denied because it contains unsupported system parameters in + * URL query parameters or HTTP headers. For more information, + * see https://cloud.google.com/apis/docs/system-parameters + * Example of an ErrorInfo when access "pubsub.googleapis.com" service with + * a request header of "x-goog-user-ip": + * { "reason": "SYSTEM_PARAMETER_UNSUPPORTED", + * "domain": "googleapis.com", + * "metadata": { + * "service": "pubsub.googleapis.com" + * "parameter": "x-goog-user-ip" + * } + * } + * + * Generated from protobuf enum SYSTEM_PARAMETER_UNSUPPORTED = 26; + */ + const SYSTEM_PARAMETER_UNSUPPORTED = 26; + /** + * The request is denied because it violates Org Restriction: the requested + * resource does not belong to allowed organizations specified in + * "X-Goog-Allowed-Resources" header. + * Example of an ErrorInfo when accessing a GCP resource that is restricted by + * Org Restriction for "pubsub.googleapis.com" service. + * { + * reason: "ORG_RESTRICTION_VIOLATION" + * domain: "googleapis.com" + * metadata { + * "consumer":"projects/123456" + * "service": "pubsub.googleapis.com" + * } + * } + * + * Generated from protobuf enum ORG_RESTRICTION_VIOLATION = 27; + */ + const ORG_RESTRICTION_VIOLATION = 27; + /** + * The request is denied because "X-Goog-Allowed-Resources" header is in a bad + * format. + * Example of an ErrorInfo when + * accessing "pubsub.googleapis.com" service with an invalid + * "X-Goog-Allowed-Resources" request header. + * { + * reason: "ORG_RESTRICTION_HEADER_INVALID" + * domain: "googleapis.com" + * metadata { + * "consumer":"projects/123456" + * "service": "pubsub.googleapis.com" + * } + * } + * + * Generated from protobuf enum ORG_RESTRICTION_HEADER_INVALID = 28; + */ + const ORG_RESTRICTION_HEADER_INVALID = 28; + /** + * Unimplemented. Do not use. + * The request is calling a service that is not visible to the consumer. + * Example of an ErrorInfo when the consumer "projects/123" contacting + * "pubsub.googleapis.com" service which is not visible to the consumer. + * { "reason": "SERVICE_NOT_VISIBLE", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "pubsub.googleapis.com" + * } + * } + * This response indicates the "pubsub.googleapis.com" is not visible to + * "projects/123" (or it may not exist). + * + * Generated from protobuf enum SERVICE_NOT_VISIBLE = 29; + */ + const SERVICE_NOT_VISIBLE = 29; + /** + * The request is related to a project for which GCP access is suspended. + * Example of an ErrorInfo when the consumer "projects/123" fails to contact + * "pubsub.googleapis.com" service because GCP access is suspended: + * { "reason": "GCP_SUSPENDED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "pubsub.googleapis.com" + * } + * } + * This response indicates the associated GCP account has been suspended. + * + * Generated from protobuf enum GCP_SUSPENDED = 30; + */ + const GCP_SUSPENDED = 30; + /** + * The request violates the location policies when creating resources in + * the restricted region. + * Example of an ErrorInfo when creating the Cloud Storage Bucket by + * "projects/123" for service storage.googleapis.com: + * { "reason": "LOCATION_POLICY_VIOLATED", + * "domain": "googleapis.com", + * "metadata": { + * "consumer": "projects/123", + * "service": "storage.googleapis.com", + * } + * } + * This response indicates creating the Cloud Storage Bucket in + * "locations/asia-northeast3" violates at least one location policy. + * The troubleshooting guidance is provided in the Help links. + * + * Generated from protobuf enum LOCATION_POLICY_VIOLATED = 31; + */ + const LOCATION_POLICY_VIOLATED = 31; + /** + * The request is denied because origin request header is missing. + * Example of an ErrorInfo when + * accessing "pubsub.googleapis.com" service with an empty "Origin" request + * header. + * { + * reason: "MISSING_ORIGIN" + * domain: "googleapis.com" + * metadata { + * "consumer":"projects/123456" + * "service": "pubsub.googleapis.com" + * } + * } + * + * Generated from protobuf enum MISSING_ORIGIN = 33; + */ + const MISSING_ORIGIN = 33; + /** + * The request is denied because the request contains more than one credential + * type that are individually acceptable, but not together. The customer + * should retry their request with only one set of credentials. + * Example of an ErrorInfo when + * accessing "pubsub.googleapis.com" service with overloaded credentials. + * { + * reason: "OVERLOADED_CREDENTIALS" + * domain: "googleapis.com" + * metadata { + * "consumer":"projects/123456" + * "service": "pubsub.googleapis.com" + * } + * } + * + * Generated from protobuf enum OVERLOADED_CREDENTIALS = 34; + */ + const OVERLOADED_CREDENTIALS = 34; + + private static $valueToName = [ + self::ERROR_REASON_UNSPECIFIED => 'ERROR_REASON_UNSPECIFIED', + self::SERVICE_DISABLED => 'SERVICE_DISABLED', + self::BILLING_DISABLED => 'BILLING_DISABLED', + self::API_KEY_INVALID => 'API_KEY_INVALID', + self::API_KEY_SERVICE_BLOCKED => 'API_KEY_SERVICE_BLOCKED', + self::API_KEY_HTTP_REFERRER_BLOCKED => 'API_KEY_HTTP_REFERRER_BLOCKED', + self::API_KEY_IP_ADDRESS_BLOCKED => 'API_KEY_IP_ADDRESS_BLOCKED', + self::API_KEY_ANDROID_APP_BLOCKED => 'API_KEY_ANDROID_APP_BLOCKED', + self::API_KEY_IOS_APP_BLOCKED => 'API_KEY_IOS_APP_BLOCKED', + self::RATE_LIMIT_EXCEEDED => 'RATE_LIMIT_EXCEEDED', + self::RESOURCE_QUOTA_EXCEEDED => 'RESOURCE_QUOTA_EXCEEDED', + self::LOCATION_TAX_POLICY_VIOLATED => 'LOCATION_TAX_POLICY_VIOLATED', + self::USER_PROJECT_DENIED => 'USER_PROJECT_DENIED', + self::CONSUMER_SUSPENDED => 'CONSUMER_SUSPENDED', + self::CONSUMER_INVALID => 'CONSUMER_INVALID', + self::SECURITY_POLICY_VIOLATED => 'SECURITY_POLICY_VIOLATED', + self::ACCESS_TOKEN_EXPIRED => 'ACCESS_TOKEN_EXPIRED', + self::ACCESS_TOKEN_SCOPE_INSUFFICIENT => 'ACCESS_TOKEN_SCOPE_INSUFFICIENT', + self::ACCOUNT_STATE_INVALID => 'ACCOUNT_STATE_INVALID', + self::ACCESS_TOKEN_TYPE_UNSUPPORTED => 'ACCESS_TOKEN_TYPE_UNSUPPORTED', + self::CREDENTIALS_MISSING => 'CREDENTIALS_MISSING', + self::RESOURCE_PROJECT_INVALID => 'RESOURCE_PROJECT_INVALID', + self::SESSION_COOKIE_INVALID => 'SESSION_COOKIE_INVALID', + self::USER_BLOCKED_BY_ADMIN => 'USER_BLOCKED_BY_ADMIN', + self::RESOURCE_USAGE_RESTRICTION_VIOLATED => 'RESOURCE_USAGE_RESTRICTION_VIOLATED', + self::SYSTEM_PARAMETER_UNSUPPORTED => 'SYSTEM_PARAMETER_UNSUPPORTED', + self::ORG_RESTRICTION_VIOLATION => 'ORG_RESTRICTION_VIOLATION', + self::ORG_RESTRICTION_HEADER_INVALID => 'ORG_RESTRICTION_HEADER_INVALID', + self::SERVICE_NOT_VISIBLE => 'SERVICE_NOT_VISIBLE', + self::GCP_SUSPENDED => 'GCP_SUSPENDED', + self::LOCATION_POLICY_VIOLATED => 'LOCATION_POLICY_VIOLATED', + self::MISSING_ORIGIN => 'MISSING_ORIGIN', + self::OVERLOADED_CREDENTIALS => 'OVERLOADED_CREDENTIALS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Api/FieldBehavior.php b/vendor/google/common-protos/src/Api/FieldBehavior.php new file mode 100644 index 0000000..4c57c50 --- /dev/null +++ b/vendor/google/common-protos/src/Api/FieldBehavior.php @@ -0,0 +1,133 @@ +google.api.FieldBehavior + */ +class FieldBehavior +{ + /** + * Conventional default for enums. Do not use this. + * + * Generated from protobuf enum FIELD_BEHAVIOR_UNSPECIFIED = 0; + */ + const FIELD_BEHAVIOR_UNSPECIFIED = 0; + /** + * Specifically denotes a field as optional. + * While all fields in protocol buffers are optional, this may be specified + * for emphasis if appropriate. + * + * Generated from protobuf enum OPTIONAL = 1; + */ + const OPTIONAL = 1; + /** + * Denotes a field as required. + * This indicates that the field **must** be provided as part of the request, + * and failure to do so will cause an error (usually `INVALID_ARGUMENT`). + * + * Generated from protobuf enum REQUIRED = 2; + */ + const REQUIRED = 2; + /** + * Denotes a field as output only. + * This indicates that the field is provided in responses, but including the + * field in a request does nothing (the server *must* ignore it and + * *must not* throw an error as a result of the field's presence). + * + * Generated from protobuf enum OUTPUT_ONLY = 3; + */ + const OUTPUT_ONLY = 3; + /** + * Denotes a field as input only. + * This indicates that the field is provided in requests, and the + * corresponding field is not included in output. + * + * Generated from protobuf enum INPUT_ONLY = 4; + */ + const INPUT_ONLY = 4; + /** + * Denotes a field as immutable. + * This indicates that the field may be set once in a request to create a + * resource, but may not be changed thereafter. + * + * Generated from protobuf enum IMMUTABLE = 5; + */ + const IMMUTABLE = 5; + /** + * Denotes that a (repeated) field is an unordered list. + * This indicates that the service may provide the elements of the list + * in any arbitrary order, rather than the order the user originally + * provided. Additionally, the list's order may or may not be stable. + * + * Generated from protobuf enum UNORDERED_LIST = 6; + */ + const UNORDERED_LIST = 6; + /** + * Denotes that this field returns a non-empty default value if not set. + * This indicates that if the user provides the empty value in a request, + * a non-empty value will be returned. The user will not be aware of what + * non-empty value to expect. + * + * Generated from protobuf enum NON_EMPTY_DEFAULT = 7; + */ + const NON_EMPTY_DEFAULT = 7; + /** + * Denotes that the field in a resource (a message annotated with + * google.api.resource) is used in the resource name to uniquely identify the + * resource. For AIP-compliant APIs, this should only be applied to the + * `name` field on the resource. + * This behavior should not be applied to references to other resources within + * the message. + * The identifier field of resources often have different field behavior + * depending on the request it is embedded in (e.g. for Create methods name + * is optional and unused, while for Update methods it is required). Instead + * of method-specific annotations, only `IDENTIFIER` is required. + * + * Generated from protobuf enum IDENTIFIER = 8; + */ + const IDENTIFIER = 8; + + private static $valueToName = [ + self::FIELD_BEHAVIOR_UNSPECIFIED => 'FIELD_BEHAVIOR_UNSPECIFIED', + self::OPTIONAL => 'OPTIONAL', + self::REQUIRED => 'REQUIRED', + self::OUTPUT_ONLY => 'OUTPUT_ONLY', + self::INPUT_ONLY => 'INPUT_ONLY', + self::IMMUTABLE => 'IMMUTABLE', + self::UNORDERED_LIST => 'UNORDERED_LIST', + self::NON_EMPTY_DEFAULT => 'NON_EMPTY_DEFAULT', + self::IDENTIFIER => 'IDENTIFIER', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Api/FieldInfo.php b/vendor/google/common-protos/src/Api/FieldInfo.php new file mode 100644 index 0000000..617bf40 --- /dev/null +++ b/vendor/google/common-protos/src/Api/FieldInfo.php @@ -0,0 +1,117 @@ +google.api.FieldInfo + */ +class FieldInfo extends \Google\Protobuf\Internal\Message +{ + /** + * The standard format of a field value. This does not explicitly configure + * any API consumer, just documents the API's format for the field it is + * applied to. + * + * Generated from protobuf field .google.api.FieldInfo.Format format = 1; + */ + protected $format = 0; + /** + * The type(s) that the annotated, generic field may represent. + * Currently, this must only be used on fields of type `google.protobuf.Any`. + * Supporting other generic types may be considered in the future. + * + * Generated from protobuf field repeated .google.api.TypeReference referenced_types = 2; + */ + private $referenced_types; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $format + * The standard format of a field value. This does not explicitly configure + * any API consumer, just documents the API's format for the field it is + * applied to. + * @type array<\Google\Api\TypeReference>|\Google\Protobuf\Internal\RepeatedField $referenced_types + * The type(s) that the annotated, generic field may represent. + * Currently, this must only be used on fields of type `google.protobuf.Any`. + * Supporting other generic types may be considered in the future. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\FieldInfo::initOnce(); + parent::__construct($data); + } + + /** + * The standard format of a field value. This does not explicitly configure + * any API consumer, just documents the API's format for the field it is + * applied to. + * + * Generated from protobuf field .google.api.FieldInfo.Format format = 1; + * @return int + */ + public function getFormat() + { + return $this->format; + } + + /** + * The standard format of a field value. This does not explicitly configure + * any API consumer, just documents the API's format for the field it is + * applied to. + * + * Generated from protobuf field .google.api.FieldInfo.Format format = 1; + * @param int $var + * @return $this + */ + public function setFormat($var) + { + GPBUtil::checkEnum($var, \Google\Api\FieldInfo\Format::class); + $this->format = $var; + + return $this; + } + + /** + * The type(s) that the annotated, generic field may represent. + * Currently, this must only be used on fields of type `google.protobuf.Any`. + * Supporting other generic types may be considered in the future. + * + * Generated from protobuf field repeated .google.api.TypeReference referenced_types = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getReferencedTypes() + { + return $this->referenced_types; + } + + /** + * The type(s) that the annotated, generic field may represent. + * Currently, this must only be used on fields of type `google.protobuf.Any`. + * Supporting other generic types may be considered in the future. + * + * Generated from protobuf field repeated .google.api.TypeReference referenced_types = 2; + * @param array<\Google\Api\TypeReference>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setReferencedTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\TypeReference::class); + $this->referenced_types = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/FieldInfo/Format.php b/vendor/google/common-protos/src/Api/FieldInfo/Format.php new file mode 100644 index 0000000..1977ca9 --- /dev/null +++ b/vendor/google/common-protos/src/Api/FieldInfo/Format.php @@ -0,0 +1,90 @@ +google.api.FieldInfo.Format + */ +class Format +{ + /** + * Default, unspecified value. + * + * Generated from protobuf enum FORMAT_UNSPECIFIED = 0; + */ + const FORMAT_UNSPECIFIED = 0; + /** + * Universally Unique Identifier, version 4, value as defined by + * https://datatracker.ietf.org/doc/html/rfc4122. The value may be + * normalized to entirely lowercase letters. For example, the value + * `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to + * `f47ac10b-58cc-0372-8567-0e02b2c3d479`. + * + * Generated from protobuf enum UUID4 = 1; + */ + const UUID4 = 1; + /** + * Internet Protocol v4 value as defined by [RFC + * 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be + * condensed, with leading zeros in each octet stripped. For example, + * `001.022.233.040` would be condensed to `1.22.233.40`. + * + * Generated from protobuf enum IPV4 = 2; + */ + const IPV4 = 2; + /** + * Internet Protocol v6 value as defined by [RFC + * 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be + * normalized to entirely lowercase letters with zeros compressed, following + * [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example, + * the value `2001:0DB8:0::0` would be normalized to `2001:db8::`. + * + * Generated from protobuf enum IPV6 = 3; + */ + const IPV6 = 3; + /** + * An IP address in either v4 or v6 format as described by the individual + * values defined herein. See the comments on the IPV4 and IPV6 types for + * allowed normalizations of each. + * + * Generated from protobuf enum IPV4_OR_IPV6 = 4; + */ + const IPV4_OR_IPV6 = 4; + + private static $valueToName = [ + self::FORMAT_UNSPECIFIED => 'FORMAT_UNSPECIFIED', + self::UUID4 => 'UUID4', + self::IPV4 => 'IPV4', + self::IPV6 => 'IPV6', + self::IPV4_OR_IPV6 => 'IPV4_OR_IPV6', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/FieldPolicy.php b/vendor/google/common-protos/src/Api/FieldPolicy.php new file mode 100644 index 0000000..53474a4 --- /dev/null +++ b/vendor/google/common-protos/src/Api/FieldPolicy.php @@ -0,0 +1,181 @@ +google.api.FieldPolicy + */ +class FieldPolicy extends \Google\Protobuf\Internal\Message +{ + /** + * Selects one or more request or response message fields to apply this + * `FieldPolicy`. + * When a `FieldPolicy` is used in proto annotation, the selector must + * be left as empty. The service config generator will automatically fill + * the correct value. + * When a `FieldPolicy` is used in service config, the selector must be a + * comma-separated string with valid request or response field paths, + * such as "foo.bar" or "foo.bar,foo.baz". + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * Specifies the required permission(s) for the resource referred to by the + * field. It requires the field contains a valid resource reference, and + * the request must pass the permission checks to proceed. For example, + * "resourcemanager.projects.get". + * + * Generated from protobuf field string resource_permission = 2; + */ + protected $resource_permission = ''; + /** + * Specifies the resource type for the resource referred to by the field. + * + * Generated from protobuf field string resource_type = 3; + */ + protected $resource_type = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects one or more request or response message fields to apply this + * `FieldPolicy`. + * When a `FieldPolicy` is used in proto annotation, the selector must + * be left as empty. The service config generator will automatically fill + * the correct value. + * When a `FieldPolicy` is used in service config, the selector must be a + * comma-separated string with valid request or response field paths, + * such as "foo.bar" or "foo.bar,foo.baz". + * @type string $resource_permission + * Specifies the required permission(s) for the resource referred to by the + * field. It requires the field contains a valid resource reference, and + * the request must pass the permission checks to proceed. For example, + * "resourcemanager.projects.get". + * @type string $resource_type + * Specifies the resource type for the resource referred to by the field. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Policy::initOnce(); + parent::__construct($data); + } + + /** + * Selects one or more request or response message fields to apply this + * `FieldPolicy`. + * When a `FieldPolicy` is used in proto annotation, the selector must + * be left as empty. The service config generator will automatically fill + * the correct value. + * When a `FieldPolicy` is used in service config, the selector must be a + * comma-separated string with valid request or response field paths, + * such as "foo.bar" or "foo.bar,foo.baz". + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects one or more request or response message fields to apply this + * `FieldPolicy`. + * When a `FieldPolicy` is used in proto annotation, the selector must + * be left as empty. The service config generator will automatically fill + * the correct value. + * When a `FieldPolicy` is used in service config, the selector must be a + * comma-separated string with valid request or response field paths, + * such as "foo.bar" or "foo.bar,foo.baz". + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Specifies the required permission(s) for the resource referred to by the + * field. It requires the field contains a valid resource reference, and + * the request must pass the permission checks to proceed. For example, + * "resourcemanager.projects.get". + * + * Generated from protobuf field string resource_permission = 2; + * @return string + */ + public function getResourcePermission() + { + return $this->resource_permission; + } + + /** + * Specifies the required permission(s) for the resource referred to by the + * field. It requires the field contains a valid resource reference, and + * the request must pass the permission checks to proceed. For example, + * "resourcemanager.projects.get". + * + * Generated from protobuf field string resource_permission = 2; + * @param string $var + * @return $this + */ + public function setResourcePermission($var) + { + GPBUtil::checkString($var, True); + $this->resource_permission = $var; + + return $this; + } + + /** + * Specifies the resource type for the resource referred to by the field. + * + * Generated from protobuf field string resource_type = 3; + * @return string + */ + public function getResourceType() + { + return $this->resource_type; + } + + /** + * Specifies the resource type for the resource referred to by the field. + * + * Generated from protobuf field string resource_type = 3; + * @param string $var + * @return $this + */ + public function setResourceType($var) + { + GPBUtil::checkString($var, True); + $this->resource_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/GoSettings.php b/vendor/google/common-protos/src/Api/GoSettings.php new file mode 100644 index 0000000..f70db3c --- /dev/null +++ b/vendor/google/common-protos/src/Api/GoSettings.php @@ -0,0 +1,135 @@ +google.api.GoSettings + */ +class GoSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + /** + * Map of service names to renamed services. Keys are the package relative + * service names and values are the name to be used for the service client + * and call options. + * publishing: + * go_settings: + * renamed_services: + * Publisher: TopicAdmin + * + * Generated from protobuf field map renamed_services = 2; + */ + private $renamed_services; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * @type array|\Google\Protobuf\Internal\MapField $renamed_services + * Map of service names to renamed services. Keys are the package relative + * service names and values are the name to be used for the service client + * and call options. + * publishing: + * go_settings: + * renamed_services: + * Publisher: TopicAdmin + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + + /** + * Map of service names to renamed services. Keys are the package relative + * service names and values are the name to be used for the service client + * and call options. + * publishing: + * go_settings: + * renamed_services: + * Publisher: TopicAdmin + * + * Generated from protobuf field map renamed_services = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getRenamedServices() + { + return $this->renamed_services; + } + + /** + * Map of service names to renamed services. Keys are the package relative + * service names and values are the name to be used for the service client + * and call options. + * publishing: + * go_settings: + * renamed_services: + * Publisher: TopicAdmin + * + * Generated from protobuf field map renamed_services = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setRenamedServices($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->renamed_services = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Http.php b/vendor/google/common-protos/src/Api/Http.php new file mode 100644 index 0000000..712894e --- /dev/null +++ b/vendor/google/common-protos/src/Api/Http.php @@ -0,0 +1,123 @@ +google.api.Http + */ +class Http extends \Google\Protobuf\Internal\Message +{ + /** + * A list of HTTP configuration rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.HttpRule rules = 1; + */ + private $rules; + /** + * When set to true, URL path parameters will be fully URI-decoded except in + * cases of single segment matches in reserved expansion, where "%2F" will be + * left encoded. + * The default behavior is to not decode RFC 6570 reserved characters in multi + * segment matches. + * + * Generated from protobuf field bool fully_decode_reserved_expansion = 2; + */ + protected $fully_decode_reserved_expansion = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\HttpRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of HTTP configuration rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * @type bool $fully_decode_reserved_expansion + * When set to true, URL path parameters will be fully URI-decoded except in + * cases of single segment matches in reserved expansion, where "%2F" will be + * left encoded. + * The default behavior is to not decode RFC 6570 reserved characters in multi + * segment matches. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Http::initOnce(); + parent::__construct($data); + } + + /** + * A list of HTTP configuration rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.HttpRule rules = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of HTTP configuration rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.HttpRule rules = 1; + * @param array<\Google\Api\HttpRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\HttpRule::class); + $this->rules = $arr; + + return $this; + } + + /** + * When set to true, URL path parameters will be fully URI-decoded except in + * cases of single segment matches in reserved expansion, where "%2F" will be + * left encoded. + * The default behavior is to not decode RFC 6570 reserved characters in multi + * segment matches. + * + * Generated from protobuf field bool fully_decode_reserved_expansion = 2; + * @return bool + */ + public function getFullyDecodeReservedExpansion() + { + return $this->fully_decode_reserved_expansion; + } + + /** + * When set to true, URL path parameters will be fully URI-decoded except in + * cases of single segment matches in reserved expansion, where "%2F" will be + * left encoded. + * The default behavior is to not decode RFC 6570 reserved characters in multi + * segment matches. + * + * Generated from protobuf field bool fully_decode_reserved_expansion = 2; + * @param bool $var + * @return $this + */ + public function setFullyDecodeReservedExpansion($var) + { + GPBUtil::checkBool($var); + $this->fully_decode_reserved_expansion = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/HttpBody.php b/vendor/google/common-protos/src/Api/HttpBody.php new file mode 100644 index 0000000..c5626f1 --- /dev/null +++ b/vendor/google/common-protos/src/Api/HttpBody.php @@ -0,0 +1,168 @@ +google.api.HttpBody + */ +class HttpBody extends \Google\Protobuf\Internal\Message +{ + /** + * The HTTP Content-Type header value specifying the content type of the body. + * + * Generated from protobuf field string content_type = 1; + */ + protected $content_type = ''; + /** + * The HTTP request/response body as raw binary. + * + * Generated from protobuf field bytes data = 2; + */ + protected $data = ''; + /** + * Application specific response metadata. Must be set in the first response + * for streaming APIs. + * + * Generated from protobuf field repeated .google.protobuf.Any extensions = 3; + */ + private $extensions; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $content_type + * The HTTP Content-Type header value specifying the content type of the body. + * @type string $data + * The HTTP request/response body as raw binary. + * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $extensions + * Application specific response metadata. Must be set in the first response + * for streaming APIs. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Httpbody::initOnce(); + parent::__construct($data); + } + + /** + * The HTTP Content-Type header value specifying the content type of the body. + * + * Generated from protobuf field string content_type = 1; + * @return string + */ + public function getContentType() + { + return $this->content_type; + } + + /** + * The HTTP Content-Type header value specifying the content type of the body. + * + * Generated from protobuf field string content_type = 1; + * @param string $var + * @return $this + */ + public function setContentType($var) + { + GPBUtil::checkString($var, True); + $this->content_type = $var; + + return $this; + } + + /** + * The HTTP request/response body as raw binary. + * + * Generated from protobuf field bytes data = 2; + * @return string + */ + public function getData() + { + return $this->data; + } + + /** + * The HTTP request/response body as raw binary. + * + * Generated from protobuf field bytes data = 2; + * @param string $var + * @return $this + */ + public function setData($var) + { + GPBUtil::checkString($var, False); + $this->data = $var; + + return $this; + } + + /** + * Application specific response metadata. Must be set in the first response + * for streaming APIs. + * + * Generated from protobuf field repeated .google.protobuf.Any extensions = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getExtensions() + { + return $this->extensions; + } + + /** + * Application specific response metadata. Must be set in the first response + * for streaming APIs. + * + * Generated from protobuf field repeated .google.protobuf.Any extensions = 3; + * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setExtensions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); + $this->extensions = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/HttpRule.php b/vendor/google/common-protos/src/Api/HttpRule.php new file mode 100644 index 0000000..3b72f5a --- /dev/null +++ b/vendor/google/common-protos/src/Api/HttpRule.php @@ -0,0 +1,651 @@ +google.api.HttpRule + */ +class HttpRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects a method to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * The name of the request field whose value is mapped to the HTTP request + * body, or `*` for mapping all request fields not captured by the path + * pattern to the HTTP body, or omitted for not having any HTTP request body. + * NOTE: the referred field must be present at the top-level of the request + * message type. + * + * Generated from protobuf field string body = 7; + */ + protected $body = ''; + /** + * Optional. The name of the response field whose value is mapped to the HTTP + * response body. When omitted, the entire response message will be used + * as the HTTP response body. + * NOTE: The referred field must be present at the top-level of the response + * message type. + * + * Generated from protobuf field string response_body = 12; + */ + protected $response_body = ''; + /** + * Additional HTTP bindings for the selector. Nested bindings must + * not contain an `additional_bindings` field themselves (that is, + * the nesting may only be one level deep). + * + * Generated from protobuf field repeated .google.api.HttpRule additional_bindings = 11; + */ + private $additional_bindings; + protected $pattern; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects a method to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type string $get + * Maps to HTTP GET. Used for listing and getting information about + * resources. + * @type string $put + * Maps to HTTP PUT. Used for replacing a resource. + * @type string $post + * Maps to HTTP POST. Used for creating a resource or performing an action. + * @type string $delete + * Maps to HTTP DELETE. Used for deleting a resource. + * @type string $patch + * Maps to HTTP PATCH. Used for updating a resource. + * @type \Google\Api\CustomHttpPattern $custom + * The custom pattern is used for specifying an HTTP method that is not + * included in the `pattern` field, such as HEAD, or "*" to leave the + * HTTP method unspecified for this rule. The wild-card rule is useful + * for services that provide content to Web (HTML) clients. + * @type string $body + * The name of the request field whose value is mapped to the HTTP request + * body, or `*` for mapping all request fields not captured by the path + * pattern to the HTTP body, or omitted for not having any HTTP request body. + * NOTE: the referred field must be present at the top-level of the request + * message type. + * @type string $response_body + * Optional. The name of the response field whose value is mapped to the HTTP + * response body. When omitted, the entire response message will be used + * as the HTTP response body. + * NOTE: The referred field must be present at the top-level of the response + * message type. + * @type array<\Google\Api\HttpRule>|\Google\Protobuf\Internal\RepeatedField $additional_bindings + * Additional HTTP bindings for the selector. Nested bindings must + * not contain an `additional_bindings` field themselves (that is, + * the nesting may only be one level deep). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Http::initOnce(); + parent::__construct($data); + } + + /** + * Selects a method to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects a method to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Maps to HTTP GET. Used for listing and getting information about + * resources. + * + * Generated from protobuf field string get = 2; + * @return string + */ + public function getGet() + { + return $this->readOneof(2); + } + + public function hasGet() + { + return $this->hasOneof(2); + } + + /** + * Maps to HTTP GET. Used for listing and getting information about + * resources. + * + * Generated from protobuf field string get = 2; + * @param string $var + * @return $this + */ + public function setGet($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Maps to HTTP PUT. Used for replacing a resource. + * + * Generated from protobuf field string put = 3; + * @return string + */ + public function getPut() + { + return $this->readOneof(3); + } + + public function hasPut() + { + return $this->hasOneof(3); + } + + /** + * Maps to HTTP PUT. Used for replacing a resource. + * + * Generated from protobuf field string put = 3; + * @param string $var + * @return $this + */ + public function setPut($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(3, $var); + + return $this; + } + + /** + * Maps to HTTP POST. Used for creating a resource or performing an action. + * + * Generated from protobuf field string post = 4; + * @return string + */ + public function getPost() + { + return $this->readOneof(4); + } + + public function hasPost() + { + return $this->hasOneof(4); + } + + /** + * Maps to HTTP POST. Used for creating a resource or performing an action. + * + * Generated from protobuf field string post = 4; + * @param string $var + * @return $this + */ + public function setPost($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * Maps to HTTP DELETE. Used for deleting a resource. + * + * Generated from protobuf field string delete = 5; + * @return string + */ + public function getDelete() + { + return $this->readOneof(5); + } + + public function hasDelete() + { + return $this->hasOneof(5); + } + + /** + * Maps to HTTP DELETE. Used for deleting a resource. + * + * Generated from protobuf field string delete = 5; + * @param string $var + * @return $this + */ + public function setDelete($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(5, $var); + + return $this; + } + + /** + * Maps to HTTP PATCH. Used for updating a resource. + * + * Generated from protobuf field string patch = 6; + * @return string + */ + public function getPatch() + { + return $this->readOneof(6); + } + + public function hasPatch() + { + return $this->hasOneof(6); + } + + /** + * Maps to HTTP PATCH. Used for updating a resource. + * + * Generated from protobuf field string patch = 6; + * @param string $var + * @return $this + */ + public function setPatch($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(6, $var); + + return $this; + } + + /** + * The custom pattern is used for specifying an HTTP method that is not + * included in the `pattern` field, such as HEAD, or "*" to leave the + * HTTP method unspecified for this rule. The wild-card rule is useful + * for services that provide content to Web (HTML) clients. + * + * Generated from protobuf field .google.api.CustomHttpPattern custom = 8; + * @return \Google\Api\CustomHttpPattern|null + */ + public function getCustom() + { + return $this->readOneof(8); + } + + public function hasCustom() + { + return $this->hasOneof(8); + } + + /** + * The custom pattern is used for specifying an HTTP method that is not + * included in the `pattern` field, such as HEAD, or "*" to leave the + * HTTP method unspecified for this rule. The wild-card rule is useful + * for services that provide content to Web (HTML) clients. + * + * Generated from protobuf field .google.api.CustomHttpPattern custom = 8; + * @param \Google\Api\CustomHttpPattern $var + * @return $this + */ + public function setCustom($var) + { + GPBUtil::checkMessage($var, \Google\Api\CustomHttpPattern::class); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * The name of the request field whose value is mapped to the HTTP request + * body, or `*` for mapping all request fields not captured by the path + * pattern to the HTTP body, or omitted for not having any HTTP request body. + * NOTE: the referred field must be present at the top-level of the request + * message type. + * + * Generated from protobuf field string body = 7; + * @return string + */ + public function getBody() + { + return $this->body; + } + + /** + * The name of the request field whose value is mapped to the HTTP request + * body, or `*` for mapping all request fields not captured by the path + * pattern to the HTTP body, or omitted for not having any HTTP request body. + * NOTE: the referred field must be present at the top-level of the request + * message type. + * + * Generated from protobuf field string body = 7; + * @param string $var + * @return $this + */ + public function setBody($var) + { + GPBUtil::checkString($var, True); + $this->body = $var; + + return $this; + } + + /** + * Optional. The name of the response field whose value is mapped to the HTTP + * response body. When omitted, the entire response message will be used + * as the HTTP response body. + * NOTE: The referred field must be present at the top-level of the response + * message type. + * + * Generated from protobuf field string response_body = 12; + * @return string + */ + public function getResponseBody() + { + return $this->response_body; + } + + /** + * Optional. The name of the response field whose value is mapped to the HTTP + * response body. When omitted, the entire response message will be used + * as the HTTP response body. + * NOTE: The referred field must be present at the top-level of the response + * message type. + * + * Generated from protobuf field string response_body = 12; + * @param string $var + * @return $this + */ + public function setResponseBody($var) + { + GPBUtil::checkString($var, True); + $this->response_body = $var; + + return $this; + } + + /** + * Additional HTTP bindings for the selector. Nested bindings must + * not contain an `additional_bindings` field themselves (that is, + * the nesting may only be one level deep). + * + * Generated from protobuf field repeated .google.api.HttpRule additional_bindings = 11; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAdditionalBindings() + { + return $this->additional_bindings; + } + + /** + * Additional HTTP bindings for the selector. Nested bindings must + * not contain an `additional_bindings` field themselves (that is, + * the nesting may only be one level deep). + * + * Generated from protobuf field repeated .google.api.HttpRule additional_bindings = 11; + * @param array<\Google\Api\HttpRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAdditionalBindings($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\HttpRule::class); + $this->additional_bindings = $arr; + + return $this; + } + + /** + * @return string + */ + public function getPattern() + { + return $this->whichOneof("pattern"); + } + +} + diff --git a/vendor/google/common-protos/src/Api/JavaSettings.php b/vendor/google/common-protos/src/Api/JavaSettings.php new file mode 100644 index 0000000..cddb41b --- /dev/null +++ b/vendor/google/common-protos/src/Api/JavaSettings.php @@ -0,0 +1,221 @@ +google.api.JavaSettings + */ +class JavaSettings extends \Google\Protobuf\Internal\Message +{ + /** + * The package name to use in Java. Clobbers the java_package option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.java.package_name" field + * in gapic.yaml. API teams should use the protobuf java_package option + * where possible. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * library_package: com.google.cloud.pubsub.v1 + * + * Generated from protobuf field string library_package = 1; + */ + protected $library_package = ''; + /** + * Configure the Java class name to use instead of the service's for its + * corresponding generated GAPIC client. Keys are fully-qualified + * service names as they appear in the protobuf (including the full + * the language_settings.java.interface_names" field in gapic.yaml. API + * teams should otherwise use the service name as it appears in the + * protobuf. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * service_class_names: + * - google.pubsub.v1.Publisher: TopicAdmin + * - google.pubsub.v1.Subscriber: SubscriptionAdmin + * + * Generated from protobuf field map service_class_names = 2; + */ + private $service_class_names; + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 3; + */ + protected $common = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $library_package + * The package name to use in Java. Clobbers the java_package option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.java.package_name" field + * in gapic.yaml. API teams should use the protobuf java_package option + * where possible. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * library_package: com.google.cloud.pubsub.v1 + * @type array|\Google\Protobuf\Internal\MapField $service_class_names + * Configure the Java class name to use instead of the service's for its + * corresponding generated GAPIC client. Keys are fully-qualified + * service names as they appear in the protobuf (including the full + * the language_settings.java.interface_names" field in gapic.yaml. API + * teams should otherwise use the service name as it appears in the + * protobuf. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * service_class_names: + * - google.pubsub.v1.Publisher: TopicAdmin + * - google.pubsub.v1.Subscriber: SubscriptionAdmin + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * The package name to use in Java. Clobbers the java_package option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.java.package_name" field + * in gapic.yaml. API teams should use the protobuf java_package option + * where possible. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * library_package: com.google.cloud.pubsub.v1 + * + * Generated from protobuf field string library_package = 1; + * @return string + */ + public function getLibraryPackage() + { + return $this->library_package; + } + + /** + * The package name to use in Java. Clobbers the java_package option + * set in the protobuf. This should be used **only** by APIs + * who have already set the language_settings.java.package_name" field + * in gapic.yaml. API teams should use the protobuf java_package option + * where possible. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * library_package: com.google.cloud.pubsub.v1 + * + * Generated from protobuf field string library_package = 1; + * @param string $var + * @return $this + */ + public function setLibraryPackage($var) + { + GPBUtil::checkString($var, True); + $this->library_package = $var; + + return $this; + } + + /** + * Configure the Java class name to use instead of the service's for its + * corresponding generated GAPIC client. Keys are fully-qualified + * service names as they appear in the protobuf (including the full + * the language_settings.java.interface_names" field in gapic.yaml. API + * teams should otherwise use the service name as it appears in the + * protobuf. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * service_class_names: + * - google.pubsub.v1.Publisher: TopicAdmin + * - google.pubsub.v1.Subscriber: SubscriptionAdmin + * + * Generated from protobuf field map service_class_names = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getServiceClassNames() + { + return $this->service_class_names; + } + + /** + * Configure the Java class name to use instead of the service's for its + * corresponding generated GAPIC client. Keys are fully-qualified + * service names as they appear in the protobuf (including the full + * the language_settings.java.interface_names" field in gapic.yaml. API + * teams should otherwise use the service name as it appears in the + * protobuf. + * Example of a YAML configuration:: + * publishing: + * java_settings: + * service_class_names: + * - google.pubsub.v1.Publisher: TopicAdmin + * - google.pubsub.v1.Subscriber: SubscriptionAdmin + * + * Generated from protobuf field map service_class_names = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setServiceClassNames($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->service_class_names = $arr; + + return $this; + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 3; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 3; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/JwtLocation.php b/vendor/google/common-protos/src/Api/JwtLocation.php new file mode 100644 index 0000000..1bfbdd8 --- /dev/null +++ b/vendor/google/common-protos/src/Api/JwtLocation.php @@ -0,0 +1,199 @@ +google.api.JwtLocation + */ +class JwtLocation extends \Google\Protobuf\Internal\Message +{ + /** + * The value prefix. The value format is "value_prefix{token}" + * Only applies to "in" header type. Must be empty for "in" query type. + * If not empty, the header value has to match (case sensitive) this prefix. + * If not matched, JWT will not be extracted. If matched, JWT will be + * extracted after the prefix is removed. + * For example, for "Authorization: Bearer {JWT}", + * value_prefix="Bearer " with a space at the end. + * + * Generated from protobuf field string value_prefix = 3; + */ + protected $value_prefix = ''; + protected $in; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $header + * Specifies HTTP header name to extract JWT token. + * @type string $query + * Specifies URL query parameter name to extract JWT token. + * @type string $cookie + * Specifies cookie name to extract JWT token. + * @type string $value_prefix + * The value prefix. The value format is "value_prefix{token}" + * Only applies to "in" header type. Must be empty for "in" query type. + * If not empty, the header value has to match (case sensitive) this prefix. + * If not matched, JWT will not be extracted. If matched, JWT will be + * extracted after the prefix is removed. + * For example, for "Authorization: Bearer {JWT}", + * value_prefix="Bearer " with a space at the end. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Auth::initOnce(); + parent::__construct($data); + } + + /** + * Specifies HTTP header name to extract JWT token. + * + * Generated from protobuf field string header = 1; + * @return string + */ + public function getHeader() + { + return $this->readOneof(1); + } + + public function hasHeader() + { + return $this->hasOneof(1); + } + + /** + * Specifies HTTP header name to extract JWT token. + * + * Generated from protobuf field string header = 1; + * @param string $var + * @return $this + */ + public function setHeader($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * Specifies URL query parameter name to extract JWT token. + * + * Generated from protobuf field string query = 2; + * @return string + */ + public function getQuery() + { + return $this->readOneof(2); + } + + public function hasQuery() + { + return $this->hasOneof(2); + } + + /** + * Specifies URL query parameter name to extract JWT token. + * + * Generated from protobuf field string query = 2; + * @param string $var + * @return $this + */ + public function setQuery($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * Specifies cookie name to extract JWT token. + * + * Generated from protobuf field string cookie = 4; + * @return string + */ + public function getCookie() + { + return $this->readOneof(4); + } + + public function hasCookie() + { + return $this->hasOneof(4); + } + + /** + * Specifies cookie name to extract JWT token. + * + * Generated from protobuf field string cookie = 4; + * @param string $var + * @return $this + */ + public function setCookie($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(4, $var); + + return $this; + } + + /** + * The value prefix. The value format is "value_prefix{token}" + * Only applies to "in" header type. Must be empty for "in" query type. + * If not empty, the header value has to match (case sensitive) this prefix. + * If not matched, JWT will not be extracted. If matched, JWT will be + * extracted after the prefix is removed. + * For example, for "Authorization: Bearer {JWT}", + * value_prefix="Bearer " with a space at the end. + * + * Generated from protobuf field string value_prefix = 3; + * @return string + */ + public function getValuePrefix() + { + return $this->value_prefix; + } + + /** + * The value prefix. The value format is "value_prefix{token}" + * Only applies to "in" header type. Must be empty for "in" query type. + * If not empty, the header value has to match (case sensitive) this prefix. + * If not matched, JWT will not be extracted. If matched, JWT will be + * extracted after the prefix is removed. + * For example, for "Authorization: Bearer {JWT}", + * value_prefix="Bearer " with a space at the end. + * + * Generated from protobuf field string value_prefix = 3; + * @param string $var + * @return $this + */ + public function setValuePrefix($var) + { + GPBUtil::checkString($var, True); + $this->value_prefix = $var; + + return $this; + } + + /** + * @return string + */ + public function getIn() + { + return $this->whichOneof("in"); + } + +} + diff --git a/vendor/google/common-protos/src/Api/LabelDescriptor.php b/vendor/google/common-protos/src/Api/LabelDescriptor.php new file mode 100644 index 0000000..67fa39a --- /dev/null +++ b/vendor/google/common-protos/src/Api/LabelDescriptor.php @@ -0,0 +1,135 @@ +google.api.LabelDescriptor + */ +class LabelDescriptor extends \Google\Protobuf\Internal\Message +{ + /** + * The label key. + * + * Generated from protobuf field string key = 1; + */ + protected $key = ''; + /** + * The type of data that can be assigned to the label. + * + * Generated from protobuf field .google.api.LabelDescriptor.ValueType value_type = 2; + */ + protected $value_type = 0; + /** + * A human-readable description for the label. + * + * Generated from protobuf field string description = 3; + */ + protected $description = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $key + * The label key. + * @type int $value_type + * The type of data that can be assigned to the label. + * @type string $description + * A human-readable description for the label. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Label::initOnce(); + parent::__construct($data); + } + + /** + * The label key. + * + * Generated from protobuf field string key = 1; + * @return string + */ + public function getKey() + { + return $this->key; + } + + /** + * The label key. + * + * Generated from protobuf field string key = 1; + * @param string $var + * @return $this + */ + public function setKey($var) + { + GPBUtil::checkString($var, True); + $this->key = $var; + + return $this; + } + + /** + * The type of data that can be assigned to the label. + * + * Generated from protobuf field .google.api.LabelDescriptor.ValueType value_type = 2; + * @return int + */ + public function getValueType() + { + return $this->value_type; + } + + /** + * The type of data that can be assigned to the label. + * + * Generated from protobuf field .google.api.LabelDescriptor.ValueType value_type = 2; + * @param int $var + * @return $this + */ + public function setValueType($var) + { + GPBUtil::checkEnum($var, \Google\Api\LabelDescriptor\ValueType::class); + $this->value_type = $var; + + return $this; + } + + /** + * A human-readable description for the label. + * + * Generated from protobuf field string description = 3; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * A human-readable description for the label. + * + * Generated from protobuf field string description = 3; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/LabelDescriptor/ValueType.php b/vendor/google/common-protos/src/Api/LabelDescriptor/ValueType.php new file mode 100644 index 0000000..044b29d --- /dev/null +++ b/vendor/google/common-protos/src/Api/LabelDescriptor/ValueType.php @@ -0,0 +1,62 @@ +google.api.LabelDescriptor.ValueType + */ +class ValueType +{ + /** + * A variable-length string. This is the default. + * + * Generated from protobuf enum STRING = 0; + */ + const STRING = 0; + /** + * Boolean; true or false. + * + * Generated from protobuf enum BOOL = 1; + */ + const BOOL = 1; + /** + * A 64-bit signed integer. + * + * Generated from protobuf enum INT64 = 2; + */ + const INT64 = 2; + + private static $valueToName = [ + self::STRING => 'STRING', + self::BOOL => 'BOOL', + self::INT64 => 'INT64', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/LaunchStage.php b/vendor/google/common-protos/src/Api/LaunchStage.php new file mode 100644 index 0000000..766aa79 --- /dev/null +++ b/vendor/google/common-protos/src/Api/LaunchStage.php @@ -0,0 +1,118 @@ +google.api.LaunchStage + */ +class LaunchStage +{ + /** + * Do not use this default value. + * + * Generated from protobuf enum LAUNCH_STAGE_UNSPECIFIED = 0; + */ + const LAUNCH_STAGE_UNSPECIFIED = 0; + /** + * The feature is not yet implemented. Users can not use it. + * + * Generated from protobuf enum UNIMPLEMENTED = 6; + */ + const UNIMPLEMENTED = 6; + /** + * Prelaunch features are hidden from users and are only visible internally. + * + * Generated from protobuf enum PRELAUNCH = 7; + */ + const PRELAUNCH = 7; + /** + * Early Access features are limited to a closed group of testers. To use + * these features, you must sign up in advance and sign a Trusted Tester + * agreement (which includes confidentiality provisions). These features may + * be unstable, changed in backward-incompatible ways, and are not + * guaranteed to be released. + * + * Generated from protobuf enum EARLY_ACCESS = 1; + */ + const EARLY_ACCESS = 1; + /** + * Alpha is a limited availability test for releases before they are cleared + * for widespread use. By Alpha, all significant design issues are resolved + * and we are in the process of verifying functionality. Alpha customers + * need to apply for access, agree to applicable terms, and have their + * projects allowlisted. Alpha releases don't have to be feature complete, + * no SLAs are provided, and there are no technical support obligations, but + * they will be far enough along that customers can actually use them in + * test environments or for limited-use tests -- just like they would in + * normal production cases. + * + * Generated from protobuf enum ALPHA = 2; + */ + const ALPHA = 2; + /** + * Beta is the point at which we are ready to open a release for any + * customer to use. There are no SLA or technical support obligations in a + * Beta release. Products will be complete from a feature perspective, but + * may have some open outstanding issues. Beta releases are suitable for + * limited production use cases. + * + * Generated from protobuf enum BETA = 3; + */ + const BETA = 3; + /** + * GA features are open to all developers and are considered stable and + * fully qualified for production use. + * + * Generated from protobuf enum GA = 4; + */ + const GA = 4; + /** + * Deprecated features are scheduled to be shut down and removed. For more + * information, see the "Deprecation Policy" section of our [Terms of + * Service](https://cloud.google.com/terms/) + * and the [Google Cloud Platform Subject to the Deprecation + * Policy](https://cloud.google.com/terms/deprecation) documentation. + * + * Generated from protobuf enum DEPRECATED = 5; + */ + const DEPRECATED = 5; + + private static $valueToName = [ + self::LAUNCH_STAGE_UNSPECIFIED => 'LAUNCH_STAGE_UNSPECIFIED', + self::UNIMPLEMENTED => 'UNIMPLEMENTED', + self::PRELAUNCH => 'PRELAUNCH', + self::EARLY_ACCESS => 'EARLY_ACCESS', + self::ALPHA => 'ALPHA', + self::BETA => 'BETA', + self::GA => 'GA', + self::DEPRECATED => 'DEPRECATED', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Api/LogDescriptor.php b/vendor/google/common-protos/src/Api/LogDescriptor.php new file mode 100644 index 0000000..bb48558 --- /dev/null +++ b/vendor/google/common-protos/src/Api/LogDescriptor.php @@ -0,0 +1,203 @@ +google.api.LogDescriptor + */ +class LogDescriptor extends \Google\Protobuf\Internal\Message +{ + /** + * The name of the log. It must be less than 512 characters long and can + * include the following characters: upper- and lower-case alphanumeric + * characters [A-Za-z0-9], and punctuation characters including + * slash, underscore, hyphen, period [/_-.]. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The set of labels that are available to describe a specific log entry. + * Runtime requests that contain labels not specified here are + * considered invalid. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; + */ + private $labels; + /** + * A human-readable description of this log. This information appears in + * the documentation and can contain details. + * + * Generated from protobuf field string description = 3; + */ + protected $description = ''; + /** + * The human-readable name for this log. This information appears on + * the user interface and should be concise. + * + * Generated from protobuf field string display_name = 4; + */ + protected $display_name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The name of the log. It must be less than 512 characters long and can + * include the following characters: upper- and lower-case alphanumeric + * characters [A-Za-z0-9], and punctuation characters including + * slash, underscore, hyphen, period [/_-.]. + * @type array<\Google\Api\LabelDescriptor>|\Google\Protobuf\Internal\RepeatedField $labels + * The set of labels that are available to describe a specific log entry. + * Runtime requests that contain labels not specified here are + * considered invalid. + * @type string $description + * A human-readable description of this log. This information appears in + * the documentation and can contain details. + * @type string $display_name + * The human-readable name for this log. This information appears on + * the user interface and should be concise. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Log::initOnce(); + parent::__construct($data); + } + + /** + * The name of the log. It must be less than 512 characters long and can + * include the following characters: upper- and lower-case alphanumeric + * characters [A-Za-z0-9], and punctuation characters including + * slash, underscore, hyphen, period [/_-.]. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The name of the log. It must be less than 512 characters long and can + * include the following characters: upper- and lower-case alphanumeric + * characters [A-Za-z0-9], and punctuation characters including + * slash, underscore, hyphen, period [/_-.]. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The set of labels that are available to describe a specific log entry. + * Runtime requests that contain labels not specified here are + * considered invalid. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * The set of labels that are available to describe a specific log entry. + * Runtime requests that contain labels not specified here are + * considered invalid. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; + * @param array<\Google\Api\LabelDescriptor>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LabelDescriptor::class); + $this->labels = $arr; + + return $this; + } + + /** + * A human-readable description of this log. This information appears in + * the documentation and can contain details. + * + * Generated from protobuf field string description = 3; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * A human-readable description of this log. This information appears in + * the documentation and can contain details. + * + * Generated from protobuf field string description = 3; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * The human-readable name for this log. This information appears on + * the user interface and should be concise. + * + * Generated from protobuf field string display_name = 4; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * The human-readable name for this log. This information appears on + * the user interface and should be concise. + * + * Generated from protobuf field string display_name = 4; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Logging.php b/vendor/google/common-protos/src/Api/Logging.php new file mode 100644 index 0000000..52198c1 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Logging.php @@ -0,0 +1,151 @@ +google.api.Logging + */ +class Logging extends \Google\Protobuf\Internal\Message +{ + /** + * Logging configurations for sending logs to the producer project. + * There can be multiple producer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one producer destination. + * + * Generated from protobuf field repeated .google.api.Logging.LoggingDestination producer_destinations = 1; + */ + private $producer_destinations; + /** + * Logging configurations for sending logs to the consumer project. + * There can be multiple consumer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one consumer destination. + * + * Generated from protobuf field repeated .google.api.Logging.LoggingDestination consumer_destinations = 2; + */ + private $consumer_destinations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\Logging\LoggingDestination>|\Google\Protobuf\Internal\RepeatedField $producer_destinations + * Logging configurations for sending logs to the producer project. + * There can be multiple producer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one producer destination. + * @type array<\Google\Api\Logging\LoggingDestination>|\Google\Protobuf\Internal\RepeatedField $consumer_destinations + * Logging configurations for sending logs to the consumer project. + * There can be multiple consumer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one consumer destination. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Logging::initOnce(); + parent::__construct($data); + } + + /** + * Logging configurations for sending logs to the producer project. + * There can be multiple producer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one producer destination. + * + * Generated from protobuf field repeated .google.api.Logging.LoggingDestination producer_destinations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getProducerDestinations() + { + return $this->producer_destinations; + } + + /** + * Logging configurations for sending logs to the producer project. + * There can be multiple producer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one producer destination. + * + * Generated from protobuf field repeated .google.api.Logging.LoggingDestination producer_destinations = 1; + * @param array<\Google\Api\Logging\LoggingDestination>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setProducerDestinations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Logging\LoggingDestination::class); + $this->producer_destinations = $arr; + + return $this; + } + + /** + * Logging configurations for sending logs to the consumer project. + * There can be multiple consumer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one consumer destination. + * + * Generated from protobuf field repeated .google.api.Logging.LoggingDestination consumer_destinations = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConsumerDestinations() + { + return $this->consumer_destinations; + } + + /** + * Logging configurations for sending logs to the consumer project. + * There can be multiple consumer destinations, each one must have a + * different monitored resource type. A log can be used in at most + * one consumer destination. + * + * Generated from protobuf field repeated .google.api.Logging.LoggingDestination consumer_destinations = 2; + * @param array<\Google\Api\Logging\LoggingDestination>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConsumerDestinations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Logging\LoggingDestination::class); + $this->consumer_destinations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Logging/LoggingDestination.php b/vendor/google/common-protos/src/Api/Logging/LoggingDestination.php new file mode 100644 index 0000000..22d2e91 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Logging/LoggingDestination.php @@ -0,0 +1,123 @@ +google.api.Logging.LoggingDestination + */ +class LoggingDestination extends \Google\Protobuf\Internal\Message +{ + /** + * The monitored resource type. The type must be defined in the + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 3; + */ + protected $monitored_resource = ''; + /** + * Names of the logs to be sent to this destination. Each name must + * be defined in the [Service.logs][google.api.Service.logs] section. If the + * log name is not a domain scoped name, it will be automatically prefixed + * with the service name followed by "/". + * + * Generated from protobuf field repeated string logs = 1; + */ + private $logs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $monitored_resource + * The monitored resource type. The type must be defined in the + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * @type array|\Google\Protobuf\Internal\RepeatedField $logs + * Names of the logs to be sent to this destination. Each name must + * be defined in the [Service.logs][google.api.Service.logs] section. If the + * log name is not a domain scoped name, it will be automatically prefixed + * with the service name followed by "/". + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Logging::initOnce(); + parent::__construct($data); + } + + /** + * The monitored resource type. The type must be defined in the + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 3; + * @return string + */ + public function getMonitoredResource() + { + return $this->monitored_resource; + } + + /** + * The monitored resource type. The type must be defined in the + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 3; + * @param string $var + * @return $this + */ + public function setMonitoredResource($var) + { + GPBUtil::checkString($var, True); + $this->monitored_resource = $var; + + return $this; + } + + /** + * Names of the logs to be sent to this destination. Each name must + * be defined in the [Service.logs][google.api.Service.logs] section. If the + * log name is not a domain scoped name, it will be automatically prefixed + * with the service name followed by "/". + * + * Generated from protobuf field repeated string logs = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLogs() + { + return $this->logs; + } + + /** + * Names of the logs to be sent to this destination. Each name must + * be defined in the [Service.logs][google.api.Service.logs] section. If the + * log name is not a domain scoped name, it will be automatically prefixed + * with the service name followed by "/". + * + * Generated from protobuf field repeated string logs = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLogs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->logs = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/MethodPolicy.php b/vendor/google/common-protos/src/Api/MethodPolicy.php new file mode 100644 index 0000000..faeb40a --- /dev/null +++ b/vendor/google/common-protos/src/Api/MethodPolicy.php @@ -0,0 +1,121 @@ +google.api.MethodPolicy + */ +class MethodPolicy extends \Google\Protobuf\Internal\Message +{ + /** + * Selects a method to which these policies should be enforced, for example, + * "google.pubsub.v1.Subscriber.CreateSubscription". + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * NOTE: This field must not be set in the proto annotation. It will be + * automatically filled by the service config compiler . + * + * Generated from protobuf field string selector = 9; + */ + protected $selector = ''; + /** + * Policies that are applicable to the request message. + * + * Generated from protobuf field repeated .google.api.FieldPolicy request_policies = 2; + */ + private $request_policies; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects a method to which these policies should be enforced, for example, + * "google.pubsub.v1.Subscriber.CreateSubscription". + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * NOTE: This field must not be set in the proto annotation. It will be + * automatically filled by the service config compiler . + * @type array<\Google\Api\FieldPolicy>|\Google\Protobuf\Internal\RepeatedField $request_policies + * Policies that are applicable to the request message. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Policy::initOnce(); + parent::__construct($data); + } + + /** + * Selects a method to which these policies should be enforced, for example, + * "google.pubsub.v1.Subscriber.CreateSubscription". + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * NOTE: This field must not be set in the proto annotation. It will be + * automatically filled by the service config compiler . + * + * Generated from protobuf field string selector = 9; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects a method to which these policies should be enforced, for example, + * "google.pubsub.v1.Subscriber.CreateSubscription". + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * NOTE: This field must not be set in the proto annotation. It will be + * automatically filled by the service config compiler . + * + * Generated from protobuf field string selector = 9; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Policies that are applicable to the request message. + * + * Generated from protobuf field repeated .google.api.FieldPolicy request_policies = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRequestPolicies() + { + return $this->request_policies; + } + + /** + * Policies that are applicable to the request message. + * + * Generated from protobuf field repeated .google.api.FieldPolicy request_policies = 2; + * @param array<\Google\Api\FieldPolicy>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRequestPolicies($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\FieldPolicy::class); + $this->request_policies = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MethodSettings.php b/vendor/google/common-protos/src/Api/MethodSettings.php new file mode 100644 index 0000000..0e95d50 --- /dev/null +++ b/vendor/google/common-protos/src/Api/MethodSettings.php @@ -0,0 +1,245 @@ +google.api.MethodSettings + */ +class MethodSettings extends \Google\Protobuf\Internal\Message +{ + /** + * The fully qualified name of the method, for which the options below apply. + * This is used to find the method to apply the options. + * Example: + * publishing: + * method_settings: + * - selector: google.storage.control.v2.StorageControl.CreateFolder + * # method settings for CreateFolder... + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * Describes settings to use for long-running operations when generating + * API methods for RPCs. Complements RPCs that use the annotations in + * google/longrunning/operations.proto. + * Example of a YAML configuration:: + * publishing: + * method_settings: + * - selector: google.cloud.speech.v2.Speech.BatchRecognize + * long_running: + * initial_poll_delay: 60s # 1 minute + * poll_delay_multiplier: 1.5 + * max_poll_delay: 360s # 6 minutes + * total_poll_timeout: 54000s # 90 minutes + * + * Generated from protobuf field .google.api.MethodSettings.LongRunning long_running = 2; + */ + protected $long_running = null; + /** + * List of top-level fields of the request message, that should be + * automatically populated by the client libraries based on their + * (google.api.field_info).format. Currently supported format: UUID4. + * Example of a YAML configuration: + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.CreateExample + * auto_populated_fields: + * - request_id + * + * Generated from protobuf field repeated string auto_populated_fields = 3; + */ + private $auto_populated_fields; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * The fully qualified name of the method, for which the options below apply. + * This is used to find the method to apply the options. + * Example: + * publishing: + * method_settings: + * - selector: google.storage.control.v2.StorageControl.CreateFolder + * # method settings for CreateFolder... + * @type \Google\Api\MethodSettings\LongRunning $long_running + * Describes settings to use for long-running operations when generating + * API methods for RPCs. Complements RPCs that use the annotations in + * google/longrunning/operations.proto. + * Example of a YAML configuration:: + * publishing: + * method_settings: + * - selector: google.cloud.speech.v2.Speech.BatchRecognize + * long_running: + * initial_poll_delay: 60s # 1 minute + * poll_delay_multiplier: 1.5 + * max_poll_delay: 360s # 6 minutes + * total_poll_timeout: 54000s # 90 minutes + * @type array|\Google\Protobuf\Internal\RepeatedField $auto_populated_fields + * List of top-level fields of the request message, that should be + * automatically populated by the client libraries based on their + * (google.api.field_info).format. Currently supported format: UUID4. + * Example of a YAML configuration: + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.CreateExample + * auto_populated_fields: + * - request_id + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * The fully qualified name of the method, for which the options below apply. + * This is used to find the method to apply the options. + * Example: + * publishing: + * method_settings: + * - selector: google.storage.control.v2.StorageControl.CreateFolder + * # method settings for CreateFolder... + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * The fully qualified name of the method, for which the options below apply. + * This is used to find the method to apply the options. + * Example: + * publishing: + * method_settings: + * - selector: google.storage.control.v2.StorageControl.CreateFolder + * # method settings for CreateFolder... + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Describes settings to use for long-running operations when generating + * API methods for RPCs. Complements RPCs that use the annotations in + * google/longrunning/operations.proto. + * Example of a YAML configuration:: + * publishing: + * method_settings: + * - selector: google.cloud.speech.v2.Speech.BatchRecognize + * long_running: + * initial_poll_delay: 60s # 1 minute + * poll_delay_multiplier: 1.5 + * max_poll_delay: 360s # 6 minutes + * total_poll_timeout: 54000s # 90 minutes + * + * Generated from protobuf field .google.api.MethodSettings.LongRunning long_running = 2; + * @return \Google\Api\MethodSettings\LongRunning|null + */ + public function getLongRunning() + { + return $this->long_running; + } + + public function hasLongRunning() + { + return isset($this->long_running); + } + + public function clearLongRunning() + { + unset($this->long_running); + } + + /** + * Describes settings to use for long-running operations when generating + * API methods for RPCs. Complements RPCs that use the annotations in + * google/longrunning/operations.proto. + * Example of a YAML configuration:: + * publishing: + * method_settings: + * - selector: google.cloud.speech.v2.Speech.BatchRecognize + * long_running: + * initial_poll_delay: 60s # 1 minute + * poll_delay_multiplier: 1.5 + * max_poll_delay: 360s # 6 minutes + * total_poll_timeout: 54000s # 90 minutes + * + * Generated from protobuf field .google.api.MethodSettings.LongRunning long_running = 2; + * @param \Google\Api\MethodSettings\LongRunning $var + * @return $this + */ + public function setLongRunning($var) + { + GPBUtil::checkMessage($var, \Google\Api\MethodSettings\LongRunning::class); + $this->long_running = $var; + + return $this; + } + + /** + * List of top-level fields of the request message, that should be + * automatically populated by the client libraries based on their + * (google.api.field_info).format. Currently supported format: UUID4. + * Example of a YAML configuration: + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.CreateExample + * auto_populated_fields: + * - request_id + * + * Generated from protobuf field repeated string auto_populated_fields = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAutoPopulatedFields() + { + return $this->auto_populated_fields; + } + + /** + * List of top-level fields of the request message, that should be + * automatically populated by the client libraries based on their + * (google.api.field_info).format. Currently supported format: UUID4. + * Example of a YAML configuration: + * publishing: + * method_settings: + * - selector: google.example.v1.ExampleService.CreateExample + * auto_populated_fields: + * - request_id + * + * Generated from protobuf field repeated string auto_populated_fields = 3; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAutoPopulatedFields($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->auto_populated_fields = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MethodSettings/LongRunning.php b/vendor/google/common-protos/src/Api/MethodSettings/LongRunning.php new file mode 100644 index 0000000..eba2265 --- /dev/null +++ b/vendor/google/common-protos/src/Api/MethodSettings/LongRunning.php @@ -0,0 +1,224 @@ +google.api.MethodSettings.LongRunning + */ +class LongRunning extends \Google\Protobuf\Internal\Message +{ + /** + * Initial delay after which the first poll request will be made. + * Default value: 5 seconds. + * + * Generated from protobuf field .google.protobuf.Duration initial_poll_delay = 1; + */ + protected $initial_poll_delay = null; + /** + * Multiplier to gradually increase delay between subsequent polls until it + * reaches max_poll_delay. + * Default value: 1.5. + * + * Generated from protobuf field float poll_delay_multiplier = 2; + */ + protected $poll_delay_multiplier = 0.0; + /** + * Maximum time between two subsequent poll requests. + * Default value: 45 seconds. + * + * Generated from protobuf field .google.protobuf.Duration max_poll_delay = 3; + */ + protected $max_poll_delay = null; + /** + * Total polling timeout. + * Default value: 5 minutes. + * + * Generated from protobuf field .google.protobuf.Duration total_poll_timeout = 4; + */ + protected $total_poll_timeout = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Protobuf\Duration $initial_poll_delay + * Initial delay after which the first poll request will be made. + * Default value: 5 seconds. + * @type float $poll_delay_multiplier + * Multiplier to gradually increase delay between subsequent polls until it + * reaches max_poll_delay. + * Default value: 1.5. + * @type \Google\Protobuf\Duration $max_poll_delay + * Maximum time between two subsequent poll requests. + * Default value: 45 seconds. + * @type \Google\Protobuf\Duration $total_poll_timeout + * Total polling timeout. + * Default value: 5 minutes. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Initial delay after which the first poll request will be made. + * Default value: 5 seconds. + * + * Generated from protobuf field .google.protobuf.Duration initial_poll_delay = 1; + * @return \Google\Protobuf\Duration|null + */ + public function getInitialPollDelay() + { + return $this->initial_poll_delay; + } + + public function hasInitialPollDelay() + { + return isset($this->initial_poll_delay); + } + + public function clearInitialPollDelay() + { + unset($this->initial_poll_delay); + } + + /** + * Initial delay after which the first poll request will be made. + * Default value: 5 seconds. + * + * Generated from protobuf field .google.protobuf.Duration initial_poll_delay = 1; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setInitialPollDelay($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->initial_poll_delay = $var; + + return $this; + } + + /** + * Multiplier to gradually increase delay between subsequent polls until it + * reaches max_poll_delay. + * Default value: 1.5. + * + * Generated from protobuf field float poll_delay_multiplier = 2; + * @return float + */ + public function getPollDelayMultiplier() + { + return $this->poll_delay_multiplier; + } + + /** + * Multiplier to gradually increase delay between subsequent polls until it + * reaches max_poll_delay. + * Default value: 1.5. + * + * Generated from protobuf field float poll_delay_multiplier = 2; + * @param float $var + * @return $this + */ + public function setPollDelayMultiplier($var) + { + GPBUtil::checkFloat($var); + $this->poll_delay_multiplier = $var; + + return $this; + } + + /** + * Maximum time between two subsequent poll requests. + * Default value: 45 seconds. + * + * Generated from protobuf field .google.protobuf.Duration max_poll_delay = 3; + * @return \Google\Protobuf\Duration|null + */ + public function getMaxPollDelay() + { + return $this->max_poll_delay; + } + + public function hasMaxPollDelay() + { + return isset($this->max_poll_delay); + } + + public function clearMaxPollDelay() + { + unset($this->max_poll_delay); + } + + /** + * Maximum time between two subsequent poll requests. + * Default value: 45 seconds. + * + * Generated from protobuf field .google.protobuf.Duration max_poll_delay = 3; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setMaxPollDelay($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->max_poll_delay = $var; + + return $this; + } + + /** + * Total polling timeout. + * Default value: 5 minutes. + * + * Generated from protobuf field .google.protobuf.Duration total_poll_timeout = 4; + * @return \Google\Protobuf\Duration|null + */ + public function getTotalPollTimeout() + { + return $this->total_poll_timeout; + } + + public function hasTotalPollTimeout() + { + return isset($this->total_poll_timeout); + } + + public function clearTotalPollTimeout() + { + unset($this->total_poll_timeout); + } + + /** + * Total polling timeout. + * Default value: 5 minutes. + * + * Generated from protobuf field .google.protobuf.Duration total_poll_timeout = 4; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setTotalPollTimeout($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->total_poll_timeout = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Metric.php b/vendor/google/common-protos/src/Api/Metric.php new file mode 100644 index 0000000..488552f --- /dev/null +++ b/vendor/google/common-protos/src/Api/Metric.php @@ -0,0 +1,114 @@ +google.api.Metric + */ +class Metric extends \Google\Protobuf\Internal\Message +{ + /** + * An existing metric type, see + * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, + * `custom.googleapis.com/invoice/paid/amount`. + * + * Generated from protobuf field string type = 3; + */ + protected $type = ''; + /** + * The set of label values that uniquely identify this metric. All + * labels listed in the `MetricDescriptor` must be assigned values. + * + * Generated from protobuf field map labels = 2; + */ + private $labels; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $type + * An existing metric type, see + * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, + * `custom.googleapis.com/invoice/paid/amount`. + * @type array|\Google\Protobuf\Internal\MapField $labels + * The set of label values that uniquely identify this metric. All + * labels listed in the `MetricDescriptor` must be assigned values. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Metric::initOnce(); + parent::__construct($data); + } + + /** + * An existing metric type, see + * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, + * `custom.googleapis.com/invoice/paid/amount`. + * + * Generated from protobuf field string type = 3; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * An existing metric type, see + * [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, + * `custom.googleapis.com/invoice/paid/amount`. + * + * Generated from protobuf field string type = 3; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * The set of label values that uniquely identify this metric. All + * labels listed in the `MetricDescriptor` must be assigned values. + * + * Generated from protobuf field map labels = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * The set of label values that uniquely identify this metric. All + * labels listed in the `MetricDescriptor` must be assigned values. + * + * Generated from protobuf field map labels = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->labels = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MetricDescriptor.php b/vendor/google/common-protos/src/Api/MetricDescriptor.php new file mode 100644 index 0000000..b8a39d6 --- /dev/null +++ b/vendor/google/common-protos/src/Api/MetricDescriptor.php @@ -0,0 +1,831 @@ +google.api.MetricDescriptor + */ +class MetricDescriptor extends \Google\Protobuf\Internal\Message +{ + /** + * The resource name of the metric descriptor. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The metric type, including its DNS name prefix. The type is not + * URL-encoded. All user-defined metric types have the DNS name + * `custom.googleapis.com` or `external.googleapis.com`. Metric types should + * use a natural hierarchical grouping. For example: + * "custom.googleapis.com/invoice/paid/amount" + * "external.googleapis.com/prometheus/up" + * "appengine.googleapis.com/http/server/response_latencies" + * + * Generated from protobuf field string type = 8; + */ + protected $type = ''; + /** + * The set of labels that can be used to describe a specific + * instance of this metric type. For example, the + * `appengine.googleapis.com/http/server/response_latencies` metric + * type has a label for the HTTP response code, `response_code`, so + * you can look at latencies for successful responses or just + * for responses that failed. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; + */ + private $labels; + /** + * Whether the metric records instantaneous values, changes to a value, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * + * Generated from protobuf field .google.api.MetricDescriptor.MetricKind metric_kind = 3; + */ + protected $metric_kind = 0; + /** + * Whether the measurement is an integer, a floating-point number, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * + * Generated from protobuf field .google.api.MetricDescriptor.ValueType value_type = 4; + */ + protected $value_type = 0; + /** + * The units in which the metric value is reported. It is only applicable + * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` + * defines the representation of the stored metric values. + * Different systems might scale the values to be more easily displayed (so a + * value of `0.02kBy` _might_ be displayed as `20By`, and a value of + * `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is + * `kBy`, then the value of the metric is always in thousands of bytes, no + * matter how it might be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used + * by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is + * `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 + * CPU-seconds, then the value is written as `12005`. + * Alternatively, if you want a custom metric to record data in a more + * granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is + * `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), + * or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). + * The supported units are a subset of [The Unified Code for Units of + * Measure](https://unitsofmeasure.org/ucum.html) standard: + * **Basic units (UNIT)** + * * `bit` bit + * * `By` byte + * * `s` second + * * `min` minute + * * `h` hour + * * `d` day + * * `1` dimensionless + * **Prefixes (PREFIX)** + * * `k` kilo (10^3) + * * `M` mega (10^6) + * * `G` giga (10^9) + * * `T` tera (10^12) + * * `P` peta (10^15) + * * `E` exa (10^18) + * * `Z` zetta (10^21) + * * `Y` yotta (10^24) + * * `m` milli (10^-3) + * * `u` micro (10^-6) + * * `n` nano (10^-9) + * * `p` pico (10^-12) + * * `f` femto (10^-15) + * * `a` atto (10^-18) + * * `z` zepto (10^-21) + * * `y` yocto (10^-24) + * * `Ki` kibi (2^10) + * * `Mi` mebi (2^20) + * * `Gi` gibi (2^30) + * * `Ti` tebi (2^40) + * * `Pi` pebi (2^50) + * **Grammar** + * The grammar also includes these connectors: + * * `/` division or ratio (as an infix operator). For examples, + * `kBy/{email}` or `MiBy/10ms` (although you should almost never + * have `/s` in a metric `unit`; rates should always be computed at + * query time from the underlying cumulative or delta value). + * * `.` multiplication or composition (as an infix operator). For + * examples, `GBy.d` or `k{watt}.h`. + * The grammar for a unit is as follows: + * Expression = Component { "." Component } { "/" Component } ; + * Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] + * | Annotation + * | "1" + * ; + * Annotation = "{" NAME "}" ; + * Notes: + * * `Annotation` is just a comment if it follows a `UNIT`. If the annotation + * is used alone, then the unit is equivalent to `1`. For examples, + * `{request}/s == 1/s`, `By{transmitted}/s == By/s`. + * * `NAME` is a sequence of non-blank printable ASCII characters not + * containing `{` or `}`. + * * `1` represents a unitary [dimensionless + * unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such + * as in `1/s`. It is typically used when none of the basic units are + * appropriate. For example, "new users per day" can be represented as + * `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new + * users). Alternatively, "thousands of page views per day" would be + * represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric + * value of `5.3` would mean "5300 page views per day"). + * * `%` represents dimensionless value of 1/100, and annotates values giving + * a percentage (so the metric values are typically in the range of 0..100, + * and a metric value `3` means "3 percent"). + * * `10^2.%` indicates a metric contains a ratio, typically in the range + * 0..1, that will be multiplied by 100 and displayed as a percentage + * (so a metric value `0.03` means "3 percent"). + * + * Generated from protobuf field string unit = 5; + */ + protected $unit = ''; + /** + * A detailed description of the metric, which can be used in documentation. + * + * Generated from protobuf field string description = 6; + */ + protected $description = ''; + /** + * A concise name for the metric, which can be displayed in user interfaces. + * Use sentence case without an ending period, for example "Request count". + * This field is optional but it is recommended to be set for any metrics + * associated with user-visible concepts, such as Quota. + * + * Generated from protobuf field string display_name = 7; + */ + protected $display_name = ''; + /** + * Optional. Metadata which can be used to guide usage of the metric. + * + * Generated from protobuf field .google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10; + */ + protected $metadata = null; + /** + * Optional. The launch stage of the metric definition. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 12; + */ + protected $launch_stage = 0; + /** + * Read-only. If present, then a [time + * series][google.monitoring.v3.TimeSeries], which is identified partially by + * a metric type and a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that + * is associated with this metric type can only be associated with one of the + * monitored resource types listed here. + * + * Generated from protobuf field repeated string monitored_resource_types = 13; + */ + private $monitored_resource_types; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The resource name of the metric descriptor. + * @type string $type + * The metric type, including its DNS name prefix. The type is not + * URL-encoded. All user-defined metric types have the DNS name + * `custom.googleapis.com` or `external.googleapis.com`. Metric types should + * use a natural hierarchical grouping. For example: + * "custom.googleapis.com/invoice/paid/amount" + * "external.googleapis.com/prometheus/up" + * "appengine.googleapis.com/http/server/response_latencies" + * @type array<\Google\Api\LabelDescriptor>|\Google\Protobuf\Internal\RepeatedField $labels + * The set of labels that can be used to describe a specific + * instance of this metric type. For example, the + * `appengine.googleapis.com/http/server/response_latencies` metric + * type has a label for the HTTP response code, `response_code`, so + * you can look at latencies for successful responses or just + * for responses that failed. + * @type int $metric_kind + * Whether the metric records instantaneous values, changes to a value, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * @type int $value_type + * Whether the measurement is an integer, a floating-point number, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * @type string $unit + * The units in which the metric value is reported. It is only applicable + * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` + * defines the representation of the stored metric values. + * Different systems might scale the values to be more easily displayed (so a + * value of `0.02kBy` _might_ be displayed as `20By`, and a value of + * `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is + * `kBy`, then the value of the metric is always in thousands of bytes, no + * matter how it might be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used + * by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is + * `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 + * CPU-seconds, then the value is written as `12005`. + * Alternatively, if you want a custom metric to record data in a more + * granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is + * `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), + * or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). + * The supported units are a subset of [The Unified Code for Units of + * Measure](https://unitsofmeasure.org/ucum.html) standard: + * **Basic units (UNIT)** + * * `bit` bit + * * `By` byte + * * `s` second + * * `min` minute + * * `h` hour + * * `d` day + * * `1` dimensionless + * **Prefixes (PREFIX)** + * * `k` kilo (10^3) + * * `M` mega (10^6) + * * `G` giga (10^9) + * * `T` tera (10^12) + * * `P` peta (10^15) + * * `E` exa (10^18) + * * `Z` zetta (10^21) + * * `Y` yotta (10^24) + * * `m` milli (10^-3) + * * `u` micro (10^-6) + * * `n` nano (10^-9) + * * `p` pico (10^-12) + * * `f` femto (10^-15) + * * `a` atto (10^-18) + * * `z` zepto (10^-21) + * * `y` yocto (10^-24) + * * `Ki` kibi (2^10) + * * `Mi` mebi (2^20) + * * `Gi` gibi (2^30) + * * `Ti` tebi (2^40) + * * `Pi` pebi (2^50) + * **Grammar** + * The grammar also includes these connectors: + * * `/` division or ratio (as an infix operator). For examples, + * `kBy/{email}` or `MiBy/10ms` (although you should almost never + * have `/s` in a metric `unit`; rates should always be computed at + * query time from the underlying cumulative or delta value). + * * `.` multiplication or composition (as an infix operator). For + * examples, `GBy.d` or `k{watt}.h`. + * The grammar for a unit is as follows: + * Expression = Component { "." Component } { "/" Component } ; + * Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] + * | Annotation + * | "1" + * ; + * Annotation = "{" NAME "}" ; + * Notes: + * * `Annotation` is just a comment if it follows a `UNIT`. If the annotation + * is used alone, then the unit is equivalent to `1`. For examples, + * `{request}/s == 1/s`, `By{transmitted}/s == By/s`. + * * `NAME` is a sequence of non-blank printable ASCII characters not + * containing `{` or `}`. + * * `1` represents a unitary [dimensionless + * unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such + * as in `1/s`. It is typically used when none of the basic units are + * appropriate. For example, "new users per day" can be represented as + * `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new + * users). Alternatively, "thousands of page views per day" would be + * represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric + * value of `5.3` would mean "5300 page views per day"). + * * `%` represents dimensionless value of 1/100, and annotates values giving + * a percentage (so the metric values are typically in the range of 0..100, + * and a metric value `3` means "3 percent"). + * * `10^2.%` indicates a metric contains a ratio, typically in the range + * 0..1, that will be multiplied by 100 and displayed as a percentage + * (so a metric value `0.03` means "3 percent"). + * @type string $description + * A detailed description of the metric, which can be used in documentation. + * @type string $display_name + * A concise name for the metric, which can be displayed in user interfaces. + * Use sentence case without an ending period, for example "Request count". + * This field is optional but it is recommended to be set for any metrics + * associated with user-visible concepts, such as Quota. + * @type \Google\Api\MetricDescriptor\MetricDescriptorMetadata $metadata + * Optional. Metadata which can be used to guide usage of the metric. + * @type int $launch_stage + * Optional. The launch stage of the metric definition. + * @type array|\Google\Protobuf\Internal\RepeatedField $monitored_resource_types + * Read-only. If present, then a [time + * series][google.monitoring.v3.TimeSeries], which is identified partially by + * a metric type and a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that + * is associated with this metric type can only be associated with one of the + * monitored resource types listed here. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Metric::initOnce(); + parent::__construct($data); + } + + /** + * The resource name of the metric descriptor. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The resource name of the metric descriptor. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The metric type, including its DNS name prefix. The type is not + * URL-encoded. All user-defined metric types have the DNS name + * `custom.googleapis.com` or `external.googleapis.com`. Metric types should + * use a natural hierarchical grouping. For example: + * "custom.googleapis.com/invoice/paid/amount" + * "external.googleapis.com/prometheus/up" + * "appengine.googleapis.com/http/server/response_latencies" + * + * Generated from protobuf field string type = 8; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * The metric type, including its DNS name prefix. The type is not + * URL-encoded. All user-defined metric types have the DNS name + * `custom.googleapis.com` or `external.googleapis.com`. Metric types should + * use a natural hierarchical grouping. For example: + * "custom.googleapis.com/invoice/paid/amount" + * "external.googleapis.com/prometheus/up" + * "appengine.googleapis.com/http/server/response_latencies" + * + * Generated from protobuf field string type = 8; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * The set of labels that can be used to describe a specific + * instance of this metric type. For example, the + * `appengine.googleapis.com/http/server/response_latencies` metric + * type has a label for the HTTP response code, `response_code`, so + * you can look at latencies for successful responses or just + * for responses that failed. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * The set of labels that can be used to describe a specific + * instance of this metric type. For example, the + * `appengine.googleapis.com/http/server/response_latencies` metric + * type has a label for the HTTP response code, `response_code`, so + * you can look at latencies for successful responses or just + * for responses that failed. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 2; + * @param array<\Google\Api\LabelDescriptor>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LabelDescriptor::class); + $this->labels = $arr; + + return $this; + } + + /** + * Whether the metric records instantaneous values, changes to a value, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * + * Generated from protobuf field .google.api.MetricDescriptor.MetricKind metric_kind = 3; + * @return int + */ + public function getMetricKind() + { + return $this->metric_kind; + } + + /** + * Whether the metric records instantaneous values, changes to a value, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * + * Generated from protobuf field .google.api.MetricDescriptor.MetricKind metric_kind = 3; + * @param int $var + * @return $this + */ + public function setMetricKind($var) + { + GPBUtil::checkEnum($var, \Google\Api\MetricDescriptor\MetricKind::class); + $this->metric_kind = $var; + + return $this; + } + + /** + * Whether the measurement is an integer, a floating-point number, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * + * Generated from protobuf field .google.api.MetricDescriptor.ValueType value_type = 4; + * @return int + */ + public function getValueType() + { + return $this->value_type; + } + + /** + * Whether the measurement is an integer, a floating-point number, etc. + * Some combinations of `metric_kind` and `value_type` might not be supported. + * + * Generated from protobuf field .google.api.MetricDescriptor.ValueType value_type = 4; + * @param int $var + * @return $this + */ + public function setValueType($var) + { + GPBUtil::checkEnum($var, \Google\Api\MetricDescriptor\ValueType::class); + $this->value_type = $var; + + return $this; + } + + /** + * The units in which the metric value is reported. It is only applicable + * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` + * defines the representation of the stored metric values. + * Different systems might scale the values to be more easily displayed (so a + * value of `0.02kBy` _might_ be displayed as `20By`, and a value of + * `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is + * `kBy`, then the value of the metric is always in thousands of bytes, no + * matter how it might be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used + * by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is + * `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 + * CPU-seconds, then the value is written as `12005`. + * Alternatively, if you want a custom metric to record data in a more + * granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is + * `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), + * or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). + * The supported units are a subset of [The Unified Code for Units of + * Measure](https://unitsofmeasure.org/ucum.html) standard: + * **Basic units (UNIT)** + * * `bit` bit + * * `By` byte + * * `s` second + * * `min` minute + * * `h` hour + * * `d` day + * * `1` dimensionless + * **Prefixes (PREFIX)** + * * `k` kilo (10^3) + * * `M` mega (10^6) + * * `G` giga (10^9) + * * `T` tera (10^12) + * * `P` peta (10^15) + * * `E` exa (10^18) + * * `Z` zetta (10^21) + * * `Y` yotta (10^24) + * * `m` milli (10^-3) + * * `u` micro (10^-6) + * * `n` nano (10^-9) + * * `p` pico (10^-12) + * * `f` femto (10^-15) + * * `a` atto (10^-18) + * * `z` zepto (10^-21) + * * `y` yocto (10^-24) + * * `Ki` kibi (2^10) + * * `Mi` mebi (2^20) + * * `Gi` gibi (2^30) + * * `Ti` tebi (2^40) + * * `Pi` pebi (2^50) + * **Grammar** + * The grammar also includes these connectors: + * * `/` division or ratio (as an infix operator). For examples, + * `kBy/{email}` or `MiBy/10ms` (although you should almost never + * have `/s` in a metric `unit`; rates should always be computed at + * query time from the underlying cumulative or delta value). + * * `.` multiplication or composition (as an infix operator). For + * examples, `GBy.d` or `k{watt}.h`. + * The grammar for a unit is as follows: + * Expression = Component { "." Component } { "/" Component } ; + * Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] + * | Annotation + * | "1" + * ; + * Annotation = "{" NAME "}" ; + * Notes: + * * `Annotation` is just a comment if it follows a `UNIT`. If the annotation + * is used alone, then the unit is equivalent to `1`. For examples, + * `{request}/s == 1/s`, `By{transmitted}/s == By/s`. + * * `NAME` is a sequence of non-blank printable ASCII characters not + * containing `{` or `}`. + * * `1` represents a unitary [dimensionless + * unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such + * as in `1/s`. It is typically used when none of the basic units are + * appropriate. For example, "new users per day" can be represented as + * `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new + * users). Alternatively, "thousands of page views per day" would be + * represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric + * value of `5.3` would mean "5300 page views per day"). + * * `%` represents dimensionless value of 1/100, and annotates values giving + * a percentage (so the metric values are typically in the range of 0..100, + * and a metric value `3` means "3 percent"). + * * `10^2.%` indicates a metric contains a ratio, typically in the range + * 0..1, that will be multiplied by 100 and displayed as a percentage + * (so a metric value `0.03` means "3 percent"). + * + * Generated from protobuf field string unit = 5; + * @return string + */ + public function getUnit() + { + return $this->unit; + } + + /** + * The units in which the metric value is reported. It is only applicable + * if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The `unit` + * defines the representation of the stored metric values. + * Different systems might scale the values to be more easily displayed (so a + * value of `0.02kBy` _might_ be displayed as `20By`, and a value of + * `3523kBy` _might_ be displayed as `3.5MBy`). However, if the `unit` is + * `kBy`, then the value of the metric is always in thousands of bytes, no + * matter how it might be displayed. + * If you want a custom metric to record the exact number of CPU-seconds used + * by a job, you can create an `INT64 CUMULATIVE` metric whose `unit` is + * `s{CPU}` (or equivalently `1s{CPU}` or just `s`). If the job uses 12,005 + * CPU-seconds, then the value is written as `12005`. + * Alternatively, if you want a custom metric to record data in a more + * granular way, you can create a `DOUBLE CUMULATIVE` metric whose `unit` is + * `ks{CPU}`, and then write the value `12.005` (which is `12005/1000`), + * or use `Kis{CPU}` and write `11.723` (which is `12005/1024`). + * The supported units are a subset of [The Unified Code for Units of + * Measure](https://unitsofmeasure.org/ucum.html) standard: + * **Basic units (UNIT)** + * * `bit` bit + * * `By` byte + * * `s` second + * * `min` minute + * * `h` hour + * * `d` day + * * `1` dimensionless + * **Prefixes (PREFIX)** + * * `k` kilo (10^3) + * * `M` mega (10^6) + * * `G` giga (10^9) + * * `T` tera (10^12) + * * `P` peta (10^15) + * * `E` exa (10^18) + * * `Z` zetta (10^21) + * * `Y` yotta (10^24) + * * `m` milli (10^-3) + * * `u` micro (10^-6) + * * `n` nano (10^-9) + * * `p` pico (10^-12) + * * `f` femto (10^-15) + * * `a` atto (10^-18) + * * `z` zepto (10^-21) + * * `y` yocto (10^-24) + * * `Ki` kibi (2^10) + * * `Mi` mebi (2^20) + * * `Gi` gibi (2^30) + * * `Ti` tebi (2^40) + * * `Pi` pebi (2^50) + * **Grammar** + * The grammar also includes these connectors: + * * `/` division or ratio (as an infix operator). For examples, + * `kBy/{email}` or `MiBy/10ms` (although you should almost never + * have `/s` in a metric `unit`; rates should always be computed at + * query time from the underlying cumulative or delta value). + * * `.` multiplication or composition (as an infix operator). For + * examples, `GBy.d` or `k{watt}.h`. + * The grammar for a unit is as follows: + * Expression = Component { "." Component } { "/" Component } ; + * Component = ( [ PREFIX ] UNIT | "%" ) [ Annotation ] + * | Annotation + * | "1" + * ; + * Annotation = "{" NAME "}" ; + * Notes: + * * `Annotation` is just a comment if it follows a `UNIT`. If the annotation + * is used alone, then the unit is equivalent to `1`. For examples, + * `{request}/s == 1/s`, `By{transmitted}/s == By/s`. + * * `NAME` is a sequence of non-blank printable ASCII characters not + * containing `{` or `}`. + * * `1` represents a unitary [dimensionless + * unit](https://en.wikipedia.org/wiki/Dimensionless_quantity) of 1, such + * as in `1/s`. It is typically used when none of the basic units are + * appropriate. For example, "new users per day" can be represented as + * `1/d` or `{new-users}/d` (and a metric value `5` would mean "5 new + * users). Alternatively, "thousands of page views per day" would be + * represented as `1000/d` or `k1/d` or `k{page_views}/d` (and a metric + * value of `5.3` would mean "5300 page views per day"). + * * `%` represents dimensionless value of 1/100, and annotates values giving + * a percentage (so the metric values are typically in the range of 0..100, + * and a metric value `3` means "3 percent"). + * * `10^2.%` indicates a metric contains a ratio, typically in the range + * 0..1, that will be multiplied by 100 and displayed as a percentage + * (so a metric value `0.03` means "3 percent"). + * + * Generated from protobuf field string unit = 5; + * @param string $var + * @return $this + */ + public function setUnit($var) + { + GPBUtil::checkString($var, True); + $this->unit = $var; + + return $this; + } + + /** + * A detailed description of the metric, which can be used in documentation. + * + * Generated from protobuf field string description = 6; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * A detailed description of the metric, which can be used in documentation. + * + * Generated from protobuf field string description = 6; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * A concise name for the metric, which can be displayed in user interfaces. + * Use sentence case without an ending period, for example "Request count". + * This field is optional but it is recommended to be set for any metrics + * associated with user-visible concepts, such as Quota. + * + * Generated from protobuf field string display_name = 7; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * A concise name for the metric, which can be displayed in user interfaces. + * Use sentence case without an ending period, for example "Request count". + * This field is optional but it is recommended to be set for any metrics + * associated with user-visible concepts, such as Quota. + * + * Generated from protobuf field string display_name = 7; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Optional. Metadata which can be used to guide usage of the metric. + * + * Generated from protobuf field .google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10; + * @return \Google\Api\MetricDescriptor\MetricDescriptorMetadata|null + */ + public function getMetadata() + { + return $this->metadata; + } + + public function hasMetadata() + { + return isset($this->metadata); + } + + public function clearMetadata() + { + unset($this->metadata); + } + + /** + * Optional. Metadata which can be used to guide usage of the metric. + * + * Generated from protobuf field .google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10; + * @param \Google\Api\MetricDescriptor\MetricDescriptorMetadata $var + * @return $this + */ + public function setMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Api\MetricDescriptor\MetricDescriptorMetadata::class); + $this->metadata = $var; + + return $this; + } + + /** + * Optional. The launch stage of the metric definition. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 12; + * @return int + */ + public function getLaunchStage() + { + return $this->launch_stage; + } + + /** + * Optional. The launch stage of the metric definition. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 12; + * @param int $var + * @return $this + */ + public function setLaunchStage($var) + { + GPBUtil::checkEnum($var, \Google\Api\LaunchStage::class); + $this->launch_stage = $var; + + return $this; + } + + /** + * Read-only. If present, then a [time + * series][google.monitoring.v3.TimeSeries], which is identified partially by + * a metric type and a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that + * is associated with this metric type can only be associated with one of the + * monitored resource types listed here. + * + * Generated from protobuf field repeated string monitored_resource_types = 13; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMonitoredResourceTypes() + { + return $this->monitored_resource_types; + } + + /** + * Read-only. If present, then a [time + * series][google.monitoring.v3.TimeSeries], which is identified partially by + * a metric type and a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor], that + * is associated with this metric type can only be associated with one of the + * monitored resource types listed here. + * + * Generated from protobuf field repeated string monitored_resource_types = 13; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMonitoredResourceTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->monitored_resource_types = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata.php b/vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata.php new file mode 100644 index 0000000..d4ce06e --- /dev/null +++ b/vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata.php @@ -0,0 +1,225 @@ +google.api.MetricDescriptor.MetricDescriptorMetadata + */ +class MetricDescriptorMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Deprecated. Must use the + * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] + * instead. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 1 [deprecated = true]; + * @deprecated + */ + protected $launch_stage = 0; + /** + * The sampling period of metric data points. For metrics which are written + * periodically, consecutive data points are stored at this time interval, + * excluding data loss due to errors. Metrics with a higher granularity have + * a smaller sampling period. + * + * Generated from protobuf field .google.protobuf.Duration sample_period = 2; + */ + protected $sample_period = null; + /** + * The delay of data points caused by ingestion. Data points older than this + * age are guaranteed to be ingested and available to be read, excluding + * data loss due to errors. + * + * Generated from protobuf field .google.protobuf.Duration ingest_delay = 3; + */ + protected $ingest_delay = null; + /** + * The scope of the timeseries data of the metric. + * + * Generated from protobuf field repeated .google.api.MetricDescriptor.MetricDescriptorMetadata.TimeSeriesResourceHierarchyLevel time_series_resource_hierarchy_level = 4; + */ + private $time_series_resource_hierarchy_level; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $launch_stage + * Deprecated. Must use the + * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] + * instead. + * @type \Google\Protobuf\Duration $sample_period + * The sampling period of metric data points. For metrics which are written + * periodically, consecutive data points are stored at this time interval, + * excluding data loss due to errors. Metrics with a higher granularity have + * a smaller sampling period. + * @type \Google\Protobuf\Duration $ingest_delay + * The delay of data points caused by ingestion. Data points older than this + * age are guaranteed to be ingested and available to be read, excluding + * data loss due to errors. + * @type array|\Google\Protobuf\Internal\RepeatedField $time_series_resource_hierarchy_level + * The scope of the timeseries data of the metric. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Metric::initOnce(); + parent::__construct($data); + } + + /** + * Deprecated. Must use the + * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] + * instead. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 1 [deprecated = true]; + * @return int + * @deprecated + */ + public function getLaunchStage() + { + if ($this->launch_stage !== 0) { + @trigger_error('launch_stage is deprecated.', E_USER_DEPRECATED); + } + return $this->launch_stage; + } + + /** + * Deprecated. Must use the + * [MetricDescriptor.launch_stage][google.api.MetricDescriptor.launch_stage] + * instead. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 1 [deprecated = true]; + * @param int $var + * @return $this + * @deprecated + */ + public function setLaunchStage($var) + { + @trigger_error('launch_stage is deprecated.', E_USER_DEPRECATED); + GPBUtil::checkEnum($var, \Google\Api\LaunchStage::class); + $this->launch_stage = $var; + + return $this; + } + + /** + * The sampling period of metric data points. For metrics which are written + * periodically, consecutive data points are stored at this time interval, + * excluding data loss due to errors. Metrics with a higher granularity have + * a smaller sampling period. + * + * Generated from protobuf field .google.protobuf.Duration sample_period = 2; + * @return \Google\Protobuf\Duration|null + */ + public function getSamplePeriod() + { + return $this->sample_period; + } + + public function hasSamplePeriod() + { + return isset($this->sample_period); + } + + public function clearSamplePeriod() + { + unset($this->sample_period); + } + + /** + * The sampling period of metric data points. For metrics which are written + * periodically, consecutive data points are stored at this time interval, + * excluding data loss due to errors. Metrics with a higher granularity have + * a smaller sampling period. + * + * Generated from protobuf field .google.protobuf.Duration sample_period = 2; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setSamplePeriod($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->sample_period = $var; + + return $this; + } + + /** + * The delay of data points caused by ingestion. Data points older than this + * age are guaranteed to be ingested and available to be read, excluding + * data loss due to errors. + * + * Generated from protobuf field .google.protobuf.Duration ingest_delay = 3; + * @return \Google\Protobuf\Duration|null + */ + public function getIngestDelay() + { + return $this->ingest_delay; + } + + public function hasIngestDelay() + { + return isset($this->ingest_delay); + } + + public function clearIngestDelay() + { + unset($this->ingest_delay); + } + + /** + * The delay of data points caused by ingestion. Data points older than this + * age are guaranteed to be ingested and available to be read, excluding + * data loss due to errors. + * + * Generated from protobuf field .google.protobuf.Duration ingest_delay = 3; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setIngestDelay($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->ingest_delay = $var; + + return $this; + } + + /** + * The scope of the timeseries data of the metric. + * + * Generated from protobuf field repeated .google.api.MetricDescriptor.MetricDescriptorMetadata.TimeSeriesResourceHierarchyLevel time_series_resource_hierarchy_level = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getTimeSeriesResourceHierarchyLevel() + { + return $this->time_series_resource_hierarchy_level; + } + + /** + * The scope of the timeseries data of the metric. + * + * Generated from protobuf field repeated .google.api.MetricDescriptor.MetricDescriptorMetadata.TimeSeriesResourceHierarchyLevel time_series_resource_hierarchy_level = 4; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setTimeSeriesResourceHierarchyLevel($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Api\MetricDescriptor\MetricDescriptorMetadata\TimeSeriesResourceHierarchyLevel::class); + $this->time_series_resource_hierarchy_level = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata/TimeSeriesResourceHierarchyLevel.php b/vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata/TimeSeriesResourceHierarchyLevel.php new file mode 100644 index 0000000..c621598 --- /dev/null +++ b/vendor/google/common-protos/src/Api/MetricDescriptor/MetricDescriptorMetadata/TimeSeriesResourceHierarchyLevel.php @@ -0,0 +1,69 @@ +google.api.MetricDescriptor.MetricDescriptorMetadata.TimeSeriesResourceHierarchyLevel + */ +class TimeSeriesResourceHierarchyLevel +{ + /** + * Do not use this default value. + * + * Generated from protobuf enum TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED = 0; + */ + const TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED = 0; + /** + * Scopes a metric to a project. + * + * Generated from protobuf enum PROJECT = 1; + */ + const PROJECT = 1; + /** + * Scopes a metric to an organization. + * + * Generated from protobuf enum ORGANIZATION = 2; + */ + const ORGANIZATION = 2; + /** + * Scopes a metric to a folder. + * + * Generated from protobuf enum FOLDER = 3; + */ + const FOLDER = 3; + + private static $valueToName = [ + self::TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED => 'TIME_SERIES_RESOURCE_HIERARCHY_LEVEL_UNSPECIFIED', + self::PROJECT => 'PROJECT', + self::ORGANIZATION => 'ORGANIZATION', + self::FOLDER => 'FOLDER', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/MetricDescriptor/MetricKind.php b/vendor/google/common-protos/src/Api/MetricDescriptor/MetricKind.php new file mode 100644 index 0000000..a486417 --- /dev/null +++ b/vendor/google/common-protos/src/Api/MetricDescriptor/MetricKind.php @@ -0,0 +1,75 @@ +google.api.MetricDescriptor.MetricKind + */ +class MetricKind +{ + /** + * Do not use this default value. + * + * Generated from protobuf enum METRIC_KIND_UNSPECIFIED = 0; + */ + const METRIC_KIND_UNSPECIFIED = 0; + /** + * An instantaneous measurement of a value. + * + * Generated from protobuf enum GAUGE = 1; + */ + const GAUGE = 1; + /** + * The change in a value during a time interval. + * + * Generated from protobuf enum DELTA = 2; + */ + const DELTA = 2; + /** + * A value accumulated over a time interval. Cumulative + * measurements in a time series should have the same start time + * and increasing end times, until an event resets the cumulative + * value to zero and sets a new start time for the following + * points. + * + * Generated from protobuf enum CUMULATIVE = 3; + */ + const CUMULATIVE = 3; + + private static $valueToName = [ + self::METRIC_KIND_UNSPECIFIED => 'METRIC_KIND_UNSPECIFIED', + self::GAUGE => 'GAUGE', + self::DELTA => 'DELTA', + self::CUMULATIVE => 'CUMULATIVE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/MetricDescriptor/ValueType.php b/vendor/google/common-protos/src/Api/MetricDescriptor/ValueType.php new file mode 100644 index 0000000..d433d2e --- /dev/null +++ b/vendor/google/common-protos/src/Api/MetricDescriptor/ValueType.php @@ -0,0 +1,92 @@ +google.api.MetricDescriptor.ValueType + */ +class ValueType +{ + /** + * Do not use this default value. + * + * Generated from protobuf enum VALUE_TYPE_UNSPECIFIED = 0; + */ + const VALUE_TYPE_UNSPECIFIED = 0; + /** + * The value is a boolean. + * This value type can be used only if the metric kind is `GAUGE`. + * + * Generated from protobuf enum BOOL = 1; + */ + const BOOL = 1; + /** + * The value is a signed 64-bit integer. + * + * Generated from protobuf enum INT64 = 2; + */ + const INT64 = 2; + /** + * The value is a double precision floating point number. + * + * Generated from protobuf enum DOUBLE = 3; + */ + const DOUBLE = 3; + /** + * The value is a text string. + * This value type can be used only if the metric kind is `GAUGE`. + * + * Generated from protobuf enum STRING = 4; + */ + const STRING = 4; + /** + * The value is a [`Distribution`][google.api.Distribution]. + * + * Generated from protobuf enum DISTRIBUTION = 5; + */ + const DISTRIBUTION = 5; + /** + * The value is money. + * + * Generated from protobuf enum MONEY = 6; + */ + const MONEY = 6; + + private static $valueToName = [ + self::VALUE_TYPE_UNSPECIFIED => 'VALUE_TYPE_UNSPECIFIED', + self::BOOL => 'BOOL', + self::INT64 => 'INT64', + self::DOUBLE => 'DOUBLE', + self::STRING => 'STRING', + self::DISTRIBUTION => 'DISTRIBUTION', + self::MONEY => 'MONEY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/MetricRule.php b/vendor/google/common-protos/src/Api/MetricRule.php new file mode 100644 index 0000000..f8eeccd --- /dev/null +++ b/vendor/google/common-protos/src/Api/MetricRule.php @@ -0,0 +1,126 @@ +google.api.MetricRule + */ +class MetricRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * Metrics to update when the selected methods are called, and the associated + * cost applied to each metric. + * The key of the map is the metric name, and the values are the amount + * increased for the metric against which the quota limits are defined. + * The value must not be negative. + * + * Generated from protobuf field map metric_costs = 2; + */ + private $metric_costs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type array|\Google\Protobuf\Internal\MapField $metric_costs + * Metrics to update when the selected methods are called, and the associated + * cost applied to each metric. + * The key of the map is the metric name, and the values are the amount + * increased for the metric against which the quota limits are defined. + * The value must not be negative. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Quota::initOnce(); + parent::__construct($data); + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects the methods to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Metrics to update when the selected methods are called, and the associated + * cost applied to each metric. + * The key of the map is the metric name, and the values are the amount + * increased for the metric against which the quota limits are defined. + * The value must not be negative. + * + * Generated from protobuf field map metric_costs = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getMetricCosts() + { + return $this->metric_costs; + } + + /** + * Metrics to update when the selected methods are called, and the associated + * cost applied to each metric. + * The key of the map is the metric name, and the values are the amount + * increased for the metric against which the quota limits are defined. + * The value must not be negative. + * + * Generated from protobuf field map metric_costs = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setMetricCosts($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::INT64); + $this->metric_costs = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MonitoredResource.php b/vendor/google/common-protos/src/Api/MonitoredResource.php new file mode 100644 index 0000000..7af0f6d --- /dev/null +++ b/vendor/google/common-protos/src/Api/MonitoredResource.php @@ -0,0 +1,147 @@ +google.api.MonitoredResource + */ +class MonitoredResource extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The monitored resource type. This field must match + * the `type` field of a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + * object. For example, the type of a Compute Engine VM instance is + * `gce_instance`. Some descriptors include the service name in the type; for + * example, the type of a Datastream stream is + * `datastream.googleapis.com/Stream`. + * + * Generated from protobuf field string type = 1; + */ + protected $type = ''; + /** + * Required. Values for all of the labels listed in the associated monitored + * resource descriptor. For example, Compute Engine VM instances use the + * labels `"project_id"`, `"instance_id"`, and `"zone"`. + * + * Generated from protobuf field map labels = 2; + */ + private $labels; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $type + * Required. The monitored resource type. This field must match + * the `type` field of a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + * object. For example, the type of a Compute Engine VM instance is + * `gce_instance`. Some descriptors include the service name in the type; for + * example, the type of a Datastream stream is + * `datastream.googleapis.com/Stream`. + * @type array|\Google\Protobuf\Internal\MapField $labels + * Required. Values for all of the labels listed in the associated monitored + * resource descriptor. For example, Compute Engine VM instances use the + * labels `"project_id"`, `"instance_id"`, and `"zone"`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\MonitoredResource::initOnce(); + parent::__construct($data); + } + + /** + * Required. The monitored resource type. This field must match + * the `type` field of a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + * object. For example, the type of a Compute Engine VM instance is + * `gce_instance`. Some descriptors include the service name in the type; for + * example, the type of a Datastream stream is + * `datastream.googleapis.com/Stream`. + * + * Generated from protobuf field string type = 1; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * Required. The monitored resource type. This field must match + * the `type` field of a + * [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] + * object. For example, the type of a Compute Engine VM instance is + * `gce_instance`. Some descriptors include the service name in the type; for + * example, the type of a Datastream stream is + * `datastream.googleapis.com/Stream`. + * + * Generated from protobuf field string type = 1; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * Required. Values for all of the labels listed in the associated monitored + * resource descriptor. For example, Compute Engine VM instances use the + * labels `"project_id"`, `"instance_id"`, and `"zone"`. + * + * Generated from protobuf field map labels = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * Required. Values for all of the labels listed in the associated monitored + * resource descriptor. For example, Compute Engine VM instances use the + * labels `"project_id"`, `"instance_id"`, and `"zone"`. + * + * Generated from protobuf field map labels = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->labels = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MonitoredResourceDescriptor.php b/vendor/google/common-protos/src/Api/MonitoredResourceDescriptor.php new file mode 100644 index 0000000..c6727e2 --- /dev/null +++ b/vendor/google/common-protos/src/Api/MonitoredResourceDescriptor.php @@ -0,0 +1,309 @@ +google.api.MonitoredResourceDescriptor + */ +class MonitoredResourceDescriptor extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The resource name of the monitored resource descriptor: + * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where + * {type} is the value of the `type` field in this object and + * {project_id} is a project ID that provides API-specific context for + * accessing the type. APIs that do not use project information can use the + * resource name format `"monitoredResourceDescriptors/{type}"`. + * + * Generated from protobuf field string name = 5; + */ + protected $name = ''; + /** + * Required. The monitored resource type. For example, the type + * `"cloudsql_database"` represents databases in Google Cloud SQL. + * For a list of types, see [Monitored resource + * types](https://cloud.google.com/monitoring/api/resources) + * and [Logging resource + * types](https://cloud.google.com/logging/docs/api/v2/resource-list). + * + * Generated from protobuf field string type = 1; + */ + protected $type = ''; + /** + * Optional. A concise name for the monitored resource type that might be + * displayed in user interfaces. It should be a Title Cased Noun Phrase, + * without any article or other determiners. For example, + * `"Google Cloud SQL Database"`. + * + * Generated from protobuf field string display_name = 2; + */ + protected $display_name = ''; + /** + * Optional. A detailed description of the monitored resource type that might + * be used in documentation. + * + * Generated from protobuf field string description = 3; + */ + protected $description = ''; + /** + * Required. A set of labels used to describe instances of this monitored + * resource type. For example, an individual Google Cloud SQL database is + * identified by values for the labels `"database_id"` and `"zone"`. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 4; + */ + private $labels; + /** + * Optional. The launch stage of the monitored resource definition. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 7; + */ + protected $launch_stage = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Optional. The resource name of the monitored resource descriptor: + * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where + * {type} is the value of the `type` field in this object and + * {project_id} is a project ID that provides API-specific context for + * accessing the type. APIs that do not use project information can use the + * resource name format `"monitoredResourceDescriptors/{type}"`. + * @type string $type + * Required. The monitored resource type. For example, the type + * `"cloudsql_database"` represents databases in Google Cloud SQL. + * For a list of types, see [Monitored resource + * types](https://cloud.google.com/monitoring/api/resources) + * and [Logging resource + * types](https://cloud.google.com/logging/docs/api/v2/resource-list). + * @type string $display_name + * Optional. A concise name for the monitored resource type that might be + * displayed in user interfaces. It should be a Title Cased Noun Phrase, + * without any article or other determiners. For example, + * `"Google Cloud SQL Database"`. + * @type string $description + * Optional. A detailed description of the monitored resource type that might + * be used in documentation. + * @type array<\Google\Api\LabelDescriptor>|\Google\Protobuf\Internal\RepeatedField $labels + * Required. A set of labels used to describe instances of this monitored + * resource type. For example, an individual Google Cloud SQL database is + * identified by values for the labels `"database_id"` and `"zone"`. + * @type int $launch_stage + * Optional. The launch stage of the monitored resource definition. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\MonitoredResource::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The resource name of the monitored resource descriptor: + * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where + * {type} is the value of the `type` field in this object and + * {project_id} is a project ID that provides API-specific context for + * accessing the type. APIs that do not use project information can use the + * resource name format `"monitoredResourceDescriptors/{type}"`. + * + * Generated from protobuf field string name = 5; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Optional. The resource name of the monitored resource descriptor: + * `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where + * {type} is the value of the `type` field in this object and + * {project_id} is a project ID that provides API-specific context for + * accessing the type. APIs that do not use project information can use the + * resource name format `"monitoredResourceDescriptors/{type}"`. + * + * Generated from protobuf field string name = 5; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Required. The monitored resource type. For example, the type + * `"cloudsql_database"` represents databases in Google Cloud SQL. + * For a list of types, see [Monitored resource + * types](https://cloud.google.com/monitoring/api/resources) + * and [Logging resource + * types](https://cloud.google.com/logging/docs/api/v2/resource-list). + * + * Generated from protobuf field string type = 1; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * Required. The monitored resource type. For example, the type + * `"cloudsql_database"` represents databases in Google Cloud SQL. + * For a list of types, see [Monitored resource + * types](https://cloud.google.com/monitoring/api/resources) + * and [Logging resource + * types](https://cloud.google.com/logging/docs/api/v2/resource-list). + * + * Generated from protobuf field string type = 1; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * Optional. A concise name for the monitored resource type that might be + * displayed in user interfaces. It should be a Title Cased Noun Phrase, + * without any article or other determiners. For example, + * `"Google Cloud SQL Database"`. + * + * Generated from protobuf field string display_name = 2; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Optional. A concise name for the monitored resource type that might be + * displayed in user interfaces. It should be a Title Cased Noun Phrase, + * without any article or other determiners. For example, + * `"Google Cloud SQL Database"`. + * + * Generated from protobuf field string display_name = 2; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Optional. A detailed description of the monitored resource type that might + * be used in documentation. + * + * Generated from protobuf field string description = 3; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. A detailed description of the monitored resource type that might + * be used in documentation. + * + * Generated from protobuf field string description = 3; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Required. A set of labels used to describe instances of this monitored + * resource type. For example, an individual Google Cloud SQL database is + * identified by values for the labels `"database_id"` and `"zone"`. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * Required. A set of labels used to describe instances of this monitored + * resource type. For example, an individual Google Cloud SQL database is + * identified by values for the labels `"database_id"` and `"zone"`. + * + * Generated from protobuf field repeated .google.api.LabelDescriptor labels = 4; + * @param array<\Google\Api\LabelDescriptor>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LabelDescriptor::class); + $this->labels = $arr; + + return $this; + } + + /** + * Optional. The launch stage of the monitored resource definition. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 7; + * @return int + */ + public function getLaunchStage() + { + return $this->launch_stage; + } + + /** + * Optional. The launch stage of the monitored resource definition. + * + * Generated from protobuf field .google.api.LaunchStage launch_stage = 7; + * @param int $var + * @return $this + */ + public function setLaunchStage($var) + { + GPBUtil::checkEnum($var, \Google\Api\LaunchStage::class); + $this->launch_stage = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/MonitoredResourceMetadata.php b/vendor/google/common-protos/src/Api/MonitoredResourceMetadata.php new file mode 100644 index 0000000..da6dc4b --- /dev/null +++ b/vendor/google/common-protos/src/Api/MonitoredResourceMetadata.php @@ -0,0 +1,148 @@ +google.api.MonitoredResourceMetadata + */ +class MonitoredResourceMetadata extends \Google\Protobuf\Internal\Message +{ + /** + * Output only. Values for predefined system metadata labels. + * System labels are a kind of metadata extracted by Google, including + * "machine_image", "vpc", "subnet_id", + * "security_group", "name", etc. + * System label values can be only strings, Boolean values, or a list of + * strings. For example: + * { "name": "my-test-instance", + * "security_group": ["a", "b", "c"], + * "spot_instance": false } + * + * Generated from protobuf field .google.protobuf.Struct system_labels = 1; + */ + protected $system_labels = null; + /** + * Output only. A map of user-defined metadata labels. + * + * Generated from protobuf field map user_labels = 2; + */ + private $user_labels; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Protobuf\Struct $system_labels + * Output only. Values for predefined system metadata labels. + * System labels are a kind of metadata extracted by Google, including + * "machine_image", "vpc", "subnet_id", + * "security_group", "name", etc. + * System label values can be only strings, Boolean values, or a list of + * strings. For example: + * { "name": "my-test-instance", + * "security_group": ["a", "b", "c"], + * "spot_instance": false } + * @type array|\Google\Protobuf\Internal\MapField $user_labels + * Output only. A map of user-defined metadata labels. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\MonitoredResource::initOnce(); + parent::__construct($data); + } + + /** + * Output only. Values for predefined system metadata labels. + * System labels are a kind of metadata extracted by Google, including + * "machine_image", "vpc", "subnet_id", + * "security_group", "name", etc. + * System label values can be only strings, Boolean values, or a list of + * strings. For example: + * { "name": "my-test-instance", + * "security_group": ["a", "b", "c"], + * "spot_instance": false } + * + * Generated from protobuf field .google.protobuf.Struct system_labels = 1; + * @return \Google\Protobuf\Struct|null + */ + public function getSystemLabels() + { + return $this->system_labels; + } + + public function hasSystemLabels() + { + return isset($this->system_labels); + } + + public function clearSystemLabels() + { + unset($this->system_labels); + } + + /** + * Output only. Values for predefined system metadata labels. + * System labels are a kind of metadata extracted by Google, including + * "machine_image", "vpc", "subnet_id", + * "security_group", "name", etc. + * System label values can be only strings, Boolean values, or a list of + * strings. For example: + * { "name": "my-test-instance", + * "security_group": ["a", "b", "c"], + * "spot_instance": false } + * + * Generated from protobuf field .google.protobuf.Struct system_labels = 1; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setSystemLabels($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->system_labels = $var; + + return $this; + } + + /** + * Output only. A map of user-defined metadata labels. + * + * Generated from protobuf field map user_labels = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getUserLabels() + { + return $this->user_labels; + } + + /** + * Output only. A map of user-defined metadata labels. + * + * Generated from protobuf field map user_labels = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setUserLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->user_labels = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Monitoring.php b/vendor/google/common-protos/src/Api/Monitoring.php new file mode 100644 index 0000000..5415b64 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Monitoring.php @@ -0,0 +1,190 @@ +google.api.Monitoring + */ +class Monitoring extends \Google\Protobuf\Internal\Message +{ + /** + * Monitoring configurations for sending metrics to the producer project. + * There can be multiple producer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * + * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination producer_destinations = 1; + */ + private $producer_destinations; + /** + * Monitoring configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * + * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination consumer_destinations = 2; + */ + private $consumer_destinations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\Monitoring\MonitoringDestination>|\Google\Protobuf\Internal\RepeatedField $producer_destinations + * Monitoring configurations for sending metrics to the producer project. + * There can be multiple producer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * @type array<\Google\Api\Monitoring\MonitoringDestination>|\Google\Protobuf\Internal\RepeatedField $consumer_destinations + * Monitoring configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Monitoring::initOnce(); + parent::__construct($data); + } + + /** + * Monitoring configurations for sending metrics to the producer project. + * There can be multiple producer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * + * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination producer_destinations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getProducerDestinations() + { + return $this->producer_destinations; + } + + /** + * Monitoring configurations for sending metrics to the producer project. + * There can be multiple producer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * + * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination producer_destinations = 1; + * @param array<\Google\Api\Monitoring\MonitoringDestination>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setProducerDestinations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Monitoring\MonitoringDestination::class); + $this->producer_destinations = $arr; + + return $this; + } + + /** + * Monitoring configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * + * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination consumer_destinations = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getConsumerDestinations() + { + return $this->consumer_destinations; + } + + /** + * Monitoring configurations for sending metrics to the consumer project. + * There can be multiple consumer destinations. A monitored resource type may + * appear in multiple monitoring destinations if different aggregations are + * needed for different sets of metrics associated with that monitored + * resource type. A monitored resource and metric pair may only be used once + * in the Monitoring configuration. + * + * Generated from protobuf field repeated .google.api.Monitoring.MonitoringDestination consumer_destinations = 2; + * @param array<\Google\Api\Monitoring\MonitoringDestination>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setConsumerDestinations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Monitoring\MonitoringDestination::class); + $this->consumer_destinations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Monitoring/MonitoringDestination.php b/vendor/google/common-protos/src/Api/Monitoring/MonitoringDestination.php new file mode 100644 index 0000000..050620e --- /dev/null +++ b/vendor/google/common-protos/src/Api/Monitoring/MonitoringDestination.php @@ -0,0 +1,119 @@ +google.api.Monitoring.MonitoringDestination + */ +class MonitoringDestination extends \Google\Protobuf\Internal\Message +{ + /** + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 1; + */ + protected $monitored_resource = ''; + /** + * Types of the metrics to report to this monitoring destination. + * Each type must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * + * Generated from protobuf field repeated string metrics = 2; + */ + private $metrics; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $monitored_resource + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * @type array|\Google\Protobuf\Internal\RepeatedField $metrics + * Types of the metrics to report to this monitoring destination. + * Each type must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Monitoring::initOnce(); + parent::__construct($data); + } + + /** + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 1; + * @return string + */ + public function getMonitoredResource() + { + return $this->monitored_resource; + } + + /** + * The monitored resource type. The type must be defined in + * [Service.monitored_resources][google.api.Service.monitored_resources] + * section. + * + * Generated from protobuf field string monitored_resource = 1; + * @param string $var + * @return $this + */ + public function setMonitoredResource($var) + { + GPBUtil::checkString($var, True); + $this->monitored_resource = $var; + + return $this; + } + + /** + * Types of the metrics to report to this monitoring destination. + * Each type must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * + * Generated from protobuf field repeated string metrics = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMetrics() + { + return $this->metrics; + } + + /** + * Types of the metrics to report to this monitoring destination. + * Each type must be defined in + * [Service.metrics][google.api.Service.metrics] section. + * + * Generated from protobuf field repeated string metrics = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMetrics($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->metrics = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/NodeSettings.php b/vendor/google/common-protos/src/Api/NodeSettings.php new file mode 100644 index 0000000..54b8ccb --- /dev/null +++ b/vendor/google/common-protos/src/Api/NodeSettings.php @@ -0,0 +1,77 @@ +google.api.NodeSettings + */ +class NodeSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/OAuthRequirements.php b/vendor/google/common-protos/src/Api/OAuthRequirements.php new file mode 100644 index 0000000..842640c --- /dev/null +++ b/vendor/google/common-protos/src/Api/OAuthRequirements.php @@ -0,0 +1,96 @@ +google.api.OAuthRequirements + */ +class OAuthRequirements extends \Google\Protobuf\Internal\Message +{ + /** + * The list of publicly documented OAuth scopes that are allowed access. An + * OAuth token containing any of these scopes will be accepted. + * Example: + * canonical_scopes: https://www.googleapis.com/auth/calendar, + * https://www.googleapis.com/auth/calendar.read + * + * Generated from protobuf field string canonical_scopes = 1; + */ + protected $canonical_scopes = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $canonical_scopes + * The list of publicly documented OAuth scopes that are allowed access. An + * OAuth token containing any of these scopes will be accepted. + * Example: + * canonical_scopes: https://www.googleapis.com/auth/calendar, + * https://www.googleapis.com/auth/calendar.read + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Auth::initOnce(); + parent::__construct($data); + } + + /** + * The list of publicly documented OAuth scopes that are allowed access. An + * OAuth token containing any of these scopes will be accepted. + * Example: + * canonical_scopes: https://www.googleapis.com/auth/calendar, + * https://www.googleapis.com/auth/calendar.read + * + * Generated from protobuf field string canonical_scopes = 1; + * @return string + */ + public function getCanonicalScopes() + { + return $this->canonical_scopes; + } + + /** + * The list of publicly documented OAuth scopes that are allowed access. An + * OAuth token containing any of these scopes will be accepted. + * Example: + * canonical_scopes: https://www.googleapis.com/auth/calendar, + * https://www.googleapis.com/auth/calendar.read + * + * Generated from protobuf field string canonical_scopes = 1; + * @param string $var + * @return $this + */ + public function setCanonicalScopes($var) + { + GPBUtil::checkString($var, True); + $this->canonical_scopes = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Page.php b/vendor/google/common-protos/src/Api/Page.php new file mode 100644 index 0000000..0709745 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Page.php @@ -0,0 +1,200 @@ +google.api.Page + */ +class Page extends \Google\Protobuf\Internal\Message +{ + /** + * The name of the page. It will be used as an identity of the page to + * generate URI of the page, text of the link to this page in navigation, + * etc. The full page name (start from the root page name to this page + * concatenated with `.`) can be used as reference to the page in your + * documentation. For example: + *
pages:
+     * - name: Tutorial
+     *   content: (== include tutorial.md ==)
+     *   subpages:
+     *   - name: Java
+     *     content: (== include tutorial_java.md ==)
+     * 
+ * You can reference `Java` page using Markdown reference link syntax: + * `[Java][Tutorial.Java]`. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The Markdown content of the page. You can use ```(== include {path} + * ==)``` to include content from a Markdown file. The content can be used + * to produce the documentation page such as HTML format page. + * + * Generated from protobuf field string content = 2; + */ + protected $content = ''; + /** + * Subpages of this page. The order of subpages specified here will be + * honored in the generated docset. + * + * Generated from protobuf field repeated .google.api.Page subpages = 3; + */ + private $subpages; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The name of the page. It will be used as an identity of the page to + * generate URI of the page, text of the link to this page in navigation, + * etc. The full page name (start from the root page name to this page + * concatenated with `.`) can be used as reference to the page in your + * documentation. For example: + *
pages:
+     *           - name: Tutorial
+     *             content: (== include tutorial.md ==)
+     *             subpages:
+     *             - name: Java
+     *               content: (== include tutorial_java.md ==)
+     *           
+ * You can reference `Java` page using Markdown reference link syntax: + * `[Java][Tutorial.Java]`. + * @type string $content + * The Markdown content of the page. You can use ```(== include {path} + * ==)``` to include content from a Markdown file. The content can be used + * to produce the documentation page such as HTML format page. + * @type array<\Google\Api\Page>|\Google\Protobuf\Internal\RepeatedField $subpages + * Subpages of this page. The order of subpages specified here will be + * honored in the generated docset. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Documentation::initOnce(); + parent::__construct($data); + } + + /** + * The name of the page. It will be used as an identity of the page to + * generate URI of the page, text of the link to this page in navigation, + * etc. The full page name (start from the root page name to this page + * concatenated with `.`) can be used as reference to the page in your + * documentation. For example: + *
pages:
+     * - name: Tutorial
+     *   content: (== include tutorial.md ==)
+     *   subpages:
+     *   - name: Java
+     *     content: (== include tutorial_java.md ==)
+     * 
+ * You can reference `Java` page using Markdown reference link syntax: + * `[Java][Tutorial.Java]`. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The name of the page. It will be used as an identity of the page to + * generate URI of the page, text of the link to this page in navigation, + * etc. The full page name (start from the root page name to this page + * concatenated with `.`) can be used as reference to the page in your + * documentation. For example: + *
pages:
+     * - name: Tutorial
+     *   content: (== include tutorial.md ==)
+     *   subpages:
+     *   - name: Java
+     *     content: (== include tutorial_java.md ==)
+     * 
+ * You can reference `Java` page using Markdown reference link syntax: + * `[Java][Tutorial.Java]`. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The Markdown content of the page. You can use ```(== include {path} + * ==)``` to include content from a Markdown file. The content can be used + * to produce the documentation page such as HTML format page. + * + * Generated from protobuf field string content = 2; + * @return string + */ + public function getContent() + { + return $this->content; + } + + /** + * The Markdown content of the page. You can use ```(== include {path} + * ==)``` to include content from a Markdown file. The content can be used + * to produce the documentation page such as HTML format page. + * + * Generated from protobuf field string content = 2; + * @param string $var + * @return $this + */ + public function setContent($var) + { + GPBUtil::checkString($var, True); + $this->content = $var; + + return $this; + } + + /** + * Subpages of this page. The order of subpages specified here will be + * honored in the generated docset. + * + * Generated from protobuf field repeated .google.api.Page subpages = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSubpages() + { + return $this->subpages; + } + + /** + * Subpages of this page. The order of subpages specified here will be + * honored in the generated docset. + * + * Generated from protobuf field repeated .google.api.Page subpages = 3; + * @param array<\Google\Api\Page>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSubpages($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Page::class); + $this->subpages = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/PhpSettings.php b/vendor/google/common-protos/src/Api/PhpSettings.php new file mode 100644 index 0000000..06486ac --- /dev/null +++ b/vendor/google/common-protos/src/Api/PhpSettings.php @@ -0,0 +1,77 @@ +google.api.PhpSettings + */ +class PhpSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/ProjectProperties.php b/vendor/google/common-protos/src/Api/ProjectProperties.php new file mode 100644 index 0000000..122688d --- /dev/null +++ b/vendor/google/common-protos/src/Api/ProjectProperties.php @@ -0,0 +1,80 @@ +google.api.ProjectProperties + */ +class ProjectProperties extends \Google\Protobuf\Internal\Message +{ + /** + * List of per consumer project-specific properties. + * + * Generated from protobuf field repeated .google.api.Property properties = 1; + */ + private $properties; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\Property>|\Google\Protobuf\Internal\RepeatedField $properties + * List of per consumer project-specific properties. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Consumer::initOnce(); + parent::__construct($data); + } + + /** + * List of per consumer project-specific properties. + * + * Generated from protobuf field repeated .google.api.Property properties = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getProperties() + { + return $this->properties; + } + + /** + * List of per consumer project-specific properties. + * + * Generated from protobuf field repeated .google.api.Property properties = 1; + * @param array<\Google\Api\Property>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setProperties($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Property::class); + $this->properties = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Property.php b/vendor/google/common-protos/src/Api/Property.php new file mode 100644 index 0000000..6212e63 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Property.php @@ -0,0 +1,142 @@ +google.api.Property + */ +class Property extends \Google\Protobuf\Internal\Message +{ + /** + * The name of the property (a.k.a key). + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The type of this property. + * + * Generated from protobuf field .google.api.Property.PropertyType type = 2; + */ + protected $type = 0; + /** + * The description of the property + * + * Generated from protobuf field string description = 3; + */ + protected $description = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The name of the property (a.k.a key). + * @type int $type + * The type of this property. + * @type string $description + * The description of the property + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Consumer::initOnce(); + parent::__construct($data); + } + + /** + * The name of the property (a.k.a key). + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The name of the property (a.k.a key). + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The type of this property. + * + * Generated from protobuf field .google.api.Property.PropertyType type = 2; + * @return int + */ + public function getType() + { + return $this->type; + } + + /** + * The type of this property. + * + * Generated from protobuf field .google.api.Property.PropertyType type = 2; + * @param int $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkEnum($var, \Google\Api\Property\PropertyType::class); + $this->type = $var; + + return $this; + } + + /** + * The description of the property + * + * Generated from protobuf field string description = 3; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * The description of the property + * + * Generated from protobuf field string description = 3; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Property/PropertyType.php b/vendor/google/common-protos/src/Api/Property/PropertyType.php new file mode 100644 index 0000000..b4b6cd7 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Property/PropertyType.php @@ -0,0 +1,76 @@ +google.api.Property.PropertyType + */ +class PropertyType +{ + /** + * The type is unspecified, and will result in an error. + * + * Generated from protobuf enum UNSPECIFIED = 0; + */ + const UNSPECIFIED = 0; + /** + * The type is `int64`. + * + * Generated from protobuf enum INT64 = 1; + */ + const INT64 = 1; + /** + * The type is `bool`. + * + * Generated from protobuf enum BOOL = 2; + */ + const BOOL = 2; + /** + * The type is `string`. + * + * Generated from protobuf enum STRING = 3; + */ + const STRING = 3; + /** + * The type is 'double'. + * + * Generated from protobuf enum DOUBLE = 4; + */ + const DOUBLE = 4; + + private static $valueToName = [ + self::UNSPECIFIED => 'UNSPECIFIED', + self::INT64 => 'INT64', + self::BOOL => 'BOOL', + self::STRING => 'STRING', + self::DOUBLE => 'DOUBLE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/Publishing.php b/vendor/google/common-protos/src/Api/Publishing.php new file mode 100644 index 0000000..6618617 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Publishing.php @@ -0,0 +1,453 @@ +google.api.Publishing + */ +class Publishing extends \Google\Protobuf\Internal\Message +{ + /** + * A list of API method settings, e.g. the behavior for methods that use the + * long-running operation pattern. + * + * Generated from protobuf field repeated .google.api.MethodSettings method_settings = 2; + */ + private $method_settings; + /** + * Link to a *public* URI where users can report issues. Example: + * https://issuetracker.google.com/issues/new?component=190865&template=1161103 + * + * Generated from protobuf field string new_issue_uri = 101; + */ + protected $new_issue_uri = ''; + /** + * Link to product home page. Example: + * https://cloud.google.com/asset-inventory/docs/overview + * + * Generated from protobuf field string documentation_uri = 102; + */ + protected $documentation_uri = ''; + /** + * Used as a tracking tag when collecting data about the APIs developer + * relations artifacts like docs, packages delivered to package managers, + * etc. Example: "speech". + * + * Generated from protobuf field string api_short_name = 103; + */ + protected $api_short_name = ''; + /** + * GitHub label to apply to issues and pull requests opened for this API. + * + * Generated from protobuf field string github_label = 104; + */ + protected $github_label = ''; + /** + * GitHub teams to be added to CODEOWNERS in the directory in GitHub + * containing source code for the client libraries for this API. + * + * Generated from protobuf field repeated string codeowner_github_teams = 105; + */ + private $codeowner_github_teams; + /** + * A prefix used in sample code when demarking regions to be included in + * documentation. + * + * Generated from protobuf field string doc_tag_prefix = 106; + */ + protected $doc_tag_prefix = ''; + /** + * For whom the client library is being published. + * + * Generated from protobuf field .google.api.ClientLibraryOrganization organization = 107; + */ + protected $organization = 0; + /** + * Client library settings. If the same version string appears multiple + * times in this list, then the last one wins. Settings from earlier + * settings with the same version string are discarded. + * + * Generated from protobuf field repeated .google.api.ClientLibrarySettings library_settings = 109; + */ + private $library_settings; + /** + * Optional link to proto reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rpc + * + * Generated from protobuf field string proto_reference_documentation_uri = 110; + */ + protected $proto_reference_documentation_uri = ''; + /** + * Optional link to REST reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rest + * + * Generated from protobuf field string rest_reference_documentation_uri = 111; + */ + protected $rest_reference_documentation_uri = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\MethodSettings>|\Google\Protobuf\Internal\RepeatedField $method_settings + * A list of API method settings, e.g. the behavior for methods that use the + * long-running operation pattern. + * @type string $new_issue_uri + * Link to a *public* URI where users can report issues. Example: + * https://issuetracker.google.com/issues/new?component=190865&template=1161103 + * @type string $documentation_uri + * Link to product home page. Example: + * https://cloud.google.com/asset-inventory/docs/overview + * @type string $api_short_name + * Used as a tracking tag when collecting data about the APIs developer + * relations artifacts like docs, packages delivered to package managers, + * etc. Example: "speech". + * @type string $github_label + * GitHub label to apply to issues and pull requests opened for this API. + * @type array|\Google\Protobuf\Internal\RepeatedField $codeowner_github_teams + * GitHub teams to be added to CODEOWNERS in the directory in GitHub + * containing source code for the client libraries for this API. + * @type string $doc_tag_prefix + * A prefix used in sample code when demarking regions to be included in + * documentation. + * @type int $organization + * For whom the client library is being published. + * @type array<\Google\Api\ClientLibrarySettings>|\Google\Protobuf\Internal\RepeatedField $library_settings + * Client library settings. If the same version string appears multiple + * times in this list, then the last one wins. Settings from earlier + * settings with the same version string are discarded. + * @type string $proto_reference_documentation_uri + * Optional link to proto reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rpc + * @type string $rest_reference_documentation_uri + * Optional link to REST reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rest + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * A list of API method settings, e.g. the behavior for methods that use the + * long-running operation pattern. + * + * Generated from protobuf field repeated .google.api.MethodSettings method_settings = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMethodSettings() + { + return $this->method_settings; + } + + /** + * A list of API method settings, e.g. the behavior for methods that use the + * long-running operation pattern. + * + * Generated from protobuf field repeated .google.api.MethodSettings method_settings = 2; + * @param array<\Google\Api\MethodSettings>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMethodSettings($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MethodSettings::class); + $this->method_settings = $arr; + + return $this; + } + + /** + * Link to a *public* URI where users can report issues. Example: + * https://issuetracker.google.com/issues/new?component=190865&template=1161103 + * + * Generated from protobuf field string new_issue_uri = 101; + * @return string + */ + public function getNewIssueUri() + { + return $this->new_issue_uri; + } + + /** + * Link to a *public* URI where users can report issues. Example: + * https://issuetracker.google.com/issues/new?component=190865&template=1161103 + * + * Generated from protobuf field string new_issue_uri = 101; + * @param string $var + * @return $this + */ + public function setNewIssueUri($var) + { + GPBUtil::checkString($var, True); + $this->new_issue_uri = $var; + + return $this; + } + + /** + * Link to product home page. Example: + * https://cloud.google.com/asset-inventory/docs/overview + * + * Generated from protobuf field string documentation_uri = 102; + * @return string + */ + public function getDocumentationUri() + { + return $this->documentation_uri; + } + + /** + * Link to product home page. Example: + * https://cloud.google.com/asset-inventory/docs/overview + * + * Generated from protobuf field string documentation_uri = 102; + * @param string $var + * @return $this + */ + public function setDocumentationUri($var) + { + GPBUtil::checkString($var, True); + $this->documentation_uri = $var; + + return $this; + } + + /** + * Used as a tracking tag when collecting data about the APIs developer + * relations artifacts like docs, packages delivered to package managers, + * etc. Example: "speech". + * + * Generated from protobuf field string api_short_name = 103; + * @return string + */ + public function getApiShortName() + { + return $this->api_short_name; + } + + /** + * Used as a tracking tag when collecting data about the APIs developer + * relations artifacts like docs, packages delivered to package managers, + * etc. Example: "speech". + * + * Generated from protobuf field string api_short_name = 103; + * @param string $var + * @return $this + */ + public function setApiShortName($var) + { + GPBUtil::checkString($var, True); + $this->api_short_name = $var; + + return $this; + } + + /** + * GitHub label to apply to issues and pull requests opened for this API. + * + * Generated from protobuf field string github_label = 104; + * @return string + */ + public function getGithubLabel() + { + return $this->github_label; + } + + /** + * GitHub label to apply to issues and pull requests opened for this API. + * + * Generated from protobuf field string github_label = 104; + * @param string $var + * @return $this + */ + public function setGithubLabel($var) + { + GPBUtil::checkString($var, True); + $this->github_label = $var; + + return $this; + } + + /** + * GitHub teams to be added to CODEOWNERS in the directory in GitHub + * containing source code for the client libraries for this API. + * + * Generated from protobuf field repeated string codeowner_github_teams = 105; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getCodeownerGithubTeams() + { + return $this->codeowner_github_teams; + } + + /** + * GitHub teams to be added to CODEOWNERS in the directory in GitHub + * containing source code for the client libraries for this API. + * + * Generated from protobuf field repeated string codeowner_github_teams = 105; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setCodeownerGithubTeams($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->codeowner_github_teams = $arr; + + return $this; + } + + /** + * A prefix used in sample code when demarking regions to be included in + * documentation. + * + * Generated from protobuf field string doc_tag_prefix = 106; + * @return string + */ + public function getDocTagPrefix() + { + return $this->doc_tag_prefix; + } + + /** + * A prefix used in sample code when demarking regions to be included in + * documentation. + * + * Generated from protobuf field string doc_tag_prefix = 106; + * @param string $var + * @return $this + */ + public function setDocTagPrefix($var) + { + GPBUtil::checkString($var, True); + $this->doc_tag_prefix = $var; + + return $this; + } + + /** + * For whom the client library is being published. + * + * Generated from protobuf field .google.api.ClientLibraryOrganization organization = 107; + * @return int + */ + public function getOrganization() + { + return $this->organization; + } + + /** + * For whom the client library is being published. + * + * Generated from protobuf field .google.api.ClientLibraryOrganization organization = 107; + * @param int $var + * @return $this + */ + public function setOrganization($var) + { + GPBUtil::checkEnum($var, \Google\Api\ClientLibraryOrganization::class); + $this->organization = $var; + + return $this; + } + + /** + * Client library settings. If the same version string appears multiple + * times in this list, then the last one wins. Settings from earlier + * settings with the same version string are discarded. + * + * Generated from protobuf field repeated .google.api.ClientLibrarySettings library_settings = 109; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLibrarySettings() + { + return $this->library_settings; + } + + /** + * Client library settings. If the same version string appears multiple + * times in this list, then the last one wins. Settings from earlier + * settings with the same version string are discarded. + * + * Generated from protobuf field repeated .google.api.ClientLibrarySettings library_settings = 109; + * @param array<\Google\Api\ClientLibrarySettings>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLibrarySettings($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\ClientLibrarySettings::class); + $this->library_settings = $arr; + + return $this; + } + + /** + * Optional link to proto reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rpc + * + * Generated from protobuf field string proto_reference_documentation_uri = 110; + * @return string + */ + public function getProtoReferenceDocumentationUri() + { + return $this->proto_reference_documentation_uri; + } + + /** + * Optional link to proto reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rpc + * + * Generated from protobuf field string proto_reference_documentation_uri = 110; + * @param string $var + * @return $this + */ + public function setProtoReferenceDocumentationUri($var) + { + GPBUtil::checkString($var, True); + $this->proto_reference_documentation_uri = $var; + + return $this; + } + + /** + * Optional link to REST reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rest + * + * Generated from protobuf field string rest_reference_documentation_uri = 111; + * @return string + */ + public function getRestReferenceDocumentationUri() + { + return $this->rest_reference_documentation_uri; + } + + /** + * Optional link to REST reference documentation. Example: + * https://cloud.google.com/pubsub/lite/docs/reference/rest + * + * Generated from protobuf field string rest_reference_documentation_uri = 111; + * @param string $var + * @return $this + */ + public function setRestReferenceDocumentationUri($var) + { + GPBUtil::checkString($var, True); + $this->rest_reference_documentation_uri = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/PythonSettings.php b/vendor/google/common-protos/src/Api/PythonSettings.php new file mode 100644 index 0000000..e502c74 --- /dev/null +++ b/vendor/google/common-protos/src/Api/PythonSettings.php @@ -0,0 +1,121 @@ +google.api.PythonSettings + */ +class PythonSettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + /** + * Experimental features to be included during client library generation. + * + * Generated from protobuf field .google.api.PythonSettings.ExperimentalFeatures experimental_features = 2; + */ + protected $experimental_features = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * @type \Google\Api\PythonSettings\ExperimentalFeatures $experimental_features + * Experimental features to be included during client library generation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + + /** + * Experimental features to be included during client library generation. + * + * Generated from protobuf field .google.api.PythonSettings.ExperimentalFeatures experimental_features = 2; + * @return \Google\Api\PythonSettings\ExperimentalFeatures|null + */ + public function getExperimentalFeatures() + { + return $this->experimental_features; + } + + public function hasExperimentalFeatures() + { + return isset($this->experimental_features); + } + + public function clearExperimentalFeatures() + { + unset($this->experimental_features); + } + + /** + * Experimental features to be included during client library generation. + * + * Generated from protobuf field .google.api.PythonSettings.ExperimentalFeatures experimental_features = 2; + * @param \Google\Api\PythonSettings\ExperimentalFeatures $var + * @return $this + */ + public function setExperimentalFeatures($var) + { + GPBUtil::checkMessage($var, \Google\Api\PythonSettings\ExperimentalFeatures::class); + $this->experimental_features = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/PythonSettings/ExperimentalFeatures.php b/vendor/google/common-protos/src/Api/PythonSettings/ExperimentalFeatures.php new file mode 100644 index 0000000..200d477 --- /dev/null +++ b/vendor/google/common-protos/src/Api/PythonSettings/ExperimentalFeatures.php @@ -0,0 +1,174 @@ +google.api.PythonSettings.ExperimentalFeatures + */ +class ExperimentalFeatures extends \Google\Protobuf\Internal\Message +{ + /** + * Enables generation of asynchronous REST clients if `rest` transport is + * enabled. By default, asynchronous REST clients will not be generated. + * This feature will be enabled by default 1 month after launching the + * feature in preview packages. + * + * Generated from protobuf field bool rest_async_io_enabled = 1; + */ + protected $rest_async_io_enabled = false; + /** + * Enables generation of protobuf code using new types that are more + * Pythonic which are included in `protobuf>=5.29.x`. This feature will be + * enabled by default 1 month after launching the feature in preview + * packages. + * + * Generated from protobuf field bool protobuf_pythonic_types_enabled = 2; + */ + protected $protobuf_pythonic_types_enabled = false; + /** + * Disables generation of an unversioned Python package for this client + * library. This means that the module names will need to be versioned in + * import statements. For example `import google.cloud.library_v2` instead + * of `import google.cloud.library`. + * + * Generated from protobuf field bool unversioned_package_disabled = 3; + */ + protected $unversioned_package_disabled = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type bool $rest_async_io_enabled + * Enables generation of asynchronous REST clients if `rest` transport is + * enabled. By default, asynchronous REST clients will not be generated. + * This feature will be enabled by default 1 month after launching the + * feature in preview packages. + * @type bool $protobuf_pythonic_types_enabled + * Enables generation of protobuf code using new types that are more + * Pythonic which are included in `protobuf>=5.29.x`. This feature will be + * enabled by default 1 month after launching the feature in preview + * packages. + * @type bool $unversioned_package_disabled + * Disables generation of an unversioned Python package for this client + * library. This means that the module names will need to be versioned in + * import statements. For example `import google.cloud.library_v2` instead + * of `import google.cloud.library`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Enables generation of asynchronous REST clients if `rest` transport is + * enabled. By default, asynchronous REST clients will not be generated. + * This feature will be enabled by default 1 month after launching the + * feature in preview packages. + * + * Generated from protobuf field bool rest_async_io_enabled = 1; + * @return bool + */ + public function getRestAsyncIoEnabled() + { + return $this->rest_async_io_enabled; + } + + /** + * Enables generation of asynchronous REST clients if `rest` transport is + * enabled. By default, asynchronous REST clients will not be generated. + * This feature will be enabled by default 1 month after launching the + * feature in preview packages. + * + * Generated from protobuf field bool rest_async_io_enabled = 1; + * @param bool $var + * @return $this + */ + public function setRestAsyncIoEnabled($var) + { + GPBUtil::checkBool($var); + $this->rest_async_io_enabled = $var; + + return $this; + } + + /** + * Enables generation of protobuf code using new types that are more + * Pythonic which are included in `protobuf>=5.29.x`. This feature will be + * enabled by default 1 month after launching the feature in preview + * packages. + * + * Generated from protobuf field bool protobuf_pythonic_types_enabled = 2; + * @return bool + */ + public function getProtobufPythonicTypesEnabled() + { + return $this->protobuf_pythonic_types_enabled; + } + + /** + * Enables generation of protobuf code using new types that are more + * Pythonic which are included in `protobuf>=5.29.x`. This feature will be + * enabled by default 1 month after launching the feature in preview + * packages. + * + * Generated from protobuf field bool protobuf_pythonic_types_enabled = 2; + * @param bool $var + * @return $this + */ + public function setProtobufPythonicTypesEnabled($var) + { + GPBUtil::checkBool($var); + $this->protobuf_pythonic_types_enabled = $var; + + return $this; + } + + /** + * Disables generation of an unversioned Python package for this client + * library. This means that the module names will need to be versioned in + * import statements. For example `import google.cloud.library_v2` instead + * of `import google.cloud.library`. + * + * Generated from protobuf field bool unversioned_package_disabled = 3; + * @return bool + */ + public function getUnversionedPackageDisabled() + { + return $this->unversioned_package_disabled; + } + + /** + * Disables generation of an unversioned Python package for this client + * library. This means that the module names will need to be versioned in + * import statements. For example `import google.cloud.library_v2` instead + * of `import google.cloud.library`. + * + * Generated from protobuf field bool unversioned_package_disabled = 3; + * @param bool $var + * @return $this + */ + public function setUnversionedPackageDisabled($var) + { + GPBUtil::checkBool($var); + $this->unversioned_package_disabled = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Api/Quota.php b/vendor/google/common-protos/src/Api/Quota.php new file mode 100644 index 0000000..a4d5db9 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Quota.php @@ -0,0 +1,144 @@ +google.api.Quota + */ +class Quota extends \Google\Protobuf\Internal\Message +{ + /** + * List of QuotaLimit definitions for the service. + * + * Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; + */ + private $limits; + /** + * List of MetricRule definitions, each one mapping a selected method to one + * or more metrics. + * + * Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; + */ + private $metric_rules; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\QuotaLimit>|\Google\Protobuf\Internal\RepeatedField $limits + * List of QuotaLimit definitions for the service. + * @type array<\Google\Api\MetricRule>|\Google\Protobuf\Internal\RepeatedField $metric_rules + * List of MetricRule definitions, each one mapping a selected method to one + * or more metrics. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Quota::initOnce(); + parent::__construct($data); + } + + /** + * List of QuotaLimit definitions for the service. + * + * Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLimits() + { + return $this->limits; + } + + /** + * List of QuotaLimit definitions for the service. + * + * Generated from protobuf field repeated .google.api.QuotaLimit limits = 3; + * @param array<\Google\Api\QuotaLimit>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLimits($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\QuotaLimit::class); + $this->limits = $arr; + + return $this; + } + + /** + * List of MetricRule definitions, each one mapping a selected method to one + * or more metrics. + * + * Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMetricRules() + { + return $this->metric_rules; + } + + /** + * List of MetricRule definitions, each one mapping a selected method to one + * or more metrics. + * + * Generated from protobuf field repeated .google.api.MetricRule metric_rules = 4; + * @param array<\Google\Api\MetricRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMetricRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MetricRule::class); + $this->metric_rules = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/QuotaLimit.php b/vendor/google/common-protos/src/Api/QuotaLimit.php new file mode 100644 index 0000000..977cd01 --- /dev/null +++ b/vendor/google/common-protos/src/Api/QuotaLimit.php @@ -0,0 +1,527 @@ +google.api.QuotaLimit + */ +class QuotaLimit extends \Google\Protobuf\Internal\Message +{ + /** + * Name of the quota limit. + * The name must be provided, and it must be unique within the service. The + * name can only include alphanumeric characters as well as '-'. + * The maximum length of the limit name is 64 characters. + * + * Generated from protobuf field string name = 6; + */ + protected $name = ''; + /** + * Optional. User-visible, extended description for this quota limit. + * Should be used only when more context is needed to understand this limit + * than provided by the limit's display name (see: `display_name`). + * + * Generated from protobuf field string description = 2; + */ + protected $description = ''; + /** + * Default number of tokens that can be consumed during the specified + * duration. This is the number of tokens assigned when a client + * application developer activates the service for his/her project. + * Specifying a value of 0 will block all requests. This can be used if you + * are provisioning quota to selected consumers and blocking others. + * Similarly, a value of -1 will indicate an unlimited quota. No other + * negative values are allowed. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 default_limit = 3; + */ + protected $default_limit = 0; + /** + * Maximum number of tokens that can be consumed during the specified + * duration. Client application developers can override the default limit up + * to this maximum. If specified, this value cannot be set to a value less + * than the default limit. If not specified, it is set to the default limit. + * To allow clients to apply overrides with no upper bound, set this to -1, + * indicating unlimited maximum quota. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 max_limit = 4; + */ + protected $max_limit = 0; + /** + * Free tier value displayed in the Developers Console for this limit. + * The free tier is the number of tokens that will be subtracted from the + * billed amount when billing is enabled. + * This field can only be set on a limit with duration "1d", in a billable + * group; it is invalid on any other limit. If this field is not set, it + * defaults to 0, indicating that there is no free tier for this service. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 free_tier = 7; + */ + protected $free_tier = 0; + /** + * Duration of this limit in textual notation. Must be "100s" or "1d". + * Used by group-based quotas only. + * + * Generated from protobuf field string duration = 5; + */ + protected $duration = ''; + /** + * The name of the metric this quota limit applies to. The quota limits with + * the same metric will be checked together during runtime. The metric must be + * defined within the service config. + * + * Generated from protobuf field string metric = 8; + */ + protected $metric = ''; + /** + * Specify the unit of the quota limit. It uses the same syntax as + * [MetricDescriptor.unit][google.api.MetricDescriptor.unit]. The supported + * unit kinds are determined by the quota backend system. + * Here are some examples: + * * "1/min/{project}" for quota per minute per project. + * Note: the order of unit components is insignificant. + * The "1" at the beginning is required to follow the metric unit syntax. + * + * Generated from protobuf field string unit = 9; + */ + protected $unit = ''; + /** + * Tiered limit values. You must specify this as a key:value pair, with an + * integer value that is the maximum number of requests allowed for the + * specified unit. Currently only STANDARD is supported. + * + * Generated from protobuf field map values = 10; + */ + private $values; + /** + * User-visible display name for this limit. + * Optional. If not set, the UI will provide a default display name based on + * the quota configuration. This field can be used to override the default + * display name generated from the configuration. + * + * Generated from protobuf field string display_name = 12; + */ + protected $display_name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Name of the quota limit. + * The name must be provided, and it must be unique within the service. The + * name can only include alphanumeric characters as well as '-'. + * The maximum length of the limit name is 64 characters. + * @type string $description + * Optional. User-visible, extended description for this quota limit. + * Should be used only when more context is needed to understand this limit + * than provided by the limit's display name (see: `display_name`). + * @type int|string $default_limit + * Default number of tokens that can be consumed during the specified + * duration. This is the number of tokens assigned when a client + * application developer activates the service for his/her project. + * Specifying a value of 0 will block all requests. This can be used if you + * are provisioning quota to selected consumers and blocking others. + * Similarly, a value of -1 will indicate an unlimited quota. No other + * negative values are allowed. + * Used by group-based quotas only. + * @type int|string $max_limit + * Maximum number of tokens that can be consumed during the specified + * duration. Client application developers can override the default limit up + * to this maximum. If specified, this value cannot be set to a value less + * than the default limit. If not specified, it is set to the default limit. + * To allow clients to apply overrides with no upper bound, set this to -1, + * indicating unlimited maximum quota. + * Used by group-based quotas only. + * @type int|string $free_tier + * Free tier value displayed in the Developers Console for this limit. + * The free tier is the number of tokens that will be subtracted from the + * billed amount when billing is enabled. + * This field can only be set on a limit with duration "1d", in a billable + * group; it is invalid on any other limit. If this field is not set, it + * defaults to 0, indicating that there is no free tier for this service. + * Used by group-based quotas only. + * @type string $duration + * Duration of this limit in textual notation. Must be "100s" or "1d". + * Used by group-based quotas only. + * @type string $metric + * The name of the metric this quota limit applies to. The quota limits with + * the same metric will be checked together during runtime. The metric must be + * defined within the service config. + * @type string $unit + * Specify the unit of the quota limit. It uses the same syntax as + * [MetricDescriptor.unit][google.api.MetricDescriptor.unit]. The supported + * unit kinds are determined by the quota backend system. + * Here are some examples: + * * "1/min/{project}" for quota per minute per project. + * Note: the order of unit components is insignificant. + * The "1" at the beginning is required to follow the metric unit syntax. + * @type array|\Google\Protobuf\Internal\MapField $values + * Tiered limit values. You must specify this as a key:value pair, with an + * integer value that is the maximum number of requests allowed for the + * specified unit. Currently only STANDARD is supported. + * @type string $display_name + * User-visible display name for this limit. + * Optional. If not set, the UI will provide a default display name based on + * the quota configuration. This field can be used to override the default + * display name generated from the configuration. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Quota::initOnce(); + parent::__construct($data); + } + + /** + * Name of the quota limit. + * The name must be provided, and it must be unique within the service. The + * name can only include alphanumeric characters as well as '-'. + * The maximum length of the limit name is 64 characters. + * + * Generated from protobuf field string name = 6; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Name of the quota limit. + * The name must be provided, and it must be unique within the service. The + * name can only include alphanumeric characters as well as '-'. + * The maximum length of the limit name is 64 characters. + * + * Generated from protobuf field string name = 6; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Optional. User-visible, extended description for this quota limit. + * Should be used only when more context is needed to understand this limit + * than provided by the limit's display name (see: `display_name`). + * + * Generated from protobuf field string description = 2; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. User-visible, extended description for this quota limit. + * Should be used only when more context is needed to understand this limit + * than provided by the limit's display name (see: `display_name`). + * + * Generated from protobuf field string description = 2; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Default number of tokens that can be consumed during the specified + * duration. This is the number of tokens assigned when a client + * application developer activates the service for his/her project. + * Specifying a value of 0 will block all requests. This can be used if you + * are provisioning quota to selected consumers and blocking others. + * Similarly, a value of -1 will indicate an unlimited quota. No other + * negative values are allowed. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 default_limit = 3; + * @return int|string + */ + public function getDefaultLimit() + { + return $this->default_limit; + } + + /** + * Default number of tokens that can be consumed during the specified + * duration. This is the number of tokens assigned when a client + * application developer activates the service for his/her project. + * Specifying a value of 0 will block all requests. This can be used if you + * are provisioning quota to selected consumers and blocking others. + * Similarly, a value of -1 will indicate an unlimited quota. No other + * negative values are allowed. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 default_limit = 3; + * @param int|string $var + * @return $this + */ + public function setDefaultLimit($var) + { + GPBUtil::checkInt64($var); + $this->default_limit = $var; + + return $this; + } + + /** + * Maximum number of tokens that can be consumed during the specified + * duration. Client application developers can override the default limit up + * to this maximum. If specified, this value cannot be set to a value less + * than the default limit. If not specified, it is set to the default limit. + * To allow clients to apply overrides with no upper bound, set this to -1, + * indicating unlimited maximum quota. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 max_limit = 4; + * @return int|string + */ + public function getMaxLimit() + { + return $this->max_limit; + } + + /** + * Maximum number of tokens that can be consumed during the specified + * duration. Client application developers can override the default limit up + * to this maximum. If specified, this value cannot be set to a value less + * than the default limit. If not specified, it is set to the default limit. + * To allow clients to apply overrides with no upper bound, set this to -1, + * indicating unlimited maximum quota. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 max_limit = 4; + * @param int|string $var + * @return $this + */ + public function setMaxLimit($var) + { + GPBUtil::checkInt64($var); + $this->max_limit = $var; + + return $this; + } + + /** + * Free tier value displayed in the Developers Console for this limit. + * The free tier is the number of tokens that will be subtracted from the + * billed amount when billing is enabled. + * This field can only be set on a limit with duration "1d", in a billable + * group; it is invalid on any other limit. If this field is not set, it + * defaults to 0, indicating that there is no free tier for this service. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 free_tier = 7; + * @return int|string + */ + public function getFreeTier() + { + return $this->free_tier; + } + + /** + * Free tier value displayed in the Developers Console for this limit. + * The free tier is the number of tokens that will be subtracted from the + * billed amount when billing is enabled. + * This field can only be set on a limit with duration "1d", in a billable + * group; it is invalid on any other limit. If this field is not set, it + * defaults to 0, indicating that there is no free tier for this service. + * Used by group-based quotas only. + * + * Generated from protobuf field int64 free_tier = 7; + * @param int|string $var + * @return $this + */ + public function setFreeTier($var) + { + GPBUtil::checkInt64($var); + $this->free_tier = $var; + + return $this; + } + + /** + * Duration of this limit in textual notation. Must be "100s" or "1d". + * Used by group-based quotas only. + * + * Generated from protobuf field string duration = 5; + * @return string + */ + public function getDuration() + { + return $this->duration; + } + + /** + * Duration of this limit in textual notation. Must be "100s" or "1d". + * Used by group-based quotas only. + * + * Generated from protobuf field string duration = 5; + * @param string $var + * @return $this + */ + public function setDuration($var) + { + GPBUtil::checkString($var, True); + $this->duration = $var; + + return $this; + } + + /** + * The name of the metric this quota limit applies to. The quota limits with + * the same metric will be checked together during runtime. The metric must be + * defined within the service config. + * + * Generated from protobuf field string metric = 8; + * @return string + */ + public function getMetric() + { + return $this->metric; + } + + /** + * The name of the metric this quota limit applies to. The quota limits with + * the same metric will be checked together during runtime. The metric must be + * defined within the service config. + * + * Generated from protobuf field string metric = 8; + * @param string $var + * @return $this + */ + public function setMetric($var) + { + GPBUtil::checkString($var, True); + $this->metric = $var; + + return $this; + } + + /** + * Specify the unit of the quota limit. It uses the same syntax as + * [MetricDescriptor.unit][google.api.MetricDescriptor.unit]. The supported + * unit kinds are determined by the quota backend system. + * Here are some examples: + * * "1/min/{project}" for quota per minute per project. + * Note: the order of unit components is insignificant. + * The "1" at the beginning is required to follow the metric unit syntax. + * + * Generated from protobuf field string unit = 9; + * @return string + */ + public function getUnit() + { + return $this->unit; + } + + /** + * Specify the unit of the quota limit. It uses the same syntax as + * [MetricDescriptor.unit][google.api.MetricDescriptor.unit]. The supported + * unit kinds are determined by the quota backend system. + * Here are some examples: + * * "1/min/{project}" for quota per minute per project. + * Note: the order of unit components is insignificant. + * The "1" at the beginning is required to follow the metric unit syntax. + * + * Generated from protobuf field string unit = 9; + * @param string $var + * @return $this + */ + public function setUnit($var) + { + GPBUtil::checkString($var, True); + $this->unit = $var; + + return $this; + } + + /** + * Tiered limit values. You must specify this as a key:value pair, with an + * integer value that is the maximum number of requests allowed for the + * specified unit. Currently only STANDARD is supported. + * + * Generated from protobuf field map values = 10; + * @return \Google\Protobuf\Internal\MapField + */ + public function getValues() + { + return $this->values; + } + + /** + * Tiered limit values. You must specify this as a key:value pair, with an + * integer value that is the maximum number of requests allowed for the + * specified unit. Currently only STANDARD is supported. + * + * Generated from protobuf field map values = 10; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setValues($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::INT64); + $this->values = $arr; + + return $this; + } + + /** + * User-visible display name for this limit. + * Optional. If not set, the UI will provide a default display name based on + * the quota configuration. This field can be used to override the default + * display name generated from the configuration. + * + * Generated from protobuf field string display_name = 12; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * User-visible display name for this limit. + * Optional. If not set, the UI will provide a default display name based on + * the quota configuration. This field can be used to override the default + * display name generated from the configuration. + * + * Generated from protobuf field string display_name = 12; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/ResourceDescriptor.php b/vendor/google/common-protos/src/Api/ResourceDescriptor.php new file mode 100644 index 0000000..f2c9f73 --- /dev/null +++ b/vendor/google/common-protos/src/Api/ResourceDescriptor.php @@ -0,0 +1,495 @@ +google.api.ResourceDescriptor + */ +class ResourceDescriptor extends \Google\Protobuf\Internal\Message +{ + /** + * The resource type. It must be in the format of + * {service_name}/{resource_type_kind}. The `resource_type_kind` must be + * singular and must not include version numbers. + * Example: `storage.googleapis.com/Bucket` + * The value of the resource_type_kind must follow the regular expression + * /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and + * should use PascalCase (UpperCamelCase). The maximum number of + * characters allowed for the `resource_type_kind` is 100. + * + * Generated from protobuf field string type = 1; + */ + protected $type = ''; + /** + * Optional. The relative resource name pattern associated with this resource + * type. The DNS prefix of the full resource name shouldn't be specified here. + * The path pattern must follow the syntax, which aligns with HTTP binding + * syntax: + * Template = Segment { "/" Segment } ; + * Segment = LITERAL | Variable ; + * Variable = "{" LITERAL "}" ; + * Examples: + * - "projects/{project}/topics/{topic}" + * - "projects/{project}/knowledgeBases/{knowledge_base}" + * The components in braces correspond to the IDs for each resource in the + * hierarchy. It is expected that, if multiple patterns are provided, + * the same component name (e.g. "project") refers to IDs of the same + * type of resource. + * + * Generated from protobuf field repeated string pattern = 2; + */ + private $pattern; + /** + * Optional. The field on the resource that designates the resource name + * field. If omitted, this is assumed to be "name". + * + * Generated from protobuf field string name_field = 3; + */ + protected $name_field = ''; + /** + * Optional. The historical or future-looking state of the resource pattern. + * Example: + * // The InspectTemplate message originally only supported resource + * // names with organization, and project was added later. + * message InspectTemplate { + * option (google.api.resource) = { + * type: "dlp.googleapis.com/InspectTemplate" + * pattern: + * "organizations/{organization}/inspectTemplates/{inspect_template}" + * pattern: "projects/{project}/inspectTemplates/{inspect_template}" + * history: ORIGINALLY_SINGLE_PATTERN + * }; + * } + * + * Generated from protobuf field .google.api.ResourceDescriptor.History history = 4; + */ + protected $history = 0; + /** + * The plural name used in the resource name and permission names, such as + * 'projects' for the resource name of 'projects/{project}' and the permission + * name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception + * to this is for Nested Collections that have stuttering names, as defined + * in [AIP-122](https://google.aip.dev/122#nested-collections), where the + * collection ID in the resource name pattern does not necessarily directly + * match the `plural` value. + * It is the same concept of the `plural` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Note: The plural form is required even for singleton resources. See + * https://aip.dev/156 + * + * Generated from protobuf field string plural = 5; + */ + protected $plural = ''; + /** + * The same concept of the `singular` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Such as "project" for the `resourcemanager.googleapis.com/Project` type. + * + * Generated from protobuf field string singular = 6; + */ + protected $singular = ''; + /** + * Style flag(s) for this resource. + * These indicate that a resource is expected to conform to a given + * style. See the specific style flags for additional information. + * + * Generated from protobuf field repeated .google.api.ResourceDescriptor.Style style = 10; + */ + private $style; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $type + * The resource type. It must be in the format of + * {service_name}/{resource_type_kind}. The `resource_type_kind` must be + * singular and must not include version numbers. + * Example: `storage.googleapis.com/Bucket` + * The value of the resource_type_kind must follow the regular expression + * /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and + * should use PascalCase (UpperCamelCase). The maximum number of + * characters allowed for the `resource_type_kind` is 100. + * @type array|\Google\Protobuf\Internal\RepeatedField $pattern + * Optional. The relative resource name pattern associated with this resource + * type. The DNS prefix of the full resource name shouldn't be specified here. + * The path pattern must follow the syntax, which aligns with HTTP binding + * syntax: + * Template = Segment { "/" Segment } ; + * Segment = LITERAL | Variable ; + * Variable = "{" LITERAL "}" ; + * Examples: + * - "projects/{project}/topics/{topic}" + * - "projects/{project}/knowledgeBases/{knowledge_base}" + * The components in braces correspond to the IDs for each resource in the + * hierarchy. It is expected that, if multiple patterns are provided, + * the same component name (e.g. "project") refers to IDs of the same + * type of resource. + * @type string $name_field + * Optional. The field on the resource that designates the resource name + * field. If omitted, this is assumed to be "name". + * @type int $history + * Optional. The historical or future-looking state of the resource pattern. + * Example: + * // The InspectTemplate message originally only supported resource + * // names with organization, and project was added later. + * message InspectTemplate { + * option (google.api.resource) = { + * type: "dlp.googleapis.com/InspectTemplate" + * pattern: + * "organizations/{organization}/inspectTemplates/{inspect_template}" + * pattern: "projects/{project}/inspectTemplates/{inspect_template}" + * history: ORIGINALLY_SINGLE_PATTERN + * }; + * } + * @type string $plural + * The plural name used in the resource name and permission names, such as + * 'projects' for the resource name of 'projects/{project}' and the permission + * name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception + * to this is for Nested Collections that have stuttering names, as defined + * in [AIP-122](https://google.aip.dev/122#nested-collections), where the + * collection ID in the resource name pattern does not necessarily directly + * match the `plural` value. + * It is the same concept of the `plural` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Note: The plural form is required even for singleton resources. See + * https://aip.dev/156 + * @type string $singular + * The same concept of the `singular` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Such as "project" for the `resourcemanager.googleapis.com/Project` type. + * @type array|\Google\Protobuf\Internal\RepeatedField $style + * Style flag(s) for this resource. + * These indicate that a resource is expected to conform to a given + * style. See the specific style flags for additional information. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Resource::initOnce(); + parent::__construct($data); + } + + /** + * The resource type. It must be in the format of + * {service_name}/{resource_type_kind}. The `resource_type_kind` must be + * singular and must not include version numbers. + * Example: `storage.googleapis.com/Bucket` + * The value of the resource_type_kind must follow the regular expression + * /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and + * should use PascalCase (UpperCamelCase). The maximum number of + * characters allowed for the `resource_type_kind` is 100. + * + * Generated from protobuf field string type = 1; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * The resource type. It must be in the format of + * {service_name}/{resource_type_kind}. The `resource_type_kind` must be + * singular and must not include version numbers. + * Example: `storage.googleapis.com/Bucket` + * The value of the resource_type_kind must follow the regular expression + * /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and + * should use PascalCase (UpperCamelCase). The maximum number of + * characters allowed for the `resource_type_kind` is 100. + * + * Generated from protobuf field string type = 1; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * Optional. The relative resource name pattern associated with this resource + * type. The DNS prefix of the full resource name shouldn't be specified here. + * The path pattern must follow the syntax, which aligns with HTTP binding + * syntax: + * Template = Segment { "/" Segment } ; + * Segment = LITERAL | Variable ; + * Variable = "{" LITERAL "}" ; + * Examples: + * - "projects/{project}/topics/{topic}" + * - "projects/{project}/knowledgeBases/{knowledge_base}" + * The components in braces correspond to the IDs for each resource in the + * hierarchy. It is expected that, if multiple patterns are provided, + * the same component name (e.g. "project") refers to IDs of the same + * type of resource. + * + * Generated from protobuf field repeated string pattern = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPattern() + { + return $this->pattern; + } + + /** + * Optional. The relative resource name pattern associated with this resource + * type. The DNS prefix of the full resource name shouldn't be specified here. + * The path pattern must follow the syntax, which aligns with HTTP binding + * syntax: + * Template = Segment { "/" Segment } ; + * Segment = LITERAL | Variable ; + * Variable = "{" LITERAL "}" ; + * Examples: + * - "projects/{project}/topics/{topic}" + * - "projects/{project}/knowledgeBases/{knowledge_base}" + * The components in braces correspond to the IDs for each resource in the + * hierarchy. It is expected that, if multiple patterns are provided, + * the same component name (e.g. "project") refers to IDs of the same + * type of resource. + * + * Generated from protobuf field repeated string pattern = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPattern($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->pattern = $arr; + + return $this; + } + + /** + * Optional. The field on the resource that designates the resource name + * field. If omitted, this is assumed to be "name". + * + * Generated from protobuf field string name_field = 3; + * @return string + */ + public function getNameField() + { + return $this->name_field; + } + + /** + * Optional. The field on the resource that designates the resource name + * field. If omitted, this is assumed to be "name". + * + * Generated from protobuf field string name_field = 3; + * @param string $var + * @return $this + */ + public function setNameField($var) + { + GPBUtil::checkString($var, True); + $this->name_field = $var; + + return $this; + } + + /** + * Optional. The historical or future-looking state of the resource pattern. + * Example: + * // The InspectTemplate message originally only supported resource + * // names with organization, and project was added later. + * message InspectTemplate { + * option (google.api.resource) = { + * type: "dlp.googleapis.com/InspectTemplate" + * pattern: + * "organizations/{organization}/inspectTemplates/{inspect_template}" + * pattern: "projects/{project}/inspectTemplates/{inspect_template}" + * history: ORIGINALLY_SINGLE_PATTERN + * }; + * } + * + * Generated from protobuf field .google.api.ResourceDescriptor.History history = 4; + * @return int + */ + public function getHistory() + { + return $this->history; + } + + /** + * Optional. The historical or future-looking state of the resource pattern. + * Example: + * // The InspectTemplate message originally only supported resource + * // names with organization, and project was added later. + * message InspectTemplate { + * option (google.api.resource) = { + * type: "dlp.googleapis.com/InspectTemplate" + * pattern: + * "organizations/{organization}/inspectTemplates/{inspect_template}" + * pattern: "projects/{project}/inspectTemplates/{inspect_template}" + * history: ORIGINALLY_SINGLE_PATTERN + * }; + * } + * + * Generated from protobuf field .google.api.ResourceDescriptor.History history = 4; + * @param int $var + * @return $this + */ + public function setHistory($var) + { + GPBUtil::checkEnum($var, \Google\Api\ResourceDescriptor\History::class); + $this->history = $var; + + return $this; + } + + /** + * The plural name used in the resource name and permission names, such as + * 'projects' for the resource name of 'projects/{project}' and the permission + * name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception + * to this is for Nested Collections that have stuttering names, as defined + * in [AIP-122](https://google.aip.dev/122#nested-collections), where the + * collection ID in the resource name pattern does not necessarily directly + * match the `plural` value. + * It is the same concept of the `plural` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Note: The plural form is required even for singleton resources. See + * https://aip.dev/156 + * + * Generated from protobuf field string plural = 5; + * @return string + */ + public function getPlural() + { + return $this->plural; + } + + /** + * The plural name used in the resource name and permission names, such as + * 'projects' for the resource name of 'projects/{project}' and the permission + * name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception + * to this is for Nested Collections that have stuttering names, as defined + * in [AIP-122](https://google.aip.dev/122#nested-collections), where the + * collection ID in the resource name pattern does not necessarily directly + * match the `plural` value. + * It is the same concept of the `plural` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Note: The plural form is required even for singleton resources. See + * https://aip.dev/156 + * + * Generated from protobuf field string plural = 5; + * @param string $var + * @return $this + */ + public function setPlural($var) + { + GPBUtil::checkString($var, True); + $this->plural = $var; + + return $this; + } + + /** + * The same concept of the `singular` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Such as "project" for the `resourcemanager.googleapis.com/Project` type. + * + * Generated from protobuf field string singular = 6; + * @return string + */ + public function getSingular() + { + return $this->singular; + } + + /** + * The same concept of the `singular` field in k8s CRD spec + * https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/ + * Such as "project" for the `resourcemanager.googleapis.com/Project` type. + * + * Generated from protobuf field string singular = 6; + * @param string $var + * @return $this + */ + public function setSingular($var) + { + GPBUtil::checkString($var, True); + $this->singular = $var; + + return $this; + } + + /** + * Style flag(s) for this resource. + * These indicate that a resource is expected to conform to a given + * style. See the specific style flags for additional information. + * + * Generated from protobuf field repeated .google.api.ResourceDescriptor.Style style = 10; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getStyle() + { + return $this->style; + } + + /** + * Style flag(s) for this resource. + * These indicate that a resource is expected to conform to a given + * style. See the specific style flags for additional information. + * + * Generated from protobuf field repeated .google.api.ResourceDescriptor.Style style = 10; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setStyle($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::ENUM, \Google\Api\ResourceDescriptor\Style::class); + $this->style = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/ResourceDescriptor/History.php b/vendor/google/common-protos/src/Api/ResourceDescriptor/History.php new file mode 100644 index 0000000..5005eb2 --- /dev/null +++ b/vendor/google/common-protos/src/Api/ResourceDescriptor/History.php @@ -0,0 +1,66 @@ +google.api.ResourceDescriptor.History + */ +class History +{ + /** + * The "unset" value. + * + * Generated from protobuf enum HISTORY_UNSPECIFIED = 0; + */ + const HISTORY_UNSPECIFIED = 0; + /** + * The resource originally had one pattern and launched as such, and + * additional patterns were added later. + * + * Generated from protobuf enum ORIGINALLY_SINGLE_PATTERN = 1; + */ + const ORIGINALLY_SINGLE_PATTERN = 1; + /** + * The resource has one pattern, but the API owner expects to add more + * later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents + * that from being necessary once there are multiple patterns.) + * + * Generated from protobuf enum FUTURE_MULTI_PATTERN = 2; + */ + const FUTURE_MULTI_PATTERN = 2; + + private static $valueToName = [ + self::HISTORY_UNSPECIFIED => 'HISTORY_UNSPECIFIED', + self::ORIGINALLY_SINGLE_PATTERN => 'ORIGINALLY_SINGLE_PATTERN', + self::FUTURE_MULTI_PATTERN => 'FUTURE_MULTI_PATTERN', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/ResourceDescriptor/Style.php b/vendor/google/common-protos/src/Api/ResourceDescriptor/Style.php new file mode 100644 index 0000000..4d0c56e --- /dev/null +++ b/vendor/google/common-protos/src/Api/ResourceDescriptor/Style.php @@ -0,0 +1,60 @@ +google.api.ResourceDescriptor.Style + */ +class Style +{ + /** + * The unspecified value. Do not use. + * + * Generated from protobuf enum STYLE_UNSPECIFIED = 0; + */ + const STYLE_UNSPECIFIED = 0; + /** + * This resource is intended to be "declarative-friendly". + * Declarative-friendly resources must be more strictly consistent, and + * setting this to true communicates to tools that this resource should + * adhere to declarative-friendly expectations. + * Note: This is used by the API linter (linter.aip.dev) to enable + * additional checks. + * + * Generated from protobuf enum DECLARATIVE_FRIENDLY = 1; + */ + const DECLARATIVE_FRIENDLY = 1; + + private static $valueToName = [ + self::STYLE_UNSPECIFIED => 'STYLE_UNSPECIFIED', + self::DECLARATIVE_FRIENDLY => 'DECLARATIVE_FRIENDLY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Api/ResourceReference.php b/vendor/google/common-protos/src/Api/ResourceReference.php new file mode 100644 index 0000000..c4c282d --- /dev/null +++ b/vendor/google/common-protos/src/Api/ResourceReference.php @@ -0,0 +1,190 @@ +google.api.ResourceReference + */ +class ResourceReference extends \Google\Protobuf\Internal\Message +{ + /** + * The resource type that the annotated field references. + * Example: + * message Subscription { + * string topic = 2 [(google.api.resource_reference) = { + * type: "pubsub.googleapis.com/Topic" + * }]; + * } + * Occasionally, a field may reference an arbitrary resource. In this case, + * APIs use the special value * in their resource reference. + * Example: + * message GetIamPolicyRequest { + * string resource = 2 [(google.api.resource_reference) = { + * type: "*" + * }]; + * } + * + * Generated from protobuf field string type = 1; + */ + protected $type = ''; + /** + * The resource type of a child collection that the annotated field + * references. This is useful for annotating the `parent` field that + * doesn't have a fixed resource type. + * Example: + * message ListLogEntriesRequest { + * string parent = 1 [(google.api.resource_reference) = { + * child_type: "logging.googleapis.com/LogEntry" + * }; + * } + * + * Generated from protobuf field string child_type = 2; + */ + protected $child_type = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $type + * The resource type that the annotated field references. + * Example: + * message Subscription { + * string topic = 2 [(google.api.resource_reference) = { + * type: "pubsub.googleapis.com/Topic" + * }]; + * } + * Occasionally, a field may reference an arbitrary resource. In this case, + * APIs use the special value * in their resource reference. + * Example: + * message GetIamPolicyRequest { + * string resource = 2 [(google.api.resource_reference) = { + * type: "*" + * }]; + * } + * @type string $child_type + * The resource type of a child collection that the annotated field + * references. This is useful for annotating the `parent` field that + * doesn't have a fixed resource type. + * Example: + * message ListLogEntriesRequest { + * string parent = 1 [(google.api.resource_reference) = { + * child_type: "logging.googleapis.com/LogEntry" + * }; + * } + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Resource::initOnce(); + parent::__construct($data); + } + + /** + * The resource type that the annotated field references. + * Example: + * message Subscription { + * string topic = 2 [(google.api.resource_reference) = { + * type: "pubsub.googleapis.com/Topic" + * }]; + * } + * Occasionally, a field may reference an arbitrary resource. In this case, + * APIs use the special value * in their resource reference. + * Example: + * message GetIamPolicyRequest { + * string resource = 2 [(google.api.resource_reference) = { + * type: "*" + * }]; + * } + * + * Generated from protobuf field string type = 1; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * The resource type that the annotated field references. + * Example: + * message Subscription { + * string topic = 2 [(google.api.resource_reference) = { + * type: "pubsub.googleapis.com/Topic" + * }]; + * } + * Occasionally, a field may reference an arbitrary resource. In this case, + * APIs use the special value * in their resource reference. + * Example: + * message GetIamPolicyRequest { + * string resource = 2 [(google.api.resource_reference) = { + * type: "*" + * }]; + * } + * + * Generated from protobuf field string type = 1; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * The resource type of a child collection that the annotated field + * references. This is useful for annotating the `parent` field that + * doesn't have a fixed resource type. + * Example: + * message ListLogEntriesRequest { + * string parent = 1 [(google.api.resource_reference) = { + * child_type: "logging.googleapis.com/LogEntry" + * }; + * } + * + * Generated from protobuf field string child_type = 2; + * @return string + */ + public function getChildType() + { + return $this->child_type; + } + + /** + * The resource type of a child collection that the annotated field + * references. This is useful for annotating the `parent` field that + * doesn't have a fixed resource type. + * Example: + * message ListLogEntriesRequest { + * string parent = 1 [(google.api.resource_reference) = { + * child_type: "logging.googleapis.com/LogEntry" + * }; + * } + * + * Generated from protobuf field string child_type = 2; + * @param string $var + * @return $this + */ + public function setChildType($var) + { + GPBUtil::checkString($var, True); + $this->child_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/RoutingParameter.php b/vendor/google/common-protos/src/Api/RoutingParameter.php new file mode 100644 index 0000000..1b32a8f --- /dev/null +++ b/vendor/google/common-protos/src/Api/RoutingParameter.php @@ -0,0 +1,281 @@ +google.api.RoutingParameter + */ +class RoutingParameter extends \Google\Protobuf\Internal\Message +{ + /** + * A request field to extract the header key-value pair from. + * + * Generated from protobuf field string field = 1; + */ + protected $field = ''; + /** + * A pattern matching the key-value field. Optional. + * If not specified, the whole field specified in the `field` field will be + * taken as value, and its name used as key. If specified, it MUST contain + * exactly one named segment (along with any number of unnamed segments) The + * pattern will be matched over the field specified in the `field` field, then + * if the match is successful: + * - the name of the single named segment will be used as a header name, + * - the match value of the segment will be used as a header value; + * if the match is NOT successful, nothing will be sent. + * Example: + * -- This is a field in the request message + * | that the header value will be extracted from. + * | + * | -- This is the key name in the + * | | routing header. + * V | + * field: "table_name" v + * path_template: "projects/*/{table_location=instances/*}/tables/*" + * ^ ^ + * | | + * In the {} brackets is the pattern that -- | + * specifies what to extract from the | + * field as a value to be sent. | + * | + * The string in the field must match the whole pattern -- + * before brackets, inside brackets, after brackets. + * When looking at this specific example, we can see that: + * - A key-value pair with the key `table_location` + * and the value matching `instances/*` should be added + * to the x-goog-request-params routing header. + * - The value is extracted from the request message's `table_name` field + * if it matches the full pattern specified: + * `projects/*/instances/*/tables/*`. + * **NB:** If the `path_template` field is not provided, the key name is + * equal to the field name, and the whole field should be sent as a value. + * This makes the pattern for the field and the value functionally equivalent + * to `**`, and the configuration + * { + * field: "table_name" + * } + * is a functionally equivalent shorthand to: + * { + * field: "table_name" + * path_template: "{table_name=**}" + * } + * See Example 1 for more details. + * + * Generated from protobuf field string path_template = 2; + */ + protected $path_template = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $field + * A request field to extract the header key-value pair from. + * @type string $path_template + * A pattern matching the key-value field. Optional. + * If not specified, the whole field specified in the `field` field will be + * taken as value, and its name used as key. If specified, it MUST contain + * exactly one named segment (along with any number of unnamed segments) The + * pattern will be matched over the field specified in the `field` field, then + * if the match is successful: + * - the name of the single named segment will be used as a header name, + * - the match value of the segment will be used as a header value; + * if the match is NOT successful, nothing will be sent. + * Example: + * -- This is a field in the request message + * | that the header value will be extracted from. + * | + * | -- This is the key name in the + * | | routing header. + * V | + * field: "table_name" v + * path_template: "projects/*/{table_location=instances/*}/tables/*" + * ^ ^ + * | | + * In the {} brackets is the pattern that -- | + * specifies what to extract from the | + * field as a value to be sent. | + * | + * The string in the field must match the whole pattern -- + * before brackets, inside brackets, after brackets. + * When looking at this specific example, we can see that: + * - A key-value pair with the key `table_location` + * and the value matching `instances/*` should be added + * to the x-goog-request-params routing header. + * - The value is extracted from the request message's `table_name` field + * if it matches the full pattern specified: + * `projects/*/instances/*/tables/*`. + * **NB:** If the `path_template` field is not provided, the key name is + * equal to the field name, and the whole field should be sent as a value. + * This makes the pattern for the field and the value functionally equivalent + * to `**`, and the configuration + * { + * field: "table_name" + * } + * is a functionally equivalent shorthand to: + * { + * field: "table_name" + * path_template: "{table_name=**}" + * } + * See Example 1 for more details. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Routing::initOnce(); + parent::__construct($data); + } + + /** + * A request field to extract the header key-value pair from. + * + * Generated from protobuf field string field = 1; + * @return string + */ + public function getField() + { + return $this->field; + } + + /** + * A request field to extract the header key-value pair from. + * + * Generated from protobuf field string field = 1; + * @param string $var + * @return $this + */ + public function setField($var) + { + GPBUtil::checkString($var, True); + $this->field = $var; + + return $this; + } + + /** + * A pattern matching the key-value field. Optional. + * If not specified, the whole field specified in the `field` field will be + * taken as value, and its name used as key. If specified, it MUST contain + * exactly one named segment (along with any number of unnamed segments) The + * pattern will be matched over the field specified in the `field` field, then + * if the match is successful: + * - the name of the single named segment will be used as a header name, + * - the match value of the segment will be used as a header value; + * if the match is NOT successful, nothing will be sent. + * Example: + * -- This is a field in the request message + * | that the header value will be extracted from. + * | + * | -- This is the key name in the + * | | routing header. + * V | + * field: "table_name" v + * path_template: "projects/*/{table_location=instances/*}/tables/*" + * ^ ^ + * | | + * In the {} brackets is the pattern that -- | + * specifies what to extract from the | + * field as a value to be sent. | + * | + * The string in the field must match the whole pattern -- + * before brackets, inside brackets, after brackets. + * When looking at this specific example, we can see that: + * - A key-value pair with the key `table_location` + * and the value matching `instances/*` should be added + * to the x-goog-request-params routing header. + * - The value is extracted from the request message's `table_name` field + * if it matches the full pattern specified: + * `projects/*/instances/*/tables/*`. + * **NB:** If the `path_template` field is not provided, the key name is + * equal to the field name, and the whole field should be sent as a value. + * This makes the pattern for the field and the value functionally equivalent + * to `**`, and the configuration + * { + * field: "table_name" + * } + * is a functionally equivalent shorthand to: + * { + * field: "table_name" + * path_template: "{table_name=**}" + * } + * See Example 1 for more details. + * + * Generated from protobuf field string path_template = 2; + * @return string + */ + public function getPathTemplate() + { + return $this->path_template; + } + + /** + * A pattern matching the key-value field. Optional. + * If not specified, the whole field specified in the `field` field will be + * taken as value, and its name used as key. If specified, it MUST contain + * exactly one named segment (along with any number of unnamed segments) The + * pattern will be matched over the field specified in the `field` field, then + * if the match is successful: + * - the name of the single named segment will be used as a header name, + * - the match value of the segment will be used as a header value; + * if the match is NOT successful, nothing will be sent. + * Example: + * -- This is a field in the request message + * | that the header value will be extracted from. + * | + * | -- This is the key name in the + * | | routing header. + * V | + * field: "table_name" v + * path_template: "projects/*/{table_location=instances/*}/tables/*" + * ^ ^ + * | | + * In the {} brackets is the pattern that -- | + * specifies what to extract from the | + * field as a value to be sent. | + * | + * The string in the field must match the whole pattern -- + * before brackets, inside brackets, after brackets. + * When looking at this specific example, we can see that: + * - A key-value pair with the key `table_location` + * and the value matching `instances/*` should be added + * to the x-goog-request-params routing header. + * - The value is extracted from the request message's `table_name` field + * if it matches the full pattern specified: + * `projects/*/instances/*/tables/*`. + * **NB:** If the `path_template` field is not provided, the key name is + * equal to the field name, and the whole field should be sent as a value. + * This makes the pattern for the field and the value functionally equivalent + * to `**`, and the configuration + * { + * field: "table_name" + * } + * is a functionally equivalent shorthand to: + * { + * field: "table_name" + * path_template: "{table_name=**}" + * } + * See Example 1 for more details. + * + * Generated from protobuf field string path_template = 2; + * @param string $var + * @return $this + */ + public function setPathTemplate($var) + { + GPBUtil::checkString($var, True); + $this->path_template = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/RoutingRule.php b/vendor/google/common-protos/src/Api/RoutingRule.php new file mode 100644 index 0000000..b5dab18 --- /dev/null +++ b/vendor/google/common-protos/src/Api/RoutingRule.php @@ -0,0 +1,353 @@ +/tables/` + * // - `projects//instances//tables/
` + * // - `region//zones//tables/
` + * string table_name = 1; + * // This value specifies routing for replication. + * // It can be in the following formats: + * // - `profiles/` + * // - a legacy `profile_id` that can be any string + * string app_profile_id = 2; + * } + * Example message: + * { + * table_name: projects/proj_foo/instances/instance_bar/table/table_baz, + * app_profile_id: profiles/prof_qux + * } + * The routing header consists of one or multiple key-value pairs. Every key + * and value must be percent-encoded, and joined together in the format of + * `key1=value1&key2=value2`. + * The examples below skip the percent-encoding for readability. + * Example 1 + * Extracting a field from the request to put into the routing header + * unchanged, with the key equal to the field name. + * annotation: + * option (google.api.routing) = { + * // Take the `app_profile_id`. + * routing_parameters { + * field: "app_profile_id" + * } + * }; + * result: + * x-goog-request-params: app_profile_id=profiles/prof_qux + * Example 2 + * Extracting a field from the request to put into the routing header + * unchanged, with the key different from the field name. + * annotation: + * option (google.api.routing) = { + * // Take the `app_profile_id`, but name it `routing_id` in the header. + * routing_parameters { + * field: "app_profile_id" + * path_template: "{routing_id=**}" + * } + * }; + * result: + * x-goog-request-params: routing_id=profiles/prof_qux + * Example 3 + * Extracting a field from the request to put into the routing + * header, while matching a path template syntax on the field's value. + * NB: it is more useful to send nothing than to send garbage for the purpose + * of dynamic routing, since garbage pollutes cache. Thus the matching. + * Sub-example 3a + * The field matches the template. + * annotation: + * option (google.api.routing) = { + * // Take the `table_name`, if it's well-formed (with project-based + * // syntax). + * routing_parameters { + * field: "table_name" + * path_template: "{table_name=projects/*/instances/*/**}" + * } + * }; + * result: + * x-goog-request-params: + * table_name=projects/proj_foo/instances/instance_bar/table/table_baz + * Sub-example 3b + * The field does not match the template. + * annotation: + * option (google.api.routing) = { + * // Take the `table_name`, if it's well-formed (with region-based + * // syntax). + * routing_parameters { + * field: "table_name" + * path_template: "{table_name=regions/*/zones/*/**}" + * } + * }; + * result: + * + * Sub-example 3c + * Multiple alternative conflictingly named path templates are + * specified. The one that matches is used to construct the header. + * annotation: + * option (google.api.routing) = { + * // Take the `table_name`, if it's well-formed, whether + * // using the region- or projects-based syntax. + * routing_parameters { + * field: "table_name" + * path_template: "{table_name=regions/*/zones/*/**}" + * } + * routing_parameters { + * field: "table_name" + * path_template: "{table_name=projects/*/instances/*/**}" + * } + * }; + * result: + * x-goog-request-params: + * table_name=projects/proj_foo/instances/instance_bar/table/table_baz + * Example 4 + * Extracting a single routing header key-value pair by matching a + * template syntax on (a part of) a single request field. + * annotation: + * option (google.api.routing) = { + * // Take just the project id from the `table_name` field. + * routing_parameters { + * field: "table_name" + * path_template: "{routing_id=projects/*}/**" + * } + * }; + * result: + * x-goog-request-params: routing_id=projects/proj_foo + * Example 5 + * Extracting a single routing header key-value pair by matching + * several conflictingly named path templates on (parts of) a single request + * field. The last template to match "wins" the conflict. + * annotation: + * option (google.api.routing) = { + * // If the `table_name` does not have instances information, + * // take just the project id for routing. + * // Otherwise take project + instance. + * routing_parameters { + * field: "table_name" + * path_template: "{routing_id=projects/*}/**" + * } + * routing_parameters { + * field: "table_name" + * path_template: "{routing_id=projects/*/instances/*}/**" + * } + * }; + * result: + * x-goog-request-params: + * routing_id=projects/proj_foo/instances/instance_bar + * Example 6 + * Extracting multiple routing header key-value pairs by matching + * several non-conflicting path templates on (parts of) a single request field. + * Sub-example 6a + * Make the templates strict, so that if the `table_name` does not + * have an instance information, nothing is sent. + * annotation: + * option (google.api.routing) = { + * // The routing code needs two keys instead of one composite + * // but works only for the tables with the "project-instance" name + * // syntax. + * routing_parameters { + * field: "table_name" + * path_template: "{project_id=projects/*}/instances/*/**" + * } + * routing_parameters { + * field: "table_name" + * path_template: "projects/*/{instance_id=instances/*}/**" + * } + * }; + * result: + * x-goog-request-params: + * project_id=projects/proj_foo&instance_id=instances/instance_bar + * Sub-example 6b + * Make the templates loose, so that if the `table_name` does not + * have an instance information, just the project id part is sent. + * annotation: + * option (google.api.routing) = { + * // The routing code wants two keys instead of one composite + * // but will work with just the `project_id` for tables without + * // an instance in the `table_name`. + * routing_parameters { + * field: "table_name" + * path_template: "{project_id=projects/*}/**" + * } + * routing_parameters { + * field: "table_name" + * path_template: "projects/*/{instance_id=instances/*}/**" + * } + * }; + * result (is the same as 6a for our example message because it has the instance + * information): + * x-goog-request-params: + * project_id=projects/proj_foo&instance_id=instances/instance_bar + * Example 7 + * Extracting multiple routing header key-value pairs by matching + * several path templates on multiple request fields. + * NB: note that here there is no way to specify sending nothing if one of the + * fields does not match its template. E.g. if the `table_name` is in the wrong + * format, the `project_id` will not be sent, but the `routing_id` will be. + * The backend routing code has to be aware of that and be prepared to not + * receive a full complement of keys if it expects multiple. + * annotation: + * option (google.api.routing) = { + * // The routing needs both `project_id` and `routing_id` + * // (from the `app_profile_id` field) for routing. + * routing_parameters { + * field: "table_name" + * path_template: "{project_id=projects/*}/**" + * } + * routing_parameters { + * field: "app_profile_id" + * path_template: "{routing_id=**}" + * } + * }; + * result: + * x-goog-request-params: + * project_id=projects/proj_foo&routing_id=profiles/prof_qux + * Example 8 + * Extracting a single routing header key-value pair by matching + * several conflictingly named path templates on several request fields. The + * last template to match "wins" the conflict. + * annotation: + * option (google.api.routing) = { + * // The `routing_id` can be a project id or a region id depending on + * // the table name format, but only if the `app_profile_id` is not set. + * // If `app_profile_id` is set it should be used instead. + * routing_parameters { + * field: "table_name" + * path_template: "{routing_id=projects/*}/**" + * } + * routing_parameters { + * field: "table_name" + * path_template: "{routing_id=regions/*}/**" + * } + * routing_parameters { + * field: "app_profile_id" + * path_template: "{routing_id=**}" + * } + * }; + * result: + * x-goog-request-params: routing_id=profiles/prof_qux + * Example 9 + * Bringing it all together. + * annotation: + * option (google.api.routing) = { + * // For routing both `table_location` and a `routing_id` are needed. + * // + * // table_location can be either an instance id or a region+zone id. + * // + * // For `routing_id`, take the value of `app_profile_id` + * // - If it's in the format `profiles/`, send + * // just the `` part. + * // - If it's any other literal, send it as is. + * // If the `app_profile_id` is empty, and the `table_name` starts with + * // the project_id, send that instead. + * routing_parameters { + * field: "table_name" + * path_template: "projects/*/{table_location=instances/*}/tables/*" + * } + * routing_parameters { + * field: "table_name" + * path_template: "{table_location=regions/*/zones/*}/tables/*" + * } + * routing_parameters { + * field: "table_name" + * path_template: "{routing_id=projects/*}/**" + * } + * routing_parameters { + * field: "app_profile_id" + * path_template: "{routing_id=**}" + * } + * routing_parameters { + * field: "app_profile_id" + * path_template: "profiles/{routing_id=*}" + * } + * }; + * result: + * x-goog-request-params: + * table_location=instances/instance_bar&routing_id=prof_qux + * + * Generated from protobuf message google.api.RoutingRule + */ +class RoutingRule extends \Google\Protobuf\Internal\Message +{ + /** + * A collection of Routing Parameter specifications. + * **NOTE:** If multiple Routing Parameters describe the same key + * (via the `path_template` field or via the `field` field when + * `path_template` is not provided), "last one wins" rule + * determines which Parameter gets used. + * See the examples for more details. + * + * Generated from protobuf field repeated .google.api.RoutingParameter routing_parameters = 2; + */ + private $routing_parameters; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\RoutingParameter>|\Google\Protobuf\Internal\RepeatedField $routing_parameters + * A collection of Routing Parameter specifications. + * **NOTE:** If multiple Routing Parameters describe the same key + * (via the `path_template` field or via the `field` field when + * `path_template` is not provided), "last one wins" rule + * determines which Parameter gets used. + * See the examples for more details. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Routing::initOnce(); + parent::__construct($data); + } + + /** + * A collection of Routing Parameter specifications. + * **NOTE:** If multiple Routing Parameters describe the same key + * (via the `path_template` field or via the `field` field when + * `path_template` is not provided), "last one wins" rule + * determines which Parameter gets used. + * See the examples for more details. + * + * Generated from protobuf field repeated .google.api.RoutingParameter routing_parameters = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRoutingParameters() + { + return $this->routing_parameters; + } + + /** + * A collection of Routing Parameter specifications. + * **NOTE:** If multiple Routing Parameters describe the same key + * (via the `path_template` field or via the `field` field when + * `path_template` is not provided), "last one wins" rule + * determines which Parameter gets used. + * See the examples for more details. + * + * Generated from protobuf field repeated .google.api.RoutingParameter routing_parameters = 2; + * @param array<\Google\Api\RoutingParameter>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRoutingParameters($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\RoutingParameter::class); + $this->routing_parameters = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/RubySettings.php b/vendor/google/common-protos/src/Api/RubySettings.php new file mode 100644 index 0000000..2ca343c --- /dev/null +++ b/vendor/google/common-protos/src/Api/RubySettings.php @@ -0,0 +1,77 @@ +google.api.RubySettings + */ +class RubySettings extends \Google\Protobuf\Internal\Message +{ + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + */ + protected $common = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Api\CommonLanguageSettings $common + * Some settings. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @return \Google\Api\CommonLanguageSettings|null + */ + public function getCommon() + { + return $this->common; + } + + public function hasCommon() + { + return isset($this->common); + } + + public function clearCommon() + { + unset($this->common); + } + + /** + * Some settings. + * + * Generated from protobuf field .google.api.CommonLanguageSettings common = 1; + * @param \Google\Api\CommonLanguageSettings $var + * @return $this + */ + public function setCommon($var) + { + GPBUtil::checkMessage($var, \Google\Api\CommonLanguageSettings::class); + $this->common = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/SelectiveGapicGeneration.php b/vendor/google/common-protos/src/Api/SelectiveGapicGeneration.php new file mode 100644 index 0000000..c6ababa --- /dev/null +++ b/vendor/google/common-protos/src/Api/SelectiveGapicGeneration.php @@ -0,0 +1,126 @@ +google.api.SelectiveGapicGeneration + */ +class SelectiveGapicGeneration extends \Google\Protobuf\Internal\Message +{ + /** + * An allowlist of the fully qualified names of RPCs that should be included + * on public client surfaces. + * + * Generated from protobuf field repeated string methods = 1; + */ + private $methods; + /** + * Setting this to true indicates to the client generators that methods + * that would be excluded from the generation should instead be generated + * in a way that indicates these methods should not be consumed by + * end users. How this is expressed is up to individual language + * implementations to decide. Some examples may be: added annotations, + * obfuscated identifiers, or other language idiomatic patterns. + * + * Generated from protobuf field bool generate_omitted_as_internal = 2; + */ + protected $generate_omitted_as_internal = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $methods + * An allowlist of the fully qualified names of RPCs that should be included + * on public client surfaces. + * @type bool $generate_omitted_as_internal + * Setting this to true indicates to the client generators that methods + * that would be excluded from the generation should instead be generated + * in a way that indicates these methods should not be consumed by + * end users. How this is expressed is up to individual language + * implementations to decide. Some examples may be: added annotations, + * obfuscated identifiers, or other language idiomatic patterns. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Client::initOnce(); + parent::__construct($data); + } + + /** + * An allowlist of the fully qualified names of RPCs that should be included + * on public client surfaces. + * + * Generated from protobuf field repeated string methods = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMethods() + { + return $this->methods; + } + + /** + * An allowlist of the fully qualified names of RPCs that should be included + * on public client surfaces. + * + * Generated from protobuf field repeated string methods = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMethods($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->methods = $arr; + + return $this; + } + + /** + * Setting this to true indicates to the client generators that methods + * that would be excluded from the generation should instead be generated + * in a way that indicates these methods should not be consumed by + * end users. How this is expressed is up to individual language + * implementations to decide. Some examples may be: added annotations, + * obfuscated identifiers, or other language idiomatic patterns. + * + * Generated from protobuf field bool generate_omitted_as_internal = 2; + * @return bool + */ + public function getGenerateOmittedAsInternal() + { + return $this->generate_omitted_as_internal; + } + + /** + * Setting this to true indicates to the client generators that methods + * that would be excluded from the generation should instead be generated + * in a way that indicates these methods should not be consumed by + * end users. How this is expressed is up to individual language + * implementations to decide. Some examples may be: added annotations, + * obfuscated identifiers, or other language idiomatic patterns. + * + * Generated from protobuf field bool generate_omitted_as_internal = 2; + * @param bool $var + * @return $this + */ + public function setGenerateOmittedAsInternal($var) + { + GPBUtil::checkBool($var); + $this->generate_omitted_as_internal = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Service.php b/vendor/google/common-protos/src/Api/Service.php new file mode 100644 index 0000000..c7ec18e --- /dev/null +++ b/vendor/google/common-protos/src/Api/Service.php @@ -0,0 +1,1246 @@ +google.api.Service + */ +class Service extends \Google\Protobuf\Internal\Message +{ + /** + * The service name, which is a DNS-like logical identifier for the + * service, such as `calendar.googleapis.com`. The service name + * typically goes through DNS verification to make sure the owner + * of the service also owns the DNS name. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The product title for this service, it is the name displayed in Google + * Cloud Console. + * + * Generated from protobuf field string title = 2; + */ + protected $title = ''; + /** + * The Google project that owns this service. + * + * Generated from protobuf field string producer_project_id = 22; + */ + protected $producer_project_id = ''; + /** + * A unique ID for a specific instance of this message, typically assigned + * by the client for tracking purpose. Must be no longer than 63 characters + * and only lower case letters, digits, '.', '_' and '-' are allowed. If + * empty, the server may choose to generate one instead. + * + * Generated from protobuf field string id = 33; + */ + protected $id = ''; + /** + * A list of API interfaces exported by this service. Only the `name` field + * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by + * the configuration author, as the remaining fields will be derived from the + * IDL during the normalization process. It is an error to specify an API + * interface here which cannot be resolved against the associated IDL files. + * + * Generated from protobuf field repeated .google.protobuf.Api apis = 3; + */ + private $apis; + /** + * A list of all proto message types included in this API service. + * Types referenced directly or indirectly by the `apis` are automatically + * included. Messages which are not referenced but shall be included, such as + * types used by the `google.protobuf.Any` type, should be listed here by + * name by the configuration author. Example: + * types: + * - name: google.protobuf.Int32 + * + * Generated from protobuf field repeated .google.protobuf.Type types = 4; + */ + private $types; + /** + * A list of all enum types included in this API service. Enums referenced + * directly or indirectly by the `apis` are automatically included. Enums + * which are not referenced but shall be included should be listed here by + * name by the configuration author. Example: + * enums: + * - name: google.someapi.v1.SomeEnum + * + * Generated from protobuf field repeated .google.protobuf.Enum enums = 5; + */ + private $enums; + /** + * Additional API documentation. + * + * Generated from protobuf field .google.api.Documentation documentation = 6; + */ + protected $documentation = null; + /** + * API backend configuration. + * + * Generated from protobuf field .google.api.Backend backend = 8; + */ + protected $backend = null; + /** + * HTTP configuration. + * + * Generated from protobuf field .google.api.Http http = 9; + */ + protected $http = null; + /** + * Quota configuration. + * + * Generated from protobuf field .google.api.Quota quota = 10; + */ + protected $quota = null; + /** + * Auth configuration. + * + * Generated from protobuf field .google.api.Authentication authentication = 11; + */ + protected $authentication = null; + /** + * Context configuration. + * + * Generated from protobuf field .google.api.Context context = 12; + */ + protected $context = null; + /** + * Configuration controlling usage of this service. + * + * Generated from protobuf field .google.api.Usage usage = 15; + */ + protected $usage = null; + /** + * Configuration for network endpoints. If this is empty, then an endpoint + * with the same name as the service is automatically generated to service all + * defined APIs. + * + * Generated from protobuf field repeated .google.api.Endpoint endpoints = 18; + */ + private $endpoints; + /** + * Configuration for the service control plane. + * + * Generated from protobuf field .google.api.Control control = 21; + */ + protected $control = null; + /** + * Defines the logs used by this service. + * + * Generated from protobuf field repeated .google.api.LogDescriptor logs = 23; + */ + private $logs; + /** + * Defines the metrics used by this service. + * + * Generated from protobuf field repeated .google.api.MetricDescriptor metrics = 24; + */ + private $metrics; + /** + * Defines the monitored resources used by this service. This is required + * by the [Service.monitoring][google.api.Service.monitoring] and + * [Service.logging][google.api.Service.logging] configurations. + * + * Generated from protobuf field repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25; + */ + private $monitored_resources; + /** + * Billing configuration. + * + * Generated from protobuf field .google.api.Billing billing = 26; + */ + protected $billing = null; + /** + * Logging configuration. + * + * Generated from protobuf field .google.api.Logging logging = 27; + */ + protected $logging = null; + /** + * Monitoring configuration. + * + * Generated from protobuf field .google.api.Monitoring monitoring = 28; + */ + protected $monitoring = null; + /** + * System parameter configuration. + * + * Generated from protobuf field .google.api.SystemParameters system_parameters = 29; + */ + protected $system_parameters = null; + /** + * Output only. The source information for this configuration if available. + * + * Generated from protobuf field .google.api.SourceInfo source_info = 37; + */ + protected $source_info = null; + /** + * Settings for [Google Cloud Client + * libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) + * generated from APIs defined as protocol buffers. + * + * Generated from protobuf field .google.api.Publishing publishing = 45; + */ + protected $publishing = null; + /** + * Obsolete. Do not use. + * This field has no semantic meaning. The service config compiler always + * sets this field to `3`. + * + * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; + */ + protected $config_version = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The service name, which is a DNS-like logical identifier for the + * service, such as `calendar.googleapis.com`. The service name + * typically goes through DNS verification to make sure the owner + * of the service also owns the DNS name. + * @type string $title + * The product title for this service, it is the name displayed in Google + * Cloud Console. + * @type string $producer_project_id + * The Google project that owns this service. + * @type string $id + * A unique ID for a specific instance of this message, typically assigned + * by the client for tracking purpose. Must be no longer than 63 characters + * and only lower case letters, digits, '.', '_' and '-' are allowed. If + * empty, the server may choose to generate one instead. + * @type array<\Google\Protobuf\Api>|\Google\Protobuf\Internal\RepeatedField $apis + * A list of API interfaces exported by this service. Only the `name` field + * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by + * the configuration author, as the remaining fields will be derived from the + * IDL during the normalization process. It is an error to specify an API + * interface here which cannot be resolved against the associated IDL files. + * @type array<\Google\Protobuf\Type>|\Google\Protobuf\Internal\RepeatedField $types + * A list of all proto message types included in this API service. + * Types referenced directly or indirectly by the `apis` are automatically + * included. Messages which are not referenced but shall be included, such as + * types used by the `google.protobuf.Any` type, should be listed here by + * name by the configuration author. Example: + * types: + * - name: google.protobuf.Int32 + * @type array<\Google\Protobuf\Enum>|\Google\Protobuf\Internal\RepeatedField $enums + * A list of all enum types included in this API service. Enums referenced + * directly or indirectly by the `apis` are automatically included. Enums + * which are not referenced but shall be included should be listed here by + * name by the configuration author. Example: + * enums: + * - name: google.someapi.v1.SomeEnum + * @type \Google\Api\Documentation $documentation + * Additional API documentation. + * @type \Google\Api\Backend $backend + * API backend configuration. + * @type \Google\Api\Http $http + * HTTP configuration. + * @type \Google\Api\Quota $quota + * Quota configuration. + * @type \Google\Api\Authentication $authentication + * Auth configuration. + * @type \Google\Api\Context $context + * Context configuration. + * @type \Google\Api\Usage $usage + * Configuration controlling usage of this service. + * @type array<\Google\Api\Endpoint>|\Google\Protobuf\Internal\RepeatedField $endpoints + * Configuration for network endpoints. If this is empty, then an endpoint + * with the same name as the service is automatically generated to service all + * defined APIs. + * @type \Google\Api\Control $control + * Configuration for the service control plane. + * @type array<\Google\Api\LogDescriptor>|\Google\Protobuf\Internal\RepeatedField $logs + * Defines the logs used by this service. + * @type array<\Google\Api\MetricDescriptor>|\Google\Protobuf\Internal\RepeatedField $metrics + * Defines the metrics used by this service. + * @type array<\Google\Api\MonitoredResourceDescriptor>|\Google\Protobuf\Internal\RepeatedField $monitored_resources + * Defines the monitored resources used by this service. This is required + * by the [Service.monitoring][google.api.Service.monitoring] and + * [Service.logging][google.api.Service.logging] configurations. + * @type \Google\Api\Billing $billing + * Billing configuration. + * @type \Google\Api\Logging $logging + * Logging configuration. + * @type \Google\Api\Monitoring $monitoring + * Monitoring configuration. + * @type \Google\Api\SystemParameters $system_parameters + * System parameter configuration. + * @type \Google\Api\SourceInfo $source_info + * Output only. The source information for this configuration if available. + * @type \Google\Api\Publishing $publishing + * Settings for [Google Cloud Client + * libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) + * generated from APIs defined as protocol buffers. + * @type \Google\Protobuf\UInt32Value $config_version + * Obsolete. Do not use. + * This field has no semantic meaning. The service config compiler always + * sets this field to `3`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Service::initOnce(); + parent::__construct($data); + } + + /** + * The service name, which is a DNS-like logical identifier for the + * service, such as `calendar.googleapis.com`. The service name + * typically goes through DNS verification to make sure the owner + * of the service also owns the DNS name. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The service name, which is a DNS-like logical identifier for the + * service, such as `calendar.googleapis.com`. The service name + * typically goes through DNS verification to make sure the owner + * of the service also owns the DNS name. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The product title for this service, it is the name displayed in Google + * Cloud Console. + * + * Generated from protobuf field string title = 2; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * The product title for this service, it is the name displayed in Google + * Cloud Console. + * + * Generated from protobuf field string title = 2; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * The Google project that owns this service. + * + * Generated from protobuf field string producer_project_id = 22; + * @return string + */ + public function getProducerProjectId() + { + return $this->producer_project_id; + } + + /** + * The Google project that owns this service. + * + * Generated from protobuf field string producer_project_id = 22; + * @param string $var + * @return $this + */ + public function setProducerProjectId($var) + { + GPBUtil::checkString($var, True); + $this->producer_project_id = $var; + + return $this; + } + + /** + * A unique ID for a specific instance of this message, typically assigned + * by the client for tracking purpose. Must be no longer than 63 characters + * and only lower case letters, digits, '.', '_' and '-' are allowed. If + * empty, the server may choose to generate one instead. + * + * Generated from protobuf field string id = 33; + * @return string + */ + public function getId() + { + return $this->id; + } + + /** + * A unique ID for a specific instance of this message, typically assigned + * by the client for tracking purpose. Must be no longer than 63 characters + * and only lower case letters, digits, '.', '_' and '-' are allowed. If + * empty, the server may choose to generate one instead. + * + * Generated from protobuf field string id = 33; + * @param string $var + * @return $this + */ + public function setId($var) + { + GPBUtil::checkString($var, True); + $this->id = $var; + + return $this; + } + + /** + * A list of API interfaces exported by this service. Only the `name` field + * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by + * the configuration author, as the remaining fields will be derived from the + * IDL during the normalization process. It is an error to specify an API + * interface here which cannot be resolved against the associated IDL files. + * + * Generated from protobuf field repeated .google.protobuf.Api apis = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getApis() + { + return $this->apis; + } + + /** + * A list of API interfaces exported by this service. Only the `name` field + * of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by + * the configuration author, as the remaining fields will be derived from the + * IDL during the normalization process. It is an error to specify an API + * interface here which cannot be resolved against the associated IDL files. + * + * Generated from protobuf field repeated .google.protobuf.Api apis = 3; + * @param array<\Google\Protobuf\Api>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setApis($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Api::class); + $this->apis = $arr; + + return $this; + } + + /** + * A list of all proto message types included in this API service. + * Types referenced directly or indirectly by the `apis` are automatically + * included. Messages which are not referenced but shall be included, such as + * types used by the `google.protobuf.Any` type, should be listed here by + * name by the configuration author. Example: + * types: + * - name: google.protobuf.Int32 + * + * Generated from protobuf field repeated .google.protobuf.Type types = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getTypes() + { + return $this->types; + } + + /** + * A list of all proto message types included in this API service. + * Types referenced directly or indirectly by the `apis` are automatically + * included. Messages which are not referenced but shall be included, such as + * types used by the `google.protobuf.Any` type, should be listed here by + * name by the configuration author. Example: + * types: + * - name: google.protobuf.Int32 + * + * Generated from protobuf field repeated .google.protobuf.Type types = 4; + * @param array<\Google\Protobuf\Type>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setTypes($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Type::class); + $this->types = $arr; + + return $this; + } + + /** + * A list of all enum types included in this API service. Enums referenced + * directly or indirectly by the `apis` are automatically included. Enums + * which are not referenced but shall be included should be listed here by + * name by the configuration author. Example: + * enums: + * - name: google.someapi.v1.SomeEnum + * + * Generated from protobuf field repeated .google.protobuf.Enum enums = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEnums() + { + return $this->enums; + } + + /** + * A list of all enum types included in this API service. Enums referenced + * directly or indirectly by the `apis` are automatically included. Enums + * which are not referenced but shall be included should be listed here by + * name by the configuration author. Example: + * enums: + * - name: google.someapi.v1.SomeEnum + * + * Generated from protobuf field repeated .google.protobuf.Enum enums = 5; + * @param array<\Google\Protobuf\Enum>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEnums($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Enum::class); + $this->enums = $arr; + + return $this; + } + + /** + * Additional API documentation. + * + * Generated from protobuf field .google.api.Documentation documentation = 6; + * @return \Google\Api\Documentation|null + */ + public function getDocumentation() + { + return $this->documentation; + } + + public function hasDocumentation() + { + return isset($this->documentation); + } + + public function clearDocumentation() + { + unset($this->documentation); + } + + /** + * Additional API documentation. + * + * Generated from protobuf field .google.api.Documentation documentation = 6; + * @param \Google\Api\Documentation $var + * @return $this + */ + public function setDocumentation($var) + { + GPBUtil::checkMessage($var, \Google\Api\Documentation::class); + $this->documentation = $var; + + return $this; + } + + /** + * API backend configuration. + * + * Generated from protobuf field .google.api.Backend backend = 8; + * @return \Google\Api\Backend|null + */ + public function getBackend() + { + return $this->backend; + } + + public function hasBackend() + { + return isset($this->backend); + } + + public function clearBackend() + { + unset($this->backend); + } + + /** + * API backend configuration. + * + * Generated from protobuf field .google.api.Backend backend = 8; + * @param \Google\Api\Backend $var + * @return $this + */ + public function setBackend($var) + { + GPBUtil::checkMessage($var, \Google\Api\Backend::class); + $this->backend = $var; + + return $this; + } + + /** + * HTTP configuration. + * + * Generated from protobuf field .google.api.Http http = 9; + * @return \Google\Api\Http|null + */ + public function getHttp() + { + return $this->http; + } + + public function hasHttp() + { + return isset($this->http); + } + + public function clearHttp() + { + unset($this->http); + } + + /** + * HTTP configuration. + * + * Generated from protobuf field .google.api.Http http = 9; + * @param \Google\Api\Http $var + * @return $this + */ + public function setHttp($var) + { + GPBUtil::checkMessage($var, \Google\Api\Http::class); + $this->http = $var; + + return $this; + } + + /** + * Quota configuration. + * + * Generated from protobuf field .google.api.Quota quota = 10; + * @return \Google\Api\Quota|null + */ + public function getQuota() + { + return $this->quota; + } + + public function hasQuota() + { + return isset($this->quota); + } + + public function clearQuota() + { + unset($this->quota); + } + + /** + * Quota configuration. + * + * Generated from protobuf field .google.api.Quota quota = 10; + * @param \Google\Api\Quota $var + * @return $this + */ + public function setQuota($var) + { + GPBUtil::checkMessage($var, \Google\Api\Quota::class); + $this->quota = $var; + + return $this; + } + + /** + * Auth configuration. + * + * Generated from protobuf field .google.api.Authentication authentication = 11; + * @return \Google\Api\Authentication|null + */ + public function getAuthentication() + { + return $this->authentication; + } + + public function hasAuthentication() + { + return isset($this->authentication); + } + + public function clearAuthentication() + { + unset($this->authentication); + } + + /** + * Auth configuration. + * + * Generated from protobuf field .google.api.Authentication authentication = 11; + * @param \Google\Api\Authentication $var + * @return $this + */ + public function setAuthentication($var) + { + GPBUtil::checkMessage($var, \Google\Api\Authentication::class); + $this->authentication = $var; + + return $this; + } + + /** + * Context configuration. + * + * Generated from protobuf field .google.api.Context context = 12; + * @return \Google\Api\Context|null + */ + public function getContext() + { + return $this->context; + } + + public function hasContext() + { + return isset($this->context); + } + + public function clearContext() + { + unset($this->context); + } + + /** + * Context configuration. + * + * Generated from protobuf field .google.api.Context context = 12; + * @param \Google\Api\Context $var + * @return $this + */ + public function setContext($var) + { + GPBUtil::checkMessage($var, \Google\Api\Context::class); + $this->context = $var; + + return $this; + } + + /** + * Configuration controlling usage of this service. + * + * Generated from protobuf field .google.api.Usage usage = 15; + * @return \Google\Api\Usage|null + */ + public function getUsage() + { + return $this->usage; + } + + public function hasUsage() + { + return isset($this->usage); + } + + public function clearUsage() + { + unset($this->usage); + } + + /** + * Configuration controlling usage of this service. + * + * Generated from protobuf field .google.api.Usage usage = 15; + * @param \Google\Api\Usage $var + * @return $this + */ + public function setUsage($var) + { + GPBUtil::checkMessage($var, \Google\Api\Usage::class); + $this->usage = $var; + + return $this; + } + + /** + * Configuration for network endpoints. If this is empty, then an endpoint + * with the same name as the service is automatically generated to service all + * defined APIs. + * + * Generated from protobuf field repeated .google.api.Endpoint endpoints = 18; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getEndpoints() + { + return $this->endpoints; + } + + /** + * Configuration for network endpoints. If this is empty, then an endpoint + * with the same name as the service is automatically generated to service all + * defined APIs. + * + * Generated from protobuf field repeated .google.api.Endpoint endpoints = 18; + * @param array<\Google\Api\Endpoint>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setEndpoints($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\Endpoint::class); + $this->endpoints = $arr; + + return $this; + } + + /** + * Configuration for the service control plane. + * + * Generated from protobuf field .google.api.Control control = 21; + * @return \Google\Api\Control|null + */ + public function getControl() + { + return $this->control; + } + + public function hasControl() + { + return isset($this->control); + } + + public function clearControl() + { + unset($this->control); + } + + /** + * Configuration for the service control plane. + * + * Generated from protobuf field .google.api.Control control = 21; + * @param \Google\Api\Control $var + * @return $this + */ + public function setControl($var) + { + GPBUtil::checkMessage($var, \Google\Api\Control::class); + $this->control = $var; + + return $this; + } + + /** + * Defines the logs used by this service. + * + * Generated from protobuf field repeated .google.api.LogDescriptor logs = 23; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLogs() + { + return $this->logs; + } + + /** + * Defines the logs used by this service. + * + * Generated from protobuf field repeated .google.api.LogDescriptor logs = 23; + * @param array<\Google\Api\LogDescriptor>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLogs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\LogDescriptor::class); + $this->logs = $arr; + + return $this; + } + + /** + * Defines the metrics used by this service. + * + * Generated from protobuf field repeated .google.api.MetricDescriptor metrics = 24; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMetrics() + { + return $this->metrics; + } + + /** + * Defines the metrics used by this service. + * + * Generated from protobuf field repeated .google.api.MetricDescriptor metrics = 24; + * @param array<\Google\Api\MetricDescriptor>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMetrics($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MetricDescriptor::class); + $this->metrics = $arr; + + return $this; + } + + /** + * Defines the monitored resources used by this service. This is required + * by the [Service.monitoring][google.api.Service.monitoring] and + * [Service.logging][google.api.Service.logging] configurations. + * + * Generated from protobuf field repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMonitoredResources() + { + return $this->monitored_resources; + } + + /** + * Defines the monitored resources used by this service. This is required + * by the [Service.monitoring][google.api.Service.monitoring] and + * [Service.logging][google.api.Service.logging] configurations. + * + * Generated from protobuf field repeated .google.api.MonitoredResourceDescriptor monitored_resources = 25; + * @param array<\Google\Api\MonitoredResourceDescriptor>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMonitoredResources($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\MonitoredResourceDescriptor::class); + $this->monitored_resources = $arr; + + return $this; + } + + /** + * Billing configuration. + * + * Generated from protobuf field .google.api.Billing billing = 26; + * @return \Google\Api\Billing|null + */ + public function getBilling() + { + return $this->billing; + } + + public function hasBilling() + { + return isset($this->billing); + } + + public function clearBilling() + { + unset($this->billing); + } + + /** + * Billing configuration. + * + * Generated from protobuf field .google.api.Billing billing = 26; + * @param \Google\Api\Billing $var + * @return $this + */ + public function setBilling($var) + { + GPBUtil::checkMessage($var, \Google\Api\Billing::class); + $this->billing = $var; + + return $this; + } + + /** + * Logging configuration. + * + * Generated from protobuf field .google.api.Logging logging = 27; + * @return \Google\Api\Logging|null + */ + public function getLogging() + { + return $this->logging; + } + + public function hasLogging() + { + return isset($this->logging); + } + + public function clearLogging() + { + unset($this->logging); + } + + /** + * Logging configuration. + * + * Generated from protobuf field .google.api.Logging logging = 27; + * @param \Google\Api\Logging $var + * @return $this + */ + public function setLogging($var) + { + GPBUtil::checkMessage($var, \Google\Api\Logging::class); + $this->logging = $var; + + return $this; + } + + /** + * Monitoring configuration. + * + * Generated from protobuf field .google.api.Monitoring monitoring = 28; + * @return \Google\Api\Monitoring|null + */ + public function getMonitoring() + { + return $this->monitoring; + } + + public function hasMonitoring() + { + return isset($this->monitoring); + } + + public function clearMonitoring() + { + unset($this->monitoring); + } + + /** + * Monitoring configuration. + * + * Generated from protobuf field .google.api.Monitoring monitoring = 28; + * @param \Google\Api\Monitoring $var + * @return $this + */ + public function setMonitoring($var) + { + GPBUtil::checkMessage($var, \Google\Api\Monitoring::class); + $this->monitoring = $var; + + return $this; + } + + /** + * System parameter configuration. + * + * Generated from protobuf field .google.api.SystemParameters system_parameters = 29; + * @return \Google\Api\SystemParameters|null + */ + public function getSystemParameters() + { + return $this->system_parameters; + } + + public function hasSystemParameters() + { + return isset($this->system_parameters); + } + + public function clearSystemParameters() + { + unset($this->system_parameters); + } + + /** + * System parameter configuration. + * + * Generated from protobuf field .google.api.SystemParameters system_parameters = 29; + * @param \Google\Api\SystemParameters $var + * @return $this + */ + public function setSystemParameters($var) + { + GPBUtil::checkMessage($var, \Google\Api\SystemParameters::class); + $this->system_parameters = $var; + + return $this; + } + + /** + * Output only. The source information for this configuration if available. + * + * Generated from protobuf field .google.api.SourceInfo source_info = 37; + * @return \Google\Api\SourceInfo|null + */ + public function getSourceInfo() + { + return $this->source_info; + } + + public function hasSourceInfo() + { + return isset($this->source_info); + } + + public function clearSourceInfo() + { + unset($this->source_info); + } + + /** + * Output only. The source information for this configuration if available. + * + * Generated from protobuf field .google.api.SourceInfo source_info = 37; + * @param \Google\Api\SourceInfo $var + * @return $this + */ + public function setSourceInfo($var) + { + GPBUtil::checkMessage($var, \Google\Api\SourceInfo::class); + $this->source_info = $var; + + return $this; + } + + /** + * Settings for [Google Cloud Client + * libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) + * generated from APIs defined as protocol buffers. + * + * Generated from protobuf field .google.api.Publishing publishing = 45; + * @return \Google\Api\Publishing|null + */ + public function getPublishing() + { + return $this->publishing; + } + + public function hasPublishing() + { + return isset($this->publishing); + } + + public function clearPublishing() + { + unset($this->publishing); + } + + /** + * Settings for [Google Cloud Client + * libraries](https://cloud.google.com/apis/docs/cloud-client-libraries) + * generated from APIs defined as protocol buffers. + * + * Generated from protobuf field .google.api.Publishing publishing = 45; + * @param \Google\Api\Publishing $var + * @return $this + */ + public function setPublishing($var) + { + GPBUtil::checkMessage($var, \Google\Api\Publishing::class); + $this->publishing = $var; + + return $this; + } + + /** + * Obsolete. Do not use. + * This field has no semantic meaning. The service config compiler always + * sets this field to `3`. + * + * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; + * @return \Google\Protobuf\UInt32Value|null + */ + public function getConfigVersion() + { + return $this->config_version; + } + + public function hasConfigVersion() + { + return isset($this->config_version); + } + + public function clearConfigVersion() + { + unset($this->config_version); + } + + /** + * Returns the unboxed value from getConfigVersion() + + * Obsolete. Do not use. + * This field has no semantic meaning. The service config compiler always + * sets this field to `3`. + * + * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; + * @return int|null + */ + public function getConfigVersionUnwrapped() + { + return $this->readWrapperValue("config_version"); + } + + /** + * Obsolete. Do not use. + * This field has no semantic meaning. The service config compiler always + * sets this field to `3`. + * + * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; + * @param \Google\Protobuf\UInt32Value $var + * @return $this + */ + public function setConfigVersion($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\UInt32Value::class); + $this->config_version = $var; + + return $this; + } + + /** + * Sets the field by wrapping a primitive type in a Google\Protobuf\UInt32Value object. + + * Obsolete. Do not use. + * This field has no semantic meaning. The service config compiler always + * sets this field to `3`. + * + * Generated from protobuf field .google.protobuf.UInt32Value config_version = 20; + * @param int|null $var + * @return $this + */ + public function setConfigVersionUnwrapped($var) + { + $this->writeWrapperValue("config_version", $var); + return $this;} + +} + diff --git a/vendor/google/common-protos/src/Api/SourceInfo.php b/vendor/google/common-protos/src/Api/SourceInfo.php new file mode 100644 index 0000000..503f317 --- /dev/null +++ b/vendor/google/common-protos/src/Api/SourceInfo.php @@ -0,0 +1,67 @@ +google.api.SourceInfo + */ +class SourceInfo extends \Google\Protobuf\Internal\Message +{ + /** + * All files used during config generation. + * + * Generated from protobuf field repeated .google.protobuf.Any source_files = 1; + */ + private $source_files; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $source_files + * All files used during config generation. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\SourceInfo::initOnce(); + parent::__construct($data); + } + + /** + * All files used during config generation. + * + * Generated from protobuf field repeated .google.protobuf.Any source_files = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getSourceFiles() + { + return $this->source_files; + } + + /** + * All files used during config generation. + * + * Generated from protobuf field repeated .google.protobuf.Any source_files = 1; + * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setSourceFiles($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); + $this->source_files = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/SystemParameter.php b/vendor/google/common-protos/src/Api/SystemParameter.php new file mode 100644 index 0000000..e6828a2 --- /dev/null +++ b/vendor/google/common-protos/src/Api/SystemParameter.php @@ -0,0 +1,145 @@ +google.api.SystemParameter + */ +class SystemParameter extends \Google\Protobuf\Internal\Message +{ + /** + * Define the name of the parameter, such as "api_key" . It is case sensitive. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Define the HTTP header name to use for the parameter. It is case + * insensitive. + * + * Generated from protobuf field string http_header = 2; + */ + protected $http_header = ''; + /** + * Define the URL query parameter name to use for the parameter. It is case + * sensitive. + * + * Generated from protobuf field string url_query_parameter = 3; + */ + protected $url_query_parameter = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Define the name of the parameter, such as "api_key" . It is case sensitive. + * @type string $http_header + * Define the HTTP header name to use for the parameter. It is case + * insensitive. + * @type string $url_query_parameter + * Define the URL query parameter name to use for the parameter. It is case + * sensitive. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\SystemParameter::initOnce(); + parent::__construct($data); + } + + /** + * Define the name of the parameter, such as "api_key" . It is case sensitive. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Define the name of the parameter, such as "api_key" . It is case sensitive. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * Define the HTTP header name to use for the parameter. It is case + * insensitive. + * + * Generated from protobuf field string http_header = 2; + * @return string + */ + public function getHttpHeader() + { + return $this->http_header; + } + + /** + * Define the HTTP header name to use for the parameter. It is case + * insensitive. + * + * Generated from protobuf field string http_header = 2; + * @param string $var + * @return $this + */ + public function setHttpHeader($var) + { + GPBUtil::checkString($var, True); + $this->http_header = $var; + + return $this; + } + + /** + * Define the URL query parameter name to use for the parameter. It is case + * sensitive. + * + * Generated from protobuf field string url_query_parameter = 3; + * @return string + */ + public function getUrlQueryParameter() + { + return $this->url_query_parameter; + } + + /** + * Define the URL query parameter name to use for the parameter. It is case + * sensitive. + * + * Generated from protobuf field string url_query_parameter = 3; + * @param string $var + * @return $this + */ + public function setUrlQueryParameter($var) + { + GPBUtil::checkString($var, True); + $this->url_query_parameter = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/SystemParameterRule.php b/vendor/google/common-protos/src/Api/SystemParameterRule.php new file mode 100644 index 0000000..b2b475c --- /dev/null +++ b/vendor/google/common-protos/src/Api/SystemParameterRule.php @@ -0,0 +1,130 @@ +google.api.SystemParameterRule + */ +class SystemParameterRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * Define parameters. Multiple names may be defined for a parameter. + * For a given method call, only one of them should be used. If multiple + * names are used the behavior is implementation-dependent. + * If none of the specified names are present the behavior is + * parameter-dependent. + * + * Generated from protobuf field repeated .google.api.SystemParameter parameters = 2; + */ + private $parameters; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type array<\Google\Api\SystemParameter>|\Google\Protobuf\Internal\RepeatedField $parameters + * Define parameters. Multiple names may be defined for a parameter. + * For a given method call, only one of them should be used. If multiple + * names are used the behavior is implementation-dependent. + * If none of the specified names are present the behavior is + * parameter-dependent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\SystemParameter::initOnce(); + parent::__construct($data); + } + + /** + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * Define parameters. Multiple names may be defined for a parameter. + * For a given method call, only one of them should be used. If multiple + * names are used the behavior is implementation-dependent. + * If none of the specified names are present the behavior is + * parameter-dependent. + * + * Generated from protobuf field repeated .google.api.SystemParameter parameters = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getParameters() + { + return $this->parameters; + } + + /** + * Define parameters. Multiple names may be defined for a parameter. + * For a given method call, only one of them should be used. If multiple + * names are used the behavior is implementation-dependent. + * If none of the specified names are present the behavior is + * parameter-dependent. + * + * Generated from protobuf field repeated .google.api.SystemParameter parameters = 2; + * @param array<\Google\Api\SystemParameter>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setParameters($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\SystemParameter::class); + $this->parameters = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/SystemParameters.php b/vendor/google/common-protos/src/Api/SystemParameters.php new file mode 100644 index 0000000..04a674c --- /dev/null +++ b/vendor/google/common-protos/src/Api/SystemParameters.php @@ -0,0 +1,155 @@ +google.api.SystemParameters + */ +class SystemParameters extends \Google\Protobuf\Internal\Message +{ + /** + * Define system parameters. + * The parameters defined here will override the default parameters + * implemented by the system. If this field is missing from the service + * config, default system parameters will be used. Default system parameters + * and names is implementation-dependent. + * Example: define api key for all methods + * system_parameters + * rules: + * - selector: "*" + * parameters: + * - name: api_key + * url_query_parameter: api_key + * Example: define 2 api key names for a specific method. + * system_parameters + * rules: + * - selector: "/ListShelves" + * parameters: + * - name: api_key + * http_header: Api-Key1 + * - name: api_key + * http_header: Api-Key2 + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.SystemParameterRule rules = 1; + */ + private $rules; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\SystemParameterRule>|\Google\Protobuf\Internal\RepeatedField $rules + * Define system parameters. + * The parameters defined here will override the default parameters + * implemented by the system. If this field is missing from the service + * config, default system parameters will be used. Default system parameters + * and names is implementation-dependent. + * Example: define api key for all methods + * system_parameters + * rules: + * - selector: "*" + * parameters: + * - name: api_key + * url_query_parameter: api_key + * Example: define 2 api key names for a specific method. + * system_parameters + * rules: + * - selector: "/ListShelves" + * parameters: + * - name: api_key + * http_header: Api-Key1 + * - name: api_key + * http_header: Api-Key2 + * **NOTE:** All service configuration rules follow "last one wins" order. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\SystemParameter::initOnce(); + parent::__construct($data); + } + + /** + * Define system parameters. + * The parameters defined here will override the default parameters + * implemented by the system. If this field is missing from the service + * config, default system parameters will be used. Default system parameters + * and names is implementation-dependent. + * Example: define api key for all methods + * system_parameters + * rules: + * - selector: "*" + * parameters: + * - name: api_key + * url_query_parameter: api_key + * Example: define 2 api key names for a specific method. + * system_parameters + * rules: + * - selector: "/ListShelves" + * parameters: + * - name: api_key + * http_header: Api-Key1 + * - name: api_key + * http_header: Api-Key2 + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.SystemParameterRule rules = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * Define system parameters. + * The parameters defined here will override the default parameters + * implemented by the system. If this field is missing from the service + * config, default system parameters will be used. Default system parameters + * and names is implementation-dependent. + * Example: define api key for all methods + * system_parameters + * rules: + * - selector: "*" + * parameters: + * - name: api_key + * url_query_parameter: api_key + * Example: define 2 api key names for a specific method. + * system_parameters + * rules: + * - selector: "/ListShelves" + * parameters: + * - name: api_key + * http_header: Api-Key1 + * - name: api_key + * http_header: Api-Key2 + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.SystemParameterRule rules = 1; + * @param array<\Google\Api\SystemParameterRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\SystemParameterRule::class); + $this->rules = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/TypeReference.php b/vendor/google/common-protos/src/Api/TypeReference.php new file mode 100644 index 0000000..1ce287b --- /dev/null +++ b/vendor/google/common-protos/src/Api/TypeReference.php @@ -0,0 +1,91 @@ +google.api.TypeReference + */ +class TypeReference extends \Google\Protobuf\Internal\Message +{ + /** + * The name of the type that the annotated, generic field may represent. + * If the type is in the same protobuf package, the value can be the simple + * message name e.g., `"MyMessage"`. Otherwise, the value must be the + * fully-qualified message name e.g., `"google.library.v1.Book"`. + * If the type(s) are unknown to the service (e.g. the field accepts generic + * user input), use the wildcard `"*"` to denote this behavior. + * See [AIP-202](https://google.aip.dev/202#type-references) for more details. + * + * Generated from protobuf field string type_name = 1; + */ + protected $type_name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $type_name + * The name of the type that the annotated, generic field may represent. + * If the type is in the same protobuf package, the value can be the simple + * message name e.g., `"MyMessage"`. Otherwise, the value must be the + * fully-qualified message name e.g., `"google.library.v1.Book"`. + * If the type(s) are unknown to the service (e.g. the field accepts generic + * user input), use the wildcard `"*"` to denote this behavior. + * See [AIP-202](https://google.aip.dev/202#type-references) for more details. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\FieldInfo::initOnce(); + parent::__construct($data); + } + + /** + * The name of the type that the annotated, generic field may represent. + * If the type is in the same protobuf package, the value can be the simple + * message name e.g., `"MyMessage"`. Otherwise, the value must be the + * fully-qualified message name e.g., `"google.library.v1.Book"`. + * If the type(s) are unknown to the service (e.g. the field accepts generic + * user input), use the wildcard `"*"` to denote this behavior. + * See [AIP-202](https://google.aip.dev/202#type-references) for more details. + * + * Generated from protobuf field string type_name = 1; + * @return string + */ + public function getTypeName() + { + return $this->type_name; + } + + /** + * The name of the type that the annotated, generic field may represent. + * If the type is in the same protobuf package, the value can be the simple + * message name e.g., `"MyMessage"`. Otherwise, the value must be the + * fully-qualified message name e.g., `"google.library.v1.Book"`. + * If the type(s) are unknown to the service (e.g. the field accepts generic + * user input), use the wildcard `"*"` to denote this behavior. + * See [AIP-202](https://google.aip.dev/202#type-references) for more details. + * + * Generated from protobuf field string type_name = 1; + * @param string $var + * @return $this + */ + public function setTypeName($var) + { + GPBUtil::checkString($var, True); + $this->type_name = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Usage.php b/vendor/google/common-protos/src/Api/Usage.php new file mode 100644 index 0000000..0ebe664 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Usage.php @@ -0,0 +1,191 @@ +google.api.Usage + */ +class Usage extends \Google\Protobuf\Internal\Message +{ + /** + * Requirements that must be satisfied before a consumer project can use the + * service. Each requirement is of the form /; + * for example 'serviceusage.googleapis.com/billing-enabled'. + * For Google APIs, a Terms of Service requirement must be included here. + * Google Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". + * Other Google APIs should include + * "serviceusage.googleapis.com/tos/universal". Additional ToS can be + * included based on the business needs. + * + * Generated from protobuf field repeated string requirements = 1; + */ + private $requirements; + /** + * A list of usage rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.UsageRule rules = 6; + */ + private $rules; + /** + * The full resource name of a channel used for sending notifications to the + * service producer. + * Google Service Management currently only supports + * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification + * channel. To use Google Cloud Pub/Sub as the channel, this must be the name + * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format + * documented in https://cloud.google.com/pubsub/docs/overview. + * + * Generated from protobuf field string producer_notification_channel = 7; + */ + protected $producer_notification_channel = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $requirements + * Requirements that must be satisfied before a consumer project can use the + * service. Each requirement is of the form /; + * for example 'serviceusage.googleapis.com/billing-enabled'. + * For Google APIs, a Terms of Service requirement must be included here. + * Google Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". + * Other Google APIs should include + * "serviceusage.googleapis.com/tos/universal". Additional ToS can be + * included based on the business needs. + * @type array<\Google\Api\UsageRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of usage rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * @type string $producer_notification_channel + * The full resource name of a channel used for sending notifications to the + * service producer. + * Google Service Management currently only supports + * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification + * channel. To use Google Cloud Pub/Sub as the channel, this must be the name + * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format + * documented in https://cloud.google.com/pubsub/docs/overview. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Usage::initOnce(); + parent::__construct($data); + } + + /** + * Requirements that must be satisfied before a consumer project can use the + * service. Each requirement is of the form /; + * for example 'serviceusage.googleapis.com/billing-enabled'. + * For Google APIs, a Terms of Service requirement must be included here. + * Google Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". + * Other Google APIs should include + * "serviceusage.googleapis.com/tos/universal". Additional ToS can be + * included based on the business needs. + * + * Generated from protobuf field repeated string requirements = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRequirements() + { + return $this->requirements; + } + + /** + * Requirements that must be satisfied before a consumer project can use the + * service. Each requirement is of the form /; + * for example 'serviceusage.googleapis.com/billing-enabled'. + * For Google APIs, a Terms of Service requirement must be included here. + * Google Cloud APIs must include "serviceusage.googleapis.com/tos/cloud". + * Other Google APIs should include + * "serviceusage.googleapis.com/tos/universal". Additional ToS can be + * included based on the business needs. + * + * Generated from protobuf field repeated string requirements = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRequirements($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->requirements = $arr; + + return $this; + } + + /** + * A list of usage rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.UsageRule rules = 6; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of usage rules that apply to individual API methods. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.UsageRule rules = 6; + * @param array<\Google\Api\UsageRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\UsageRule::class); + $this->rules = $arr; + + return $this; + } + + /** + * The full resource name of a channel used for sending notifications to the + * service producer. + * Google Service Management currently only supports + * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification + * channel. To use Google Cloud Pub/Sub as the channel, this must be the name + * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format + * documented in https://cloud.google.com/pubsub/docs/overview. + * + * Generated from protobuf field string producer_notification_channel = 7; + * @return string + */ + public function getProducerNotificationChannel() + { + return $this->producer_notification_channel; + } + + /** + * The full resource name of a channel used for sending notifications to the + * service producer. + * Google Service Management currently only supports + * [Google Cloud Pub/Sub](https://cloud.google.com/pubsub) as a notification + * channel. To use Google Cloud Pub/Sub as the channel, this must be the name + * of a Cloud Pub/Sub topic that uses the Cloud Pub/Sub topic name format + * documented in https://cloud.google.com/pubsub/docs/overview. + * + * Generated from protobuf field string producer_notification_channel = 7; + * @param string $var + * @return $this + */ + public function setProducerNotificationChannel($var) + { + GPBUtil::checkString($var, True); + $this->producer_notification_channel = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/UsageRule.php b/vendor/google/common-protos/src/Api/UsageRule.php new file mode 100644 index 0000000..fcd4f54 --- /dev/null +++ b/vendor/google/common-protos/src/Api/UsageRule.php @@ -0,0 +1,180 @@ +google.api.UsageRule + */ +class UsageRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * If true, the selected method allows unregistered calls, e.g. calls + * that don't identify any user or application. + * + * Generated from protobuf field bool allow_unregistered_calls = 2; + */ + protected $allow_unregistered_calls = false; + /** + * If true, the selected method should skip service control and the control + * plane features, such as quota and billing, will not be available. + * This flag is used by Google Cloud Endpoints to bypass checks for internal + * methods, such as service health check methods. + * + * Generated from protobuf field bool skip_service_control = 3; + */ + protected $skip_service_control = false; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type bool $allow_unregistered_calls + * If true, the selected method allows unregistered calls, e.g. calls + * that don't identify any user or application. + * @type bool $skip_service_control + * If true, the selected method should skip service control and the control + * plane features, such as quota and billing, will not be available. + * This flag is used by Google Cloud Endpoints to bypass checks for internal + * methods, such as service health check methods. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Usage::initOnce(); + parent::__construct($data); + } + + /** + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects the methods to which this rule applies. Use '*' to indicate all + * methods in all APIs. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * If true, the selected method allows unregistered calls, e.g. calls + * that don't identify any user or application. + * + * Generated from protobuf field bool allow_unregistered_calls = 2; + * @return bool + */ + public function getAllowUnregisteredCalls() + { + return $this->allow_unregistered_calls; + } + + /** + * If true, the selected method allows unregistered calls, e.g. calls + * that don't identify any user or application. + * + * Generated from protobuf field bool allow_unregistered_calls = 2; + * @param bool $var + * @return $this + */ + public function setAllowUnregisteredCalls($var) + { + GPBUtil::checkBool($var); + $this->allow_unregistered_calls = $var; + + return $this; + } + + /** + * If true, the selected method should skip service control and the control + * plane features, such as quota and billing, will not be available. + * This flag is used by Google Cloud Endpoints to bypass checks for internal + * methods, such as service health check methods. + * + * Generated from protobuf field bool skip_service_control = 3; + * @return bool + */ + public function getSkipServiceControl() + { + return $this->skip_service_control; + } + + /** + * If true, the selected method should skip service control and the control + * plane features, such as quota and billing, will not be available. + * This flag is used by Google Cloud Endpoints to bypass checks for internal + * methods, such as service health check methods. + * + * Generated from protobuf field bool skip_service_control = 3; + * @param bool $var + * @return $this + */ + public function setSkipServiceControl($var) + { + GPBUtil::checkBool($var); + $this->skip_service_control = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/Visibility.php b/vendor/google/common-protos/src/Api/Visibility.php new file mode 100644 index 0000000..b232df6 --- /dev/null +++ b/vendor/google/common-protos/src/Api/Visibility.php @@ -0,0 +1,88 @@ +google.api.Visibility + */ +class Visibility extends \Google\Protobuf\Internal\Message +{ + /** + * A list of visibility rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.VisibilityRule rules = 1; + */ + private $rules; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Api\VisibilityRule>|\Google\Protobuf\Internal\RepeatedField $rules + * A list of visibility rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Visibility::initOnce(); + parent::__construct($data); + } + + /** + * A list of visibility rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.VisibilityRule rules = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRules() + { + return $this->rules; + } + + /** + * A list of visibility rules that apply to individual API elements. + * **NOTE:** All service configuration rules follow "last one wins" order. + * + * Generated from protobuf field repeated .google.api.VisibilityRule rules = 1; + * @param array<\Google\Api\VisibilityRule>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRules($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Api\VisibilityRule::class); + $this->rules = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Api/VisibilityRule.php b/vendor/google/common-protos/src/Api/VisibilityRule.php new file mode 100644 index 0000000..74c522f --- /dev/null +++ b/vendor/google/common-protos/src/Api/VisibilityRule.php @@ -0,0 +1,150 @@ +google.api.VisibilityRule + */ +class VisibilityRule extends \Google\Protobuf\Internal\Message +{ + /** + * Selects methods, messages, fields, enums, etc. to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + */ + protected $selector = ''; + /** + * A comma-separated list of visibility labels that apply to the `selector`. + * Any of the listed labels can be used to grant the visibility. + * If a rule has multiple labels, removing one of the labels but not all of + * them can break clients. + * Example: + * visibility: + * rules: + * - selector: google.calendar.Calendar.EnhancedSearch + * restriction: INTERNAL, PREVIEW + * Removing INTERNAL from this restriction will break clients that rely on + * this method and only had access to it through INTERNAL. + * + * Generated from protobuf field string restriction = 2; + */ + protected $restriction = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $selector + * Selects methods, messages, fields, enums, etc. to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * @type string $restriction + * A comma-separated list of visibility labels that apply to the `selector`. + * Any of the listed labels can be used to grant the visibility. + * If a rule has multiple labels, removing one of the labels but not all of + * them can break clients. + * Example: + * visibility: + * rules: + * - selector: google.calendar.Calendar.EnhancedSearch + * restriction: INTERNAL, PREVIEW + * Removing INTERNAL from this restriction will break clients that rely on + * this method and only had access to it through INTERNAL. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Api\Visibility::initOnce(); + parent::__construct($data); + } + + /** + * Selects methods, messages, fields, enums, etc. to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @return string + */ + public function getSelector() + { + return $this->selector; + } + + /** + * Selects methods, messages, fields, enums, etc. to which this rule applies. + * Refer to [selector][google.api.DocumentationRule.selector] for syntax + * details. + * + * Generated from protobuf field string selector = 1; + * @param string $var + * @return $this + */ + public function setSelector($var) + { + GPBUtil::checkString($var, True); + $this->selector = $var; + + return $this; + } + + /** + * A comma-separated list of visibility labels that apply to the `selector`. + * Any of the listed labels can be used to grant the visibility. + * If a rule has multiple labels, removing one of the labels but not all of + * them can break clients. + * Example: + * visibility: + * rules: + * - selector: google.calendar.Calendar.EnhancedSearch + * restriction: INTERNAL, PREVIEW + * Removing INTERNAL from this restriction will break clients that rely on + * this method and only had access to it through INTERNAL. + * + * Generated from protobuf field string restriction = 2; + * @return string + */ + public function getRestriction() + { + return $this->restriction; + } + + /** + * A comma-separated list of visibility labels that apply to the `selector`. + * Any of the listed labels can be used to grant the visibility. + * If a rule has multiple labels, removing one of the labels but not all of + * them can break clients. + * Example: + * visibility: + * rules: + * - selector: google.calendar.Calendar.EnhancedSearch + * restriction: INTERNAL, PREVIEW + * Removing INTERNAL from this restriction will break clients that rely on + * this method and only had access to it through INTERNAL. + * + * Generated from protobuf field string restriction = 2; + * @param string $var + * @return $this + */ + public function setRestriction($var) + { + GPBUtil::checkString($var, True); + $this->restriction = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfig.php b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfig.php new file mode 100644 index 0000000..b259431 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfig.php @@ -0,0 +1,155 @@ +google.iam.v1.AuditConfig + */ +class AuditConfig extends \Google\Protobuf\Internal\Message +{ + /** + * Specifies a service that will be enabled for audit logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * + * Generated from protobuf field string service = 1; + */ + protected $service = ''; + /** + * The configuration for logging of each type of permission. + * + * Generated from protobuf field repeated .google.iam.v1.AuditLogConfig audit_log_configs = 3; + */ + private $audit_log_configs; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $service + * Specifies a service that will be enabled for audit logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * @type array<\Google\Cloud\Iam\V1\AuditLogConfig>|\Google\Protobuf\Internal\RepeatedField $audit_log_configs + * The configuration for logging of each type of permission. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * Specifies a service that will be enabled for audit logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * + * Generated from protobuf field string service = 1; + * @return string + */ + public function getService() + { + return $this->service; + } + + /** + * Specifies a service that will be enabled for audit logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * + * Generated from protobuf field string service = 1; + * @param string $var + * @return $this + */ + public function setService($var) + { + GPBUtil::checkString($var, True); + $this->service = $var; + + return $this; + } + + /** + * The configuration for logging of each type of permission. + * + * Generated from protobuf field repeated .google.iam.v1.AuditLogConfig audit_log_configs = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAuditLogConfigs() + { + return $this->audit_log_configs; + } + + /** + * The configuration for logging of each type of permission. + * + * Generated from protobuf field repeated .google.iam.v1.AuditLogConfig audit_log_configs = 3; + * @param array<\Google\Cloud\Iam\V1\AuditLogConfig>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAuditLogConfigs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\AuditLogConfig::class); + $this->audit_log_configs = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta.php b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta.php new file mode 100644 index 0000000..02c622e --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta.php @@ -0,0 +1,202 @@ +google.iam.v1.AuditConfigDelta + */ +class AuditConfigDelta extends \Google\Protobuf\Internal\Message +{ + /** + * The action that was performed on an audit configuration in a policy. + * Required + * + * Generated from protobuf field .google.iam.v1.AuditConfigDelta.Action action = 1; + */ + protected $action = 0; + /** + * Specifies a service that was configured for Cloud Audit Logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * Required + * + * Generated from protobuf field string service = 2; + */ + protected $service = ''; + /** + * A single identity that is exempted from "data access" audit + * logging for the `service` specified above. + * Follows the same format of Binding.members. + * + * Generated from protobuf field string exempted_member = 3; + */ + protected $exempted_member = ''; + /** + * Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + * enabled, and cannot be configured. + * Required + * + * Generated from protobuf field string log_type = 4; + */ + protected $log_type = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $action + * The action that was performed on an audit configuration in a policy. + * Required + * @type string $service + * Specifies a service that was configured for Cloud Audit Logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * Required + * @type string $exempted_member + * A single identity that is exempted from "data access" audit + * logging for the `service` specified above. + * Follows the same format of Binding.members. + * @type string $log_type + * Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + * enabled, and cannot be configured. + * Required + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * The action that was performed on an audit configuration in a policy. + * Required + * + * Generated from protobuf field .google.iam.v1.AuditConfigDelta.Action action = 1; + * @return int + */ + public function getAction() + { + return $this->action; + } + + /** + * The action that was performed on an audit configuration in a policy. + * Required + * + * Generated from protobuf field .google.iam.v1.AuditConfigDelta.Action action = 1; + * @param int $var + * @return $this + */ + public function setAction($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Iam\V1\AuditConfigDelta\Action::class); + $this->action = $var; + + return $this; + } + + /** + * Specifies a service that was configured for Cloud Audit Logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * Required + * + * Generated from protobuf field string service = 2; + * @return string + */ + public function getService() + { + return $this->service; + } + + /** + * Specifies a service that was configured for Cloud Audit Logging. + * For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + * `allServices` is a special value that covers all services. + * Required + * + * Generated from protobuf field string service = 2; + * @param string $var + * @return $this + */ + public function setService($var) + { + GPBUtil::checkString($var, True); + $this->service = $var; + + return $this; + } + + /** + * A single identity that is exempted from "data access" audit + * logging for the `service` specified above. + * Follows the same format of Binding.members. + * + * Generated from protobuf field string exempted_member = 3; + * @return string + */ + public function getExemptedMember() + { + return $this->exempted_member; + } + + /** + * A single identity that is exempted from "data access" audit + * logging for the `service` specified above. + * Follows the same format of Binding.members. + * + * Generated from protobuf field string exempted_member = 3; + * @param string $var + * @return $this + */ + public function setExemptedMember($var) + { + GPBUtil::checkString($var, True); + $this->exempted_member = $var; + + return $this; + } + + /** + * Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + * enabled, and cannot be configured. + * Required + * + * Generated from protobuf field string log_type = 4; + * @return string + */ + public function getLogType() + { + return $this->log_type; + } + + /** + * Specifies the log_type that was be enabled. ADMIN_ACTIVITY is always + * enabled, and cannot be configured. + * Required + * + * Generated from protobuf field string log_type = 4; + * @param string $var + * @return $this + */ + public function setLogType($var) + { + GPBUtil::checkString($var, True); + $this->log_type = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta/Action.php b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta/Action.php new file mode 100644 index 0000000..ffce349 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditConfigDelta/Action.php @@ -0,0 +1,62 @@ +google.iam.v1.AuditConfigDelta.Action + */ +class Action +{ + /** + * Unspecified. + * + * Generated from protobuf enum ACTION_UNSPECIFIED = 0; + */ + const ACTION_UNSPECIFIED = 0; + /** + * Addition of an audit configuration. + * + * Generated from protobuf enum ADD = 1; + */ + const ADD = 1; + /** + * Removal of an audit configuration. + * + * Generated from protobuf enum REMOVE = 2; + */ + const REMOVE = 2; + + private static $valueToName = [ + self::ACTION_UNSPECIFIED => 'ACTION_UNSPECIFIED', + self::ADD => 'ADD', + self::REMOVE => 'REMOVE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig.php b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig.php new file mode 100644 index 0000000..83b9940 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig.php @@ -0,0 +1,129 @@ +google.iam.v1.AuditLogConfig + */ +class AuditLogConfig extends \Google\Protobuf\Internal\Message +{ + /** + * The log type that this config enables. + * + * Generated from protobuf field .google.iam.v1.AuditLogConfig.LogType log_type = 1; + */ + protected $log_type = 0; + /** + * Specifies the identities that do not cause logging for this type of + * permission. + * Follows the same format of + * [Binding.members][google.iam.v1.Binding.members]. + * + * Generated from protobuf field repeated string exempted_members = 2; + */ + private $exempted_members; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $log_type + * The log type that this config enables. + * @type array|\Google\Protobuf\Internal\RepeatedField $exempted_members + * Specifies the identities that do not cause logging for this type of + * permission. + * Follows the same format of + * [Binding.members][google.iam.v1.Binding.members]. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * The log type that this config enables. + * + * Generated from protobuf field .google.iam.v1.AuditLogConfig.LogType log_type = 1; + * @return int + */ + public function getLogType() + { + return $this->log_type; + } + + /** + * The log type that this config enables. + * + * Generated from protobuf field .google.iam.v1.AuditLogConfig.LogType log_type = 1; + * @param int $var + * @return $this + */ + public function setLogType($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Iam\V1\AuditLogConfig\LogType::class); + $this->log_type = $var; + + return $this; + } + + /** + * Specifies the identities that do not cause logging for this type of + * permission. + * Follows the same format of + * [Binding.members][google.iam.v1.Binding.members]. + * + * Generated from protobuf field repeated string exempted_members = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getExemptedMembers() + { + return $this->exempted_members; + } + + /** + * Specifies the identities that do not cause logging for this type of + * permission. + * Follows the same format of + * [Binding.members][google.iam.v1.Binding.members]. + * + * Generated from protobuf field repeated string exempted_members = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setExemptedMembers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->exempted_members = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig/LogType.php b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig/LogType.php new file mode 100644 index 0000000..f78a01b --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/AuditLogConfig/LogType.php @@ -0,0 +1,70 @@ +google.iam.v1.AuditLogConfig.LogType + */ +class LogType +{ + /** + * Default case. Should never be this. + * + * Generated from protobuf enum LOG_TYPE_UNSPECIFIED = 0; + */ + const LOG_TYPE_UNSPECIFIED = 0; + /** + * Admin reads. Example: CloudIAM getIamPolicy + * + * Generated from protobuf enum ADMIN_READ = 1; + */ + const ADMIN_READ = 1; + /** + * Data writes. Example: CloudSQL Users create + * + * Generated from protobuf enum DATA_WRITE = 2; + */ + const DATA_WRITE = 2; + /** + * Data reads. Example: CloudSQL Users list + * + * Generated from protobuf enum DATA_READ = 3; + */ + const DATA_READ = 3; + + private static $valueToName = [ + self::LOG_TYPE_UNSPECIFIED => 'LOG_TYPE_UNSPECIFIED', + self::ADMIN_READ => 'ADMIN_READ', + self::DATA_WRITE => 'DATA_WRITE', + self::DATA_READ => 'DATA_READ', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/Binding.php b/vendor/google/common-protos/src/Cloud/Iam/V1/Binding.php new file mode 100644 index 0000000..af64546 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/Binding.php @@ -0,0 +1,301 @@ +google.iam.v1.Binding + */ +class Binding extends \Google\Protobuf\Internal\Message +{ + /** + * Role that is assigned to the list of `members`, or principals. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * + * Generated from protobuf field string role = 1; + */ + protected $role = ''; + /** + * Specifies the principals requesting access for a Google Cloud resource. + * `members` can have the following values: + * * `allUsers`: A special identifier that represents anyone who is + * on the internet; with or without a Google account. + * * `allAuthenticatedUsers`: A special identifier that represents anyone + * who is authenticated with a Google account or a service account. + * * `user:{emailid}`: An email address that represents a specific Google + * account. For example, `alice@example.com` . + * * `serviceAccount:{emailid}`: An email address that represents a service + * account. For example, `my-other-app@appspot.gserviceaccount.com`. + * * `group:{emailid}`: An email address that represents a Google group. + * For example, `admins@example.com`. + * * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a user that has been recently deleted. For + * example, `alice@example.com?uid=123456789012345678901`. If the user is + * recovered, this value reverts to `user:{emailid}` and the recovered user + * retains the role in the binding. + * * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + * unique identifier) representing a service account that has been recently + * deleted. For example, + * `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + * If the service account is undeleted, this value reverts to + * `serviceAccount:{emailid}` and the undeleted service account retains the + * role in the binding. + * * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a Google group that has been recently + * deleted. For example, `admins@example.com?uid=123456789012345678901`. If + * the group is recovered, this value reverts to `group:{emailid}` and the + * recovered group retains the role in the binding. + * * `domain:{domain}`: The G Suite domain (primary) that represents all the + * users of that domain. For example, `google.com` or `example.com`. + * + * Generated from protobuf field repeated string members = 2; + */ + private $members; + /** + * The condition that is associated with this binding. + * If the condition evaluates to `true`, then this binding applies to the + * current request. + * If the condition evaluates to `false`, then this binding does not apply to + * the current request. However, a different role binding might grant the same + * role to one or more of the principals in this binding. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field .google.type.Expr condition = 3; + */ + protected $condition = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $role + * Role that is assigned to the list of `members`, or principals. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * @type array|\Google\Protobuf\Internal\RepeatedField $members + * Specifies the principals requesting access for a Google Cloud resource. + * `members` can have the following values: + * * `allUsers`: A special identifier that represents anyone who is + * on the internet; with or without a Google account. + * * `allAuthenticatedUsers`: A special identifier that represents anyone + * who is authenticated with a Google account or a service account. + * * `user:{emailid}`: An email address that represents a specific Google + * account. For example, `alice@example.com` . + * * `serviceAccount:{emailid}`: An email address that represents a service + * account. For example, `my-other-app@appspot.gserviceaccount.com`. + * * `group:{emailid}`: An email address that represents a Google group. + * For example, `admins@example.com`. + * * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a user that has been recently deleted. For + * example, `alice@example.com?uid=123456789012345678901`. If the user is + * recovered, this value reverts to `user:{emailid}` and the recovered user + * retains the role in the binding. + * * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + * unique identifier) representing a service account that has been recently + * deleted. For example, + * `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + * If the service account is undeleted, this value reverts to + * `serviceAccount:{emailid}` and the undeleted service account retains the + * role in the binding. + * * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a Google group that has been recently + * deleted. For example, `admins@example.com?uid=123456789012345678901`. If + * the group is recovered, this value reverts to `group:{emailid}` and the + * recovered group retains the role in the binding. + * * `domain:{domain}`: The G Suite domain (primary) that represents all the + * users of that domain. For example, `google.com` or `example.com`. + * @type \Google\Type\Expr $condition + * The condition that is associated with this binding. + * If the condition evaluates to `true`, then this binding applies to the + * current request. + * If the condition evaluates to `false`, then this binding does not apply to + * the current request. However, a different role binding might grant the same + * role to one or more of the principals in this binding. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * Role that is assigned to the list of `members`, or principals. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * + * Generated from protobuf field string role = 1; + * @return string + */ + public function getRole() + { + return $this->role; + } + + /** + * Role that is assigned to the list of `members`, or principals. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * + * Generated from protobuf field string role = 1; + * @param string $var + * @return $this + */ + public function setRole($var) + { + GPBUtil::checkString($var, True); + $this->role = $var; + + return $this; + } + + /** + * Specifies the principals requesting access for a Google Cloud resource. + * `members` can have the following values: + * * `allUsers`: A special identifier that represents anyone who is + * on the internet; with or without a Google account. + * * `allAuthenticatedUsers`: A special identifier that represents anyone + * who is authenticated with a Google account or a service account. + * * `user:{emailid}`: An email address that represents a specific Google + * account. For example, `alice@example.com` . + * * `serviceAccount:{emailid}`: An email address that represents a service + * account. For example, `my-other-app@appspot.gserviceaccount.com`. + * * `group:{emailid}`: An email address that represents a Google group. + * For example, `admins@example.com`. + * * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a user that has been recently deleted. For + * example, `alice@example.com?uid=123456789012345678901`. If the user is + * recovered, this value reverts to `user:{emailid}` and the recovered user + * retains the role in the binding. + * * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + * unique identifier) representing a service account that has been recently + * deleted. For example, + * `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + * If the service account is undeleted, this value reverts to + * `serviceAccount:{emailid}` and the undeleted service account retains the + * role in the binding. + * * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a Google group that has been recently + * deleted. For example, `admins@example.com?uid=123456789012345678901`. If + * the group is recovered, this value reverts to `group:{emailid}` and the + * recovered group retains the role in the binding. + * * `domain:{domain}`: The G Suite domain (primary) that represents all the + * users of that domain. For example, `google.com` or `example.com`. + * + * Generated from protobuf field repeated string members = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getMembers() + { + return $this->members; + } + + /** + * Specifies the principals requesting access for a Google Cloud resource. + * `members` can have the following values: + * * `allUsers`: A special identifier that represents anyone who is + * on the internet; with or without a Google account. + * * `allAuthenticatedUsers`: A special identifier that represents anyone + * who is authenticated with a Google account or a service account. + * * `user:{emailid}`: An email address that represents a specific Google + * account. For example, `alice@example.com` . + * * `serviceAccount:{emailid}`: An email address that represents a service + * account. For example, `my-other-app@appspot.gserviceaccount.com`. + * * `group:{emailid}`: An email address that represents a Google group. + * For example, `admins@example.com`. + * * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a user that has been recently deleted. For + * example, `alice@example.com?uid=123456789012345678901`. If the user is + * recovered, this value reverts to `user:{emailid}` and the recovered user + * retains the role in the binding. + * * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + * unique identifier) representing a service account that has been recently + * deleted. For example, + * `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. + * If the service account is undeleted, this value reverts to + * `serviceAccount:{emailid}` and the undeleted service account retains the + * role in the binding. + * * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique + * identifier) representing a Google group that has been recently + * deleted. For example, `admins@example.com?uid=123456789012345678901`. If + * the group is recovered, this value reverts to `group:{emailid}` and the + * recovered group retains the role in the binding. + * * `domain:{domain}`: The G Suite domain (primary) that represents all the + * users of that domain. For example, `google.com` or `example.com`. + * + * Generated from protobuf field repeated string members = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setMembers($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->members = $arr; + + return $this; + } + + /** + * The condition that is associated with this binding. + * If the condition evaluates to `true`, then this binding applies to the + * current request. + * If the condition evaluates to `false`, then this binding does not apply to + * the current request. However, a different role binding might grant the same + * role to one or more of the principals in this binding. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field .google.type.Expr condition = 3; + * @return \Google\Type\Expr|null + */ + public function getCondition() + { + return $this->condition; + } + + public function hasCondition() + { + return isset($this->condition); + } + + public function clearCondition() + { + unset($this->condition); + } + + /** + * The condition that is associated with this binding. + * If the condition evaluates to `true`, then this binding applies to the + * current request. + * If the condition evaluates to `false`, then this binding does not apply to + * the current request. However, a different role binding might grant the same + * role to one or more of the principals in this binding. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field .google.type.Expr condition = 3; + * @param \Google\Type\Expr $var + * @return $this + */ + public function setCondition($var) + { + GPBUtil::checkMessage($var, \Google\Type\Expr::class); + $this->condition = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta.php b/vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta.php new file mode 100644 index 0000000..3993a7f --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta.php @@ -0,0 +1,200 @@ +google.iam.v1.BindingDelta + */ +class BindingDelta extends \Google\Protobuf\Internal\Message +{ + /** + * The action that was performed on a Binding. + * Required + * + * Generated from protobuf field .google.iam.v1.BindingDelta.Action action = 1; + */ + protected $action = 0; + /** + * Role that is assigned to `members`. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * Required + * + * Generated from protobuf field string role = 2; + */ + protected $role = ''; + /** + * A single identity requesting access for a Google Cloud resource. + * Follows the same format of Binding.members. + * Required + * + * Generated from protobuf field string member = 3; + */ + protected $member = ''; + /** + * The condition that is associated with this binding. + * + * Generated from protobuf field .google.type.Expr condition = 4; + */ + protected $condition = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $action + * The action that was performed on a Binding. + * Required + * @type string $role + * Role that is assigned to `members`. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * Required + * @type string $member + * A single identity requesting access for a Google Cloud resource. + * Follows the same format of Binding.members. + * Required + * @type \Google\Type\Expr $condition + * The condition that is associated with this binding. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * The action that was performed on a Binding. + * Required + * + * Generated from protobuf field .google.iam.v1.BindingDelta.Action action = 1; + * @return int + */ + public function getAction() + { + return $this->action; + } + + /** + * The action that was performed on a Binding. + * Required + * + * Generated from protobuf field .google.iam.v1.BindingDelta.Action action = 1; + * @param int $var + * @return $this + */ + public function setAction($var) + { + GPBUtil::checkEnum($var, \Google\Cloud\Iam\V1\BindingDelta\Action::class); + $this->action = $var; + + return $this; + } + + /** + * Role that is assigned to `members`. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * Required + * + * Generated from protobuf field string role = 2; + * @return string + */ + public function getRole() + { + return $this->role; + } + + /** + * Role that is assigned to `members`. + * For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + * Required + * + * Generated from protobuf field string role = 2; + * @param string $var + * @return $this + */ + public function setRole($var) + { + GPBUtil::checkString($var, True); + $this->role = $var; + + return $this; + } + + /** + * A single identity requesting access for a Google Cloud resource. + * Follows the same format of Binding.members. + * Required + * + * Generated from protobuf field string member = 3; + * @return string + */ + public function getMember() + { + return $this->member; + } + + /** + * A single identity requesting access for a Google Cloud resource. + * Follows the same format of Binding.members. + * Required + * + * Generated from protobuf field string member = 3; + * @param string $var + * @return $this + */ + public function setMember($var) + { + GPBUtil::checkString($var, True); + $this->member = $var; + + return $this; + } + + /** + * The condition that is associated with this binding. + * + * Generated from protobuf field .google.type.Expr condition = 4; + * @return \Google\Type\Expr|null + */ + public function getCondition() + { + return $this->condition; + } + + public function hasCondition() + { + return isset($this->condition); + } + + public function clearCondition() + { + unset($this->condition); + } + + /** + * The condition that is associated with this binding. + * + * Generated from protobuf field .google.type.Expr condition = 4; + * @param \Google\Type\Expr $var + * @return $this + */ + public function setCondition($var) + { + GPBUtil::checkMessage($var, \Google\Type\Expr::class); + $this->condition = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta/Action.php b/vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta/Action.php new file mode 100644 index 0000000..f119696 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/BindingDelta/Action.php @@ -0,0 +1,62 @@ +google.iam.v1.BindingDelta.Action + */ +class Action +{ + /** + * Unspecified. + * + * Generated from protobuf enum ACTION_UNSPECIFIED = 0; + */ + const ACTION_UNSPECIFIED = 0; + /** + * Addition of a Binding. + * + * Generated from protobuf enum ADD = 1; + */ + const ADD = 1; + /** + * Removal of a Binding. + * + * Generated from protobuf enum REMOVE = 2; + */ + const REMOVE = 2; + + private static $valueToName = [ + self::ACTION_UNSPECIFIED => 'ACTION_UNSPECIFIED', + self::ADD => 'ADD', + self::REMOVE => 'REMOVE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/GetIamPolicyRequest.php b/vendor/google/common-protos/src/Cloud/Iam/V1/GetIamPolicyRequest.php new file mode 100644 index 0000000..d74e0e8 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/GetIamPolicyRequest.php @@ -0,0 +1,119 @@ +google.iam.v1.GetIamPolicyRequest + */ +class GetIamPolicyRequest extends \Google\Protobuf\Internal\Message +{ + /** + * REQUIRED: The resource for which the policy is being requested. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $resource = ''; + /** + * OPTIONAL: A `GetPolicyOptions` object for specifying options to + * `GetIamPolicy`. + * + * Generated from protobuf field .google.iam.v1.GetPolicyOptions options = 2; + */ + protected $options = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $resource + * REQUIRED: The resource for which the policy is being requested. + * See the operation documentation for the appropriate value for this field. + * @type \Google\Cloud\Iam\V1\GetPolicyOptions $options + * OPTIONAL: A `GetPolicyOptions` object for specifying options to + * `GetIamPolicy`. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); + parent::__construct($data); + } + + /** + * REQUIRED: The resource for which the policy is being requested. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getResource() + { + return $this->resource; + } + + /** + * REQUIRED: The resource for which the policy is being requested. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setResource($var) + { + GPBUtil::checkString($var, True); + $this->resource = $var; + + return $this; + } + + /** + * OPTIONAL: A `GetPolicyOptions` object for specifying options to + * `GetIamPolicy`. + * + * Generated from protobuf field .google.iam.v1.GetPolicyOptions options = 2; + * @return \Google\Cloud\Iam\V1\GetPolicyOptions|null + */ + public function getOptions() + { + return $this->options; + } + + public function hasOptions() + { + return isset($this->options); + } + + public function clearOptions() + { + unset($this->options); + } + + /** + * OPTIONAL: A `GetPolicyOptions` object for specifying options to + * `GetIamPolicy`. + * + * Generated from protobuf field .google.iam.v1.GetPolicyOptions options = 2; + * @param \Google\Cloud\Iam\V1\GetPolicyOptions $var + * @return $this + */ + public function setOptions($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Iam\V1\GetPolicyOptions::class); + $this->options = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/GetPolicyOptions.php b/vendor/google/common-protos/src/Cloud/Iam/V1/GetPolicyOptions.php new file mode 100644 index 0000000..a2600d0 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/GetPolicyOptions.php @@ -0,0 +1,119 @@ +google.iam.v1.GetPolicyOptions + */ +class GetPolicyOptions extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. The maximum policy version that will be used to format the + * policy. + * Valid values are 0, 1, and 3. Requests specifying an invalid value will be + * rejected. + * Requests for policies with any conditional role bindings must specify + * version 3. Policies with no conditional role bindings may specify any valid + * value or leave the field unset. + * The policy in the response might use the policy version that you specified, + * or it might use a lower policy version. For example, if you specify version + * 3, but the policy has no conditional role bindings, the response uses + * version 1. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field int32 requested_policy_version = 1; + */ + protected $requested_policy_version = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $requested_policy_version + * Optional. The maximum policy version that will be used to format the + * policy. + * Valid values are 0, 1, and 3. Requests specifying an invalid value will be + * rejected. + * Requests for policies with any conditional role bindings must specify + * version 3. Policies with no conditional role bindings may specify any valid + * value or leave the field unset. + * The policy in the response might use the policy version that you specified, + * or it might use a lower policy version. For example, if you specify version + * 3, but the policy has no conditional role bindings, the response uses + * version 1. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Options::initOnce(); + parent::__construct($data); + } + + /** + * Optional. The maximum policy version that will be used to format the + * policy. + * Valid values are 0, 1, and 3. Requests specifying an invalid value will be + * rejected. + * Requests for policies with any conditional role bindings must specify + * version 3. Policies with no conditional role bindings may specify any valid + * value or leave the field unset. + * The policy in the response might use the policy version that you specified, + * or it might use a lower policy version. For example, if you specify version + * 3, but the policy has no conditional role bindings, the response uses + * version 1. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field int32 requested_policy_version = 1; + * @return int + */ + public function getRequestedPolicyVersion() + { + return $this->requested_policy_version; + } + + /** + * Optional. The maximum policy version that will be used to format the + * policy. + * Valid values are 0, 1, and 3. Requests specifying an invalid value will be + * rejected. + * Requests for policies with any conditional role bindings must specify + * version 3. Policies with no conditional role bindings may specify any valid + * value or leave the field unset. + * The policy in the response might use the policy version that you specified, + * or it might use a lower policy version. For example, if you specify version + * 3, but the policy has no conditional role bindings, the response uses + * version 1. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field int32 requested_policy_version = 1; + * @param int $var + * @return $this + */ + public function setRequestedPolicyVersion($var) + { + GPBUtil::checkInt32($var); + $this->requested_policy_version = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/Policy.php b/vendor/google/common-protos/src/Cloud/Iam/V1/Policy.php new file mode 100644 index 0000000..8b4633b --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/Policy.php @@ -0,0 +1,377 @@ +google.iam.v1.Policy + */ +class Policy extends \Google\Protobuf\Internal\Message +{ + /** + * Specifies the format of the policy. + * Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + * are rejected. + * Any operation that affects conditional role bindings must specify version + * `3`. This requirement applies to the following operations: + * * Getting a policy that includes a conditional role binding + * * Adding a conditional role binding to a policy + * * Changing a conditional role binding in a policy + * * Removing any role binding, with or without a condition, from a policy + * that includes conditions + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * If a policy does not include any conditions, operations on that policy may + * specify any valid version or leave the field unset. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field int32 version = 1; + */ + protected $version = 0; + /** + * Associates a list of `members`, or principals, with a `role`. Optionally, + * may specify a `condition` that determines how and when the `bindings` are + * applied. Each of the `bindings` must contain at least one principal. + * The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + * of these principals can be Google groups. Each occurrence of a principal + * counts towards these limits. For example, if the `bindings` grant 50 + * different roles to `user:alice@example.com`, and not to any other + * principal, then you can add another 1,450 principals to the `bindings` in + * the `Policy`. + * + * Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4; + */ + private $bindings; + /** + * Specifies cloud audit logging configuration for this policy. + * + * Generated from protobuf field repeated .google.iam.v1.AuditConfig audit_configs = 6; + */ + private $audit_configs; + /** + * `etag` is used for optimistic concurrency control as a way to help + * prevent simultaneous updates of a policy from overwriting each other. + * It is strongly suggested that systems make use of the `etag` in the + * read-modify-write cycle to perform policy updates in order to avoid race + * conditions: An `etag` is returned in the response to `getIamPolicy`, and + * systems are expected to put that etag in the request to `setIamPolicy` to + * ensure that their change will be applied to the same version of the policy. + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * + * Generated from protobuf field bytes etag = 3; + */ + protected $etag = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $version + * Specifies the format of the policy. + * Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + * are rejected. + * Any operation that affects conditional role bindings must specify version + * `3`. This requirement applies to the following operations: + * * Getting a policy that includes a conditional role binding + * * Adding a conditional role binding to a policy + * * Changing a conditional role binding in a policy + * * Removing any role binding, with or without a condition, from a policy + * that includes conditions + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * If a policy does not include any conditions, operations on that policy may + * specify any valid version or leave the field unset. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * @type array<\Google\Cloud\Iam\V1\Binding>|\Google\Protobuf\Internal\RepeatedField $bindings + * Associates a list of `members`, or principals, with a `role`. Optionally, + * may specify a `condition` that determines how and when the `bindings` are + * applied. Each of the `bindings` must contain at least one principal. + * The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + * of these principals can be Google groups. Each occurrence of a principal + * counts towards these limits. For example, if the `bindings` grant 50 + * different roles to `user:alice@example.com`, and not to any other + * principal, then you can add another 1,450 principals to the `bindings` in + * the `Policy`. + * @type array<\Google\Cloud\Iam\V1\AuditConfig>|\Google\Protobuf\Internal\RepeatedField $audit_configs + * Specifies cloud audit logging configuration for this policy. + * @type string $etag + * `etag` is used for optimistic concurrency control as a way to help + * prevent simultaneous updates of a policy from overwriting each other. + * It is strongly suggested that systems make use of the `etag` in the + * read-modify-write cycle to perform policy updates in order to avoid race + * conditions: An `etag` is returned in the response to `getIamPolicy`, and + * systems are expected to put that etag in the request to `setIamPolicy` to + * ensure that their change will be applied to the same version of the policy. + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * Specifies the format of the policy. + * Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + * are rejected. + * Any operation that affects conditional role bindings must specify version + * `3`. This requirement applies to the following operations: + * * Getting a policy that includes a conditional role binding + * * Adding a conditional role binding to a policy + * * Changing a conditional role binding in a policy + * * Removing any role binding, with or without a condition, from a policy + * that includes conditions + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * If a policy does not include any conditions, operations on that policy may + * specify any valid version or leave the field unset. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field int32 version = 1; + * @return int + */ + public function getVersion() + { + return $this->version; + } + + /** + * Specifies the format of the policy. + * Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + * are rejected. + * Any operation that affects conditional role bindings must specify version + * `3`. This requirement applies to the following operations: + * * Getting a policy that includes a conditional role binding + * * Adding a conditional role binding to a policy + * * Changing a conditional role binding in a policy + * * Removing any role binding, with or without a condition, from a policy + * that includes conditions + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * If a policy does not include any conditions, operations on that policy may + * specify any valid version or leave the field unset. + * To learn which resources support conditions in their IAM policies, see the + * [IAM + * documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + * + * Generated from protobuf field int32 version = 1; + * @param int $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkInt32($var); + $this->version = $var; + + return $this; + } + + /** + * Associates a list of `members`, or principals, with a `role`. Optionally, + * may specify a `condition` that determines how and when the `bindings` are + * applied. Each of the `bindings` must contain at least one principal. + * The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + * of these principals can be Google groups. Each occurrence of a principal + * counts towards these limits. For example, if the `bindings` grant 50 + * different roles to `user:alice@example.com`, and not to any other + * principal, then you can add another 1,450 principals to the `bindings` in + * the `Policy`. + * + * Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getBindings() + { + return $this->bindings; + } + + /** + * Associates a list of `members`, or principals, with a `role`. Optionally, + * may specify a `condition` that determines how and when the `bindings` are + * applied. Each of the `bindings` must contain at least one principal. + * The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 + * of these principals can be Google groups. Each occurrence of a principal + * counts towards these limits. For example, if the `bindings` grant 50 + * different roles to `user:alice@example.com`, and not to any other + * principal, then you can add another 1,450 principals to the `bindings` in + * the `Policy`. + * + * Generated from protobuf field repeated .google.iam.v1.Binding bindings = 4; + * @param array<\Google\Cloud\Iam\V1\Binding>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setBindings($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\Binding::class); + $this->bindings = $arr; + + return $this; + } + + /** + * Specifies cloud audit logging configuration for this policy. + * + * Generated from protobuf field repeated .google.iam.v1.AuditConfig audit_configs = 6; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAuditConfigs() + { + return $this->audit_configs; + } + + /** + * Specifies cloud audit logging configuration for this policy. + * + * Generated from protobuf field repeated .google.iam.v1.AuditConfig audit_configs = 6; + * @param array<\Google\Cloud\Iam\V1\AuditConfig>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAuditConfigs($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\AuditConfig::class); + $this->audit_configs = $arr; + + return $this; + } + + /** + * `etag` is used for optimistic concurrency control as a way to help + * prevent simultaneous updates of a policy from overwriting each other. + * It is strongly suggested that systems make use of the `etag` in the + * read-modify-write cycle to perform policy updates in order to avoid race + * conditions: An `etag` is returned in the response to `getIamPolicy`, and + * systems are expected to put that etag in the request to `setIamPolicy` to + * ensure that their change will be applied to the same version of the policy. + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * + * Generated from protobuf field bytes etag = 3; + * @return string + */ + public function getEtag() + { + return $this->etag; + } + + /** + * `etag` is used for optimistic concurrency control as a way to help + * prevent simultaneous updates of a policy from overwriting each other. + * It is strongly suggested that systems make use of the `etag` in the + * read-modify-write cycle to perform policy updates in order to avoid race + * conditions: An `etag` is returned in the response to `getIamPolicy`, and + * systems are expected to put that etag in the request to `setIamPolicy` to + * ensure that their change will be applied to the same version of the policy. + * **Important:** If you use IAM Conditions, you must include the `etag` field + * whenever you call `setIamPolicy`. If you omit this field, then IAM allows + * you to overwrite a version `3` policy with a version `1` policy, and all of + * the conditions in the version `3` policy are lost. + * + * Generated from protobuf field bytes etag = 3; + * @param string $var + * @return $this + */ + public function setEtag($var) + { + GPBUtil::checkString($var, False); + $this->etag = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/PolicyDelta.php b/vendor/google/common-protos/src/Cloud/Iam/V1/PolicyDelta.php new file mode 100644 index 0000000..dde1c0f --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/PolicyDelta.php @@ -0,0 +1,101 @@ +google.iam.v1.PolicyDelta + */ +class PolicyDelta extends \Google\Protobuf\Internal\Message +{ + /** + * The delta for Bindings between two policies. + * + * Generated from protobuf field repeated .google.iam.v1.BindingDelta binding_deltas = 1; + */ + private $binding_deltas; + /** + * The delta for AuditConfigs between two policies. + * + * Generated from protobuf field repeated .google.iam.v1.AuditConfigDelta audit_config_deltas = 2; + */ + private $audit_config_deltas; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Iam\V1\BindingDelta>|\Google\Protobuf\Internal\RepeatedField $binding_deltas + * The delta for Bindings between two policies. + * @type array<\Google\Cloud\Iam\V1\AuditConfigDelta>|\Google\Protobuf\Internal\RepeatedField $audit_config_deltas + * The delta for AuditConfigs between two policies. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Policy::initOnce(); + parent::__construct($data); + } + + /** + * The delta for Bindings between two policies. + * + * Generated from protobuf field repeated .google.iam.v1.BindingDelta binding_deltas = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getBindingDeltas() + { + return $this->binding_deltas; + } + + /** + * The delta for Bindings between two policies. + * + * Generated from protobuf field repeated .google.iam.v1.BindingDelta binding_deltas = 1; + * @param array<\Google\Cloud\Iam\V1\BindingDelta>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setBindingDeltas($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\BindingDelta::class); + $this->binding_deltas = $arr; + + return $this; + } + + /** + * The delta for AuditConfigs between two policies. + * + * Generated from protobuf field repeated .google.iam.v1.AuditConfigDelta audit_config_deltas = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAuditConfigDeltas() + { + return $this->audit_config_deltas; + } + + /** + * The delta for AuditConfigs between two policies. + * + * Generated from protobuf field repeated .google.iam.v1.AuditConfigDelta audit_config_deltas = 2; + * @param array<\Google\Cloud\Iam\V1\AuditConfigDelta>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAuditConfigDeltas($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Iam\V1\AuditConfigDelta::class); + $this->audit_config_deltas = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/ResourcePolicyMember.php b/vendor/google/common-protos/src/Cloud/Iam/V1/ResourcePolicyMember.php new file mode 100644 index 0000000..88fbd7b --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/ResourcePolicyMember.php @@ -0,0 +1,142 @@ +google.iam.v1.ResourcePolicyMember + */ +class ResourcePolicyMember extends \Google\Protobuf\Internal\Message +{ + /** + * IAM policy binding member referring to a Google Cloud resource by + * user-assigned name (https://google.aip.dev/122). If a resource is deleted + * and recreated with the same name, the binding will be applicable to the new + * resource. + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/name/locations/us-central1-a/parameters/my-parameter` + * + * Generated from protobuf field string iam_policy_name_principal = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $iam_policy_name_principal = ''; + /** + * IAM policy binding member referring to a Google Cloud resource by + * system-assigned unique identifier (https://google.aip.dev/148#uid). If a + * resource is deleted and recreated with the same name, the binding will not + * be applicable to the new resource + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/uid/locations/us-central1-a/parameters/a918fed5` + * + * Generated from protobuf field string iam_policy_uid_principal = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + */ + protected $iam_policy_uid_principal = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $iam_policy_name_principal + * IAM policy binding member referring to a Google Cloud resource by + * user-assigned name (https://google.aip.dev/122). If a resource is deleted + * and recreated with the same name, the binding will be applicable to the new + * resource. + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/name/locations/us-central1-a/parameters/my-parameter` + * @type string $iam_policy_uid_principal + * IAM policy binding member referring to a Google Cloud resource by + * system-assigned unique identifier (https://google.aip.dev/148#uid). If a + * resource is deleted and recreated with the same name, the binding will not + * be applicable to the new resource + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/uid/locations/us-central1-a/parameters/a918fed5` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\ResourcePolicyMember::initOnce(); + parent::__construct($data); + } + + /** + * IAM policy binding member referring to a Google Cloud resource by + * user-assigned name (https://google.aip.dev/122). If a resource is deleted + * and recreated with the same name, the binding will be applicable to the new + * resource. + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/name/locations/us-central1-a/parameters/my-parameter` + * + * Generated from protobuf field string iam_policy_name_principal = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getIamPolicyNamePrincipal() + { + return $this->iam_policy_name_principal; + } + + /** + * IAM policy binding member referring to a Google Cloud resource by + * user-assigned name (https://google.aip.dev/122). If a resource is deleted + * and recreated with the same name, the binding will be applicable to the new + * resource. + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/name/locations/us-central1-a/parameters/my-parameter` + * + * Generated from protobuf field string iam_policy_name_principal = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setIamPolicyNamePrincipal($var) + { + GPBUtil::checkString($var, True); + $this->iam_policy_name_principal = $var; + + return $this; + } + + /** + * IAM policy binding member referring to a Google Cloud resource by + * system-assigned unique identifier (https://google.aip.dev/148#uid). If a + * resource is deleted and recreated with the same name, the binding will not + * be applicable to the new resource + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/uid/locations/us-central1-a/parameters/a918fed5` + * + * Generated from protobuf field string iam_policy_uid_principal = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @return string + */ + public function getIamPolicyUidPrincipal() + { + return $this->iam_policy_uid_principal; + } + + /** + * IAM policy binding member referring to a Google Cloud resource by + * system-assigned unique identifier (https://google.aip.dev/148#uid). If a + * resource is deleted and recreated with the same name, the binding will not + * be applicable to the new resource + * Example: + * `principal://parametermanager.googleapis.com/projects/12345/uid/locations/us-central1-a/parameters/a918fed5` + * + * Generated from protobuf field string iam_policy_uid_principal = 2 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * @param string $var + * @return $this + */ + public function setIamPolicyUidPrincipal($var) + { + GPBUtil::checkString($var, True); + $this->iam_policy_uid_principal = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/SetIamPolicyRequest.php b/vendor/google/common-protos/src/Cloud/Iam/V1/SetIamPolicyRequest.php new file mode 100644 index 0000000..3bc7a5a --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/SetIamPolicyRequest.php @@ -0,0 +1,183 @@ +google.iam.v1.SetIamPolicyRequest + */ +class SetIamPolicyRequest extends \Google\Protobuf\Internal\Message +{ + /** + * REQUIRED: The resource for which the policy is being specified. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $resource = ''; + /** + * REQUIRED: The complete policy to be applied to the `resource`. The size of + * the policy is limited to a few 10s of KB. An empty policy is a + * valid policy but certain Cloud Platform services (such as Projects) + * might reject them. + * + * Generated from protobuf field .google.iam.v1.Policy policy = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + protected $policy = null; + /** + * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + * the fields in the mask will be modified. If no mask is provided, the + * following default mask is used: + * `paths: "bindings, etag"` + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3; + */ + protected $update_mask = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $resource + * REQUIRED: The resource for which the policy is being specified. + * See the operation documentation for the appropriate value for this field. + * @type \Google\Cloud\Iam\V1\Policy $policy + * REQUIRED: The complete policy to be applied to the `resource`. The size of + * the policy is limited to a few 10s of KB. An empty policy is a + * valid policy but certain Cloud Platform services (such as Projects) + * might reject them. + * @type \Google\Protobuf\FieldMask $update_mask + * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + * the fields in the mask will be modified. If no mask is provided, the + * following default mask is used: + * `paths: "bindings, etag"` + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); + parent::__construct($data); + } + + /** + * REQUIRED: The resource for which the policy is being specified. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getResource() + { + return $this->resource; + } + + /** + * REQUIRED: The resource for which the policy is being specified. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setResource($var) + { + GPBUtil::checkString($var, True); + $this->resource = $var; + + return $this; + } + + /** + * REQUIRED: The complete policy to be applied to the `resource`. The size of + * the policy is limited to a few 10s of KB. An empty policy is a + * valid policy but certain Cloud Platform services (such as Projects) + * might reject them. + * + * Generated from protobuf field .google.iam.v1.Policy policy = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Cloud\Iam\V1\Policy|null + */ + public function getPolicy() + { + return $this->policy; + } + + public function hasPolicy() + { + return isset($this->policy); + } + + public function clearPolicy() + { + unset($this->policy); + } + + /** + * REQUIRED: The complete policy to be applied to the `resource`. The size of + * the policy is limited to a few 10s of KB. An empty policy is a + * valid policy but certain Cloud Platform services (such as Projects) + * might reject them. + * + * Generated from protobuf field .google.iam.v1.Policy policy = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param \Google\Cloud\Iam\V1\Policy $var + * @return $this + */ + public function setPolicy($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Iam\V1\Policy::class); + $this->policy = $var; + + return $this; + } + + /** + * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + * the fields in the mask will be modified. If no mask is provided, the + * following default mask is used: + * `paths: "bindings, etag"` + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3; + * @return \Google\Protobuf\FieldMask|null + */ + public function getUpdateMask() + { + return $this->update_mask; + } + + public function hasUpdateMask() + { + return isset($this->update_mask); + } + + public function clearUpdateMask() + { + unset($this->update_mask); + } + + /** + * OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only + * the fields in the mask will be modified. If no mask is provided, the + * following default mask is used: + * `paths: "bindings, etag"` + * + * Generated from protobuf field .google.protobuf.FieldMask update_mask = 3; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setUpdateMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->update_mask = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsRequest.php b/vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsRequest.php new file mode 100644 index 0000000..dba237c --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsRequest.php @@ -0,0 +1,117 @@ +google.iam.v1.TestIamPermissionsRequest + */ +class TestIamPermissionsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * REQUIRED: The resource for which the policy detail is being requested. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + */ + protected $resource = ''; + /** + * The set of permissions to check for the `resource`. Permissions with + * wildcards (such as '*' or 'storage.*') are not allowed. For more + * information see + * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + * + * Generated from protobuf field repeated string permissions = 2 [(.google.api.field_behavior) = REQUIRED]; + */ + private $permissions; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $resource + * REQUIRED: The resource for which the policy detail is being requested. + * See the operation documentation for the appropriate value for this field. + * @type array|\Google\Protobuf\Internal\RepeatedField $permissions + * The set of permissions to check for the `resource`. Permissions with + * wildcards (such as '*' or 'storage.*') are not allowed. For more + * information see + * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); + parent::__construct($data); + } + + /** + * REQUIRED: The resource for which the policy detail is being requested. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @return string + */ + public function getResource() + { + return $this->resource; + } + + /** + * REQUIRED: The resource for which the policy detail is being requested. + * See the operation documentation for the appropriate value for this field. + * + * Generated from protobuf field string resource = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = { + * @param string $var + * @return $this + */ + public function setResource($var) + { + GPBUtil::checkString($var, True); + $this->resource = $var; + + return $this; + } + + /** + * The set of permissions to check for the `resource`. Permissions with + * wildcards (such as '*' or 'storage.*') are not allowed. For more + * information see + * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + * + * Generated from protobuf field repeated string permissions = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPermissions() + { + return $this->permissions; + } + + /** + * The set of permissions to check for the `resource`. Permissions with + * wildcards (such as '*' or 'storage.*') are not allowed. For more + * information see + * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + * + * Generated from protobuf field repeated string permissions = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPermissions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->permissions = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsResponse.php b/vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsResponse.php new file mode 100644 index 0000000..fe3a85e --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Iam/V1/TestIamPermissionsResponse.php @@ -0,0 +1,71 @@ +google.iam.v1.TestIamPermissionsResponse + */ +class TestIamPermissionsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * A subset of `TestPermissionsRequest.permissions` that the caller is + * allowed. + * + * Generated from protobuf field repeated string permissions = 1; + */ + private $permissions; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $permissions + * A subset of `TestPermissionsRequest.permissions` that the caller is + * allowed. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\IamPolicy::initOnce(); + parent::__construct($data); + } + + /** + * A subset of `TestPermissionsRequest.permissions` that the caller is + * allowed. + * + * Generated from protobuf field repeated string permissions = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getPermissions() + { + return $this->permissions; + } + + /** + * A subset of `TestPermissionsRequest.permissions` that the caller is + * allowed. + * + * Generated from protobuf field repeated string permissions = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setPermissions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->permissions = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Location/GetLocationRequest.php b/vendor/google/common-protos/src/Cloud/Location/GetLocationRequest.php new file mode 100644 index 0000000..cb43058 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Location/GetLocationRequest.php @@ -0,0 +1,67 @@ +google.cloud.location.GetLocationRequest + */ +class GetLocationRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Resource name for the location. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Resource name for the location. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Location\Locations::initOnce(); + parent::__construct($data); + } + + /** + * Resource name for the location. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Resource name for the location. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Location/ListLocationsRequest.php b/vendor/google/common-protos/src/Cloud/Location/ListLocationsRequest.php new file mode 100644 index 0000000..9279872 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Location/ListLocationsRequest.php @@ -0,0 +1,169 @@ +google.cloud.location.ListLocationsRequest + */ +class ListLocationsRequest extends \Google\Protobuf\Internal\Message +{ + /** + * The resource that owns the locations collection, if applicable. + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The standard list filter. + * + * Generated from protobuf field string filter = 2; + */ + protected $filter = ''; + /** + * The standard list page size. + * + * Generated from protobuf field int32 page_size = 3; + */ + protected $page_size = 0; + /** + * The standard list page token. + * + * Generated from protobuf field string page_token = 4; + */ + protected $page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * The resource that owns the locations collection, if applicable. + * @type string $filter + * The standard list filter. + * @type int $page_size + * The standard list page size. + * @type string $page_token + * The standard list page token. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Location\Locations::initOnce(); + parent::__construct($data); + } + + /** + * The resource that owns the locations collection, if applicable. + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The resource that owns the locations collection, if applicable. + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The standard list filter. + * + * Generated from protobuf field string filter = 2; + * @return string + */ + public function getFilter() + { + return $this->filter; + } + + /** + * The standard list filter. + * + * Generated from protobuf field string filter = 2; + * @param string $var + * @return $this + */ + public function setFilter($var) + { + GPBUtil::checkString($var, True); + $this->filter = $var; + + return $this; + } + + /** + * The standard list page size. + * + * Generated from protobuf field int32 page_size = 3; + * @return int + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * The standard list page size. + * + * Generated from protobuf field int32 page_size = 3; + * @param int $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkInt32($var); + $this->page_size = $var; + + return $this; + } + + /** + * The standard list page token. + * + * Generated from protobuf field string page_token = 4; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * The standard list page token. + * + * Generated from protobuf field string page_token = 4; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, True); + $this->page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Location/ListLocationsResponse.php b/vendor/google/common-protos/src/Cloud/Location/ListLocationsResponse.php new file mode 100644 index 0000000..169a8e7 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Location/ListLocationsResponse.php @@ -0,0 +1,101 @@ +google.cloud.location.ListLocationsResponse + */ +class ListLocationsResponse extends \Google\Protobuf\Internal\Message +{ + /** + * A list of locations that matches the specified filter in the request. + * + * Generated from protobuf field repeated .google.cloud.location.Location locations = 1; + */ + private $locations; + /** + * The standard List next-page token. + * + * Generated from protobuf field string next_page_token = 2; + */ + protected $next_page_token = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Cloud\Location\Location>|\Google\Protobuf\Internal\RepeatedField $locations + * A list of locations that matches the specified filter in the request. + * @type string $next_page_token + * The standard List next-page token. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Location\Locations::initOnce(); + parent::__construct($data); + } + + /** + * A list of locations that matches the specified filter in the request. + * + * Generated from protobuf field repeated .google.cloud.location.Location locations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLocations() + { + return $this->locations; + } + + /** + * A list of locations that matches the specified filter in the request. + * + * Generated from protobuf field repeated .google.cloud.location.Location locations = 1; + * @param array<\Google\Cloud\Location\Location>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLocations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Cloud\Location\Location::class); + $this->locations = $arr; + + return $this; + } + + /** + * The standard List next-page token. + * + * Generated from protobuf field string next_page_token = 2; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * The standard List next-page token. + * + * Generated from protobuf field string next_page_token = 2; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, True); + $this->next_page_token = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Location/Location.php b/vendor/google/common-protos/src/Cloud/Location/Location.php new file mode 100644 index 0000000..f953e2e --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Location/Location.php @@ -0,0 +1,229 @@ +google.cloud.location.Location + */ +class Location extends \Google\Protobuf\Internal\Message +{ + /** + * Resource name for the location, which may vary between implementations. + * For example: `"projects/example-project/locations/us-east1"` + * + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * The canonical id for this location. For example: `"us-east1"`. + * + * Generated from protobuf field string location_id = 4; + */ + protected $location_id = ''; + /** + * The friendly name for this location, typically a nearby city name. + * For example, "Tokyo". + * + * Generated from protobuf field string display_name = 5; + */ + protected $display_name = ''; + /** + * Cross-service attributes for the location. For example + * {"cloud.googleapis.com/region": "us-east1"} + * + * Generated from protobuf field map labels = 2; + */ + private $labels; + /** + * Service-specific metadata. For example the available capacity at the given + * location. + * + * Generated from protobuf field .google.protobuf.Any metadata = 3; + */ + protected $metadata = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * Resource name for the location, which may vary between implementations. + * For example: `"projects/example-project/locations/us-east1"` + * @type string $location_id + * The canonical id for this location. For example: `"us-east1"`. + * @type string $display_name + * The friendly name for this location, typically a nearby city name. + * For example, "Tokyo". + * @type array|\Google\Protobuf\Internal\MapField $labels + * Cross-service attributes for the location. For example + * {"cloud.googleapis.com/region": "us-east1"} + * @type \Google\Protobuf\Any $metadata + * Service-specific metadata. For example the available capacity at the given + * location. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Cloud\Location\Locations::initOnce(); + parent::__construct($data); + } + + /** + * Resource name for the location, which may vary between implementations. + * For example: `"projects/example-project/locations/us-east1"` + * + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Resource name for the location, which may vary between implementations. + * For example: `"projects/example-project/locations/us-east1"` + * + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The canonical id for this location. For example: `"us-east1"`. + * + * Generated from protobuf field string location_id = 4; + * @return string + */ + public function getLocationId() + { + return $this->location_id; + } + + /** + * The canonical id for this location. For example: `"us-east1"`. + * + * Generated from protobuf field string location_id = 4; + * @param string $var + * @return $this + */ + public function setLocationId($var) + { + GPBUtil::checkString($var, True); + $this->location_id = $var; + + return $this; + } + + /** + * The friendly name for this location, typically a nearby city name. + * For example, "Tokyo". + * + * Generated from protobuf field string display_name = 5; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * The friendly name for this location, typically a nearby city name. + * For example, "Tokyo". + * + * Generated from protobuf field string display_name = 5; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Cross-service attributes for the location. For example + * {"cloud.googleapis.com/region": "us-east1"} + * + * Generated from protobuf field map labels = 2; + * @return \Google\Protobuf\Internal\MapField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * Cross-service attributes for the location. For example + * {"cloud.googleapis.com/region": "us-east1"} + * + * Generated from protobuf field map labels = 2; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->labels = $arr; + + return $this; + } + + /** + * Service-specific metadata. For example the available capacity at the given + * location. + * + * Generated from protobuf field .google.protobuf.Any metadata = 3; + * @return \Google\Protobuf\Any|null + */ + public function getMetadata() + { + return $this->metadata; + } + + public function hasMetadata() + { + return isset($this->metadata); + } + + public function clearMetadata() + { + unset($this->metadata); + } + + /** + * Service-specific metadata. For example the available capacity at the given + * location. + * + * Generated from protobuf field .google.protobuf.Any metadata = 3; + * @param \Google\Protobuf\Any $var + * @return $this + */ + public function setMetadata($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Any::class); + $this->metadata = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Logging/Type/HttpRequest.php b/vendor/google/common-protos/src/Cloud/Logging/Type/HttpRequest.php new file mode 100644 index 0000000..0907340 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Logging/Type/HttpRequest.php @@ -0,0 +1,627 @@ +google.logging.type.HttpRequest + */ +class HttpRequest extends \Google\Protobuf\Internal\Message +{ + /** + * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. + * + * Generated from protobuf field string request_method = 1; + */ + protected $request_method = ''; + /** + * The scheme (http, https), the host name, the path and the query + * portion of the URL that was requested. + * Example: `"http://example.com/some/info?color=red"`. + * + * Generated from protobuf field string request_url = 2; + */ + protected $request_url = ''; + /** + * The size of the HTTP request message in bytes, including the request + * headers and the request body. + * + * Generated from protobuf field int64 request_size = 3; + */ + protected $request_size = 0; + /** + * The response code indicating the status of response. + * Examples: 200, 404. + * + * Generated from protobuf field int32 status = 4; + */ + protected $status = 0; + /** + * The size of the HTTP response message sent back to the client, in bytes, + * including the response headers and the response body. + * + * Generated from protobuf field int64 response_size = 5; + */ + protected $response_size = 0; + /** + * The user agent sent by the client. Example: + * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET + * CLR 1.0.3705)"`. + * + * Generated from protobuf field string user_agent = 6; + */ + protected $user_agent = ''; + /** + * The IP address (IPv4 or IPv6) of the client that issued the HTTP + * request. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * + * Generated from protobuf field string remote_ip = 7; + */ + protected $remote_ip = ''; + /** + * The IP address (IPv4 or IPv6) of the origin server that the request was + * sent to. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * + * Generated from protobuf field string server_ip = 13; + */ + protected $server_ip = ''; + /** + * The referer URL of the request, as defined in + * [HTTP/1.1 Header Field + * Definitions](https://datatracker.ietf.org/doc/html/rfc2616#section-14.36). + * + * Generated from protobuf field string referer = 8; + */ + protected $referer = ''; + /** + * The request processing latency on the server, from the time the request was + * received until the response was sent. + * + * Generated from protobuf field .google.protobuf.Duration latency = 14; + */ + protected $latency = null; + /** + * Whether or not a cache lookup was attempted. + * + * Generated from protobuf field bool cache_lookup = 11; + */ + protected $cache_lookup = false; + /** + * Whether or not an entity was served from cache + * (with or without validation). + * + * Generated from protobuf field bool cache_hit = 9; + */ + protected $cache_hit = false; + /** + * Whether or not the response was validated with the origin server before + * being served from cache. This field is only meaningful if `cache_hit` is + * True. + * + * Generated from protobuf field bool cache_validated_with_origin_server = 10; + */ + protected $cache_validated_with_origin_server = false; + /** + * The number of HTTP response bytes inserted into cache. Set only when a + * cache fill was attempted. + * + * Generated from protobuf field int64 cache_fill_bytes = 12; + */ + protected $cache_fill_bytes = 0; + /** + * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" + * + * Generated from protobuf field string protocol = 15; + */ + protected $protocol = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $request_method + * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. + * @type string $request_url + * The scheme (http, https), the host name, the path and the query + * portion of the URL that was requested. + * Example: `"http://example.com/some/info?color=red"`. + * @type int|string $request_size + * The size of the HTTP request message in bytes, including the request + * headers and the request body. + * @type int $status + * The response code indicating the status of response. + * Examples: 200, 404. + * @type int|string $response_size + * The size of the HTTP response message sent back to the client, in bytes, + * including the response headers and the response body. + * @type string $user_agent + * The user agent sent by the client. Example: + * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET + * CLR 1.0.3705)"`. + * @type string $remote_ip + * The IP address (IPv4 or IPv6) of the client that issued the HTTP + * request. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * @type string $server_ip + * The IP address (IPv4 or IPv6) of the origin server that the request was + * sent to. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * @type string $referer + * The referer URL of the request, as defined in + * [HTTP/1.1 Header Field + * Definitions](https://datatracker.ietf.org/doc/html/rfc2616#section-14.36). + * @type \Google\Protobuf\Duration $latency + * The request processing latency on the server, from the time the request was + * received until the response was sent. + * @type bool $cache_lookup + * Whether or not a cache lookup was attempted. + * @type bool $cache_hit + * Whether or not an entity was served from cache + * (with or without validation). + * @type bool $cache_validated_with_origin_server + * Whether or not the response was validated with the origin server before + * being served from cache. This field is only meaningful if `cache_hit` is + * True. + * @type int|string $cache_fill_bytes + * The number of HTTP response bytes inserted into cache. Set only when a + * cache fill was attempted. + * @type string $protocol + * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Logging\Type\HttpRequest::initOnce(); + parent::__construct($data); + } + + /** + * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. + * + * Generated from protobuf field string request_method = 1; + * @return string + */ + public function getRequestMethod() + { + return $this->request_method; + } + + /** + * The request method. Examples: `"GET"`, `"HEAD"`, `"PUT"`, `"POST"`. + * + * Generated from protobuf field string request_method = 1; + * @param string $var + * @return $this + */ + public function setRequestMethod($var) + { + GPBUtil::checkString($var, True); + $this->request_method = $var; + + return $this; + } + + /** + * The scheme (http, https), the host name, the path and the query + * portion of the URL that was requested. + * Example: `"http://example.com/some/info?color=red"`. + * + * Generated from protobuf field string request_url = 2; + * @return string + */ + public function getRequestUrl() + { + return $this->request_url; + } + + /** + * The scheme (http, https), the host name, the path and the query + * portion of the URL that was requested. + * Example: `"http://example.com/some/info?color=red"`. + * + * Generated from protobuf field string request_url = 2; + * @param string $var + * @return $this + */ + public function setRequestUrl($var) + { + GPBUtil::checkString($var, True); + $this->request_url = $var; + + return $this; + } + + /** + * The size of the HTTP request message in bytes, including the request + * headers and the request body. + * + * Generated from protobuf field int64 request_size = 3; + * @return int|string + */ + public function getRequestSize() + { + return $this->request_size; + } + + /** + * The size of the HTTP request message in bytes, including the request + * headers and the request body. + * + * Generated from protobuf field int64 request_size = 3; + * @param int|string $var + * @return $this + */ + public function setRequestSize($var) + { + GPBUtil::checkInt64($var); + $this->request_size = $var; + + return $this; + } + + /** + * The response code indicating the status of response. + * Examples: 200, 404. + * + * Generated from protobuf field int32 status = 4; + * @return int + */ + public function getStatus() + { + return $this->status; + } + + /** + * The response code indicating the status of response. + * Examples: 200, 404. + * + * Generated from protobuf field int32 status = 4; + * @param int $var + * @return $this + */ + public function setStatus($var) + { + GPBUtil::checkInt32($var); + $this->status = $var; + + return $this; + } + + /** + * The size of the HTTP response message sent back to the client, in bytes, + * including the response headers and the response body. + * + * Generated from protobuf field int64 response_size = 5; + * @return int|string + */ + public function getResponseSize() + { + return $this->response_size; + } + + /** + * The size of the HTTP response message sent back to the client, in bytes, + * including the response headers and the response body. + * + * Generated from protobuf field int64 response_size = 5; + * @param int|string $var + * @return $this + */ + public function setResponseSize($var) + { + GPBUtil::checkInt64($var); + $this->response_size = $var; + + return $this; + } + + /** + * The user agent sent by the client. Example: + * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET + * CLR 1.0.3705)"`. + * + * Generated from protobuf field string user_agent = 6; + * @return string + */ + public function getUserAgent() + { + return $this->user_agent; + } + + /** + * The user agent sent by the client. Example: + * `"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Q312461; .NET + * CLR 1.0.3705)"`. + * + * Generated from protobuf field string user_agent = 6; + * @param string $var + * @return $this + */ + public function setUserAgent($var) + { + GPBUtil::checkString($var, True); + $this->user_agent = $var; + + return $this; + } + + /** + * The IP address (IPv4 or IPv6) of the client that issued the HTTP + * request. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * + * Generated from protobuf field string remote_ip = 7; + * @return string + */ + public function getRemoteIp() + { + return $this->remote_ip; + } + + /** + * The IP address (IPv4 or IPv6) of the client that issued the HTTP + * request. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * + * Generated from protobuf field string remote_ip = 7; + * @param string $var + * @return $this + */ + public function setRemoteIp($var) + { + GPBUtil::checkString($var, True); + $this->remote_ip = $var; + + return $this; + } + + /** + * The IP address (IPv4 or IPv6) of the origin server that the request was + * sent to. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * + * Generated from protobuf field string server_ip = 13; + * @return string + */ + public function getServerIp() + { + return $this->server_ip; + } + + /** + * The IP address (IPv4 or IPv6) of the origin server that the request was + * sent to. This field can include port information. Examples: + * `"192.168.1.1"`, `"10.0.0.1:80"`, `"FE80::0202:B3FF:FE1E:8329"`. + * + * Generated from protobuf field string server_ip = 13; + * @param string $var + * @return $this + */ + public function setServerIp($var) + { + GPBUtil::checkString($var, True); + $this->server_ip = $var; + + return $this; + } + + /** + * The referer URL of the request, as defined in + * [HTTP/1.1 Header Field + * Definitions](https://datatracker.ietf.org/doc/html/rfc2616#section-14.36). + * + * Generated from protobuf field string referer = 8; + * @return string + */ + public function getReferer() + { + return $this->referer; + } + + /** + * The referer URL of the request, as defined in + * [HTTP/1.1 Header Field + * Definitions](https://datatracker.ietf.org/doc/html/rfc2616#section-14.36). + * + * Generated from protobuf field string referer = 8; + * @param string $var + * @return $this + */ + public function setReferer($var) + { + GPBUtil::checkString($var, True); + $this->referer = $var; + + return $this; + } + + /** + * The request processing latency on the server, from the time the request was + * received until the response was sent. + * + * Generated from protobuf field .google.protobuf.Duration latency = 14; + * @return \Google\Protobuf\Duration|null + */ + public function getLatency() + { + return $this->latency; + } + + public function hasLatency() + { + return isset($this->latency); + } + + public function clearLatency() + { + unset($this->latency); + } + + /** + * The request processing latency on the server, from the time the request was + * received until the response was sent. + * + * Generated from protobuf field .google.protobuf.Duration latency = 14; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setLatency($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->latency = $var; + + return $this; + } + + /** + * Whether or not a cache lookup was attempted. + * + * Generated from protobuf field bool cache_lookup = 11; + * @return bool + */ + public function getCacheLookup() + { + return $this->cache_lookup; + } + + /** + * Whether or not a cache lookup was attempted. + * + * Generated from protobuf field bool cache_lookup = 11; + * @param bool $var + * @return $this + */ + public function setCacheLookup($var) + { + GPBUtil::checkBool($var); + $this->cache_lookup = $var; + + return $this; + } + + /** + * Whether or not an entity was served from cache + * (with or without validation). + * + * Generated from protobuf field bool cache_hit = 9; + * @return bool + */ + public function getCacheHit() + { + return $this->cache_hit; + } + + /** + * Whether or not an entity was served from cache + * (with or without validation). + * + * Generated from protobuf field bool cache_hit = 9; + * @param bool $var + * @return $this + */ + public function setCacheHit($var) + { + GPBUtil::checkBool($var); + $this->cache_hit = $var; + + return $this; + } + + /** + * Whether or not the response was validated with the origin server before + * being served from cache. This field is only meaningful if `cache_hit` is + * True. + * + * Generated from protobuf field bool cache_validated_with_origin_server = 10; + * @return bool + */ + public function getCacheValidatedWithOriginServer() + { + return $this->cache_validated_with_origin_server; + } + + /** + * Whether or not the response was validated with the origin server before + * being served from cache. This field is only meaningful if `cache_hit` is + * True. + * + * Generated from protobuf field bool cache_validated_with_origin_server = 10; + * @param bool $var + * @return $this + */ + public function setCacheValidatedWithOriginServer($var) + { + GPBUtil::checkBool($var); + $this->cache_validated_with_origin_server = $var; + + return $this; + } + + /** + * The number of HTTP response bytes inserted into cache. Set only when a + * cache fill was attempted. + * + * Generated from protobuf field int64 cache_fill_bytes = 12; + * @return int|string + */ + public function getCacheFillBytes() + { + return $this->cache_fill_bytes; + } + + /** + * The number of HTTP response bytes inserted into cache. Set only when a + * cache fill was attempted. + * + * Generated from protobuf field int64 cache_fill_bytes = 12; + * @param int|string $var + * @return $this + */ + public function setCacheFillBytes($var) + { + GPBUtil::checkInt64($var); + $this->cache_fill_bytes = $var; + + return $this; + } + + /** + * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" + * + * Generated from protobuf field string protocol = 15; + * @return string + */ + public function getProtocol() + { + return $this->protocol; + } + + /** + * Protocol used for the request. Examples: "HTTP/1.1", "HTTP/2", "websocket" + * + * Generated from protobuf field string protocol = 15; + * @param string $var + * @return $this + */ + public function setProtocol($var) + { + GPBUtil::checkString($var, True); + $this->protocol = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Cloud/Logging/Type/LogSeverity.php b/vendor/google/common-protos/src/Cloud/Logging/Type/LogSeverity.php new file mode 100644 index 0000000..dc64792 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/Logging/Type/LogSeverity.php @@ -0,0 +1,119 @@ + DEBUG AND severity <= WARNING + * If you are writing log entries, you should map other severity encodings to + * one of these standard levels. For example, you might map all of Java's FINE, + * FINER, and FINEST levels to `LogSeverity.DEBUG`. You can preserve the + * original severity level in the log entry payload if you wish. + * + * Protobuf type google.logging.type.LogSeverity + */ +class LogSeverity +{ + /** + * (0) The log entry has no assigned severity level. + * + * Generated from protobuf enum DEFAULT = 0; + */ + const PBDEFAULT = 0; + /** + * (100) Debug or trace information. + * + * Generated from protobuf enum DEBUG = 100; + */ + const DEBUG = 100; + /** + * (200) Routine information, such as ongoing status or performance. + * + * Generated from protobuf enum INFO = 200; + */ + const INFO = 200; + /** + * (300) Normal but significant events, such as start up, shut down, or + * a configuration change. + * + * Generated from protobuf enum NOTICE = 300; + */ + const NOTICE = 300; + /** + * (400) Warning events might cause problems. + * + * Generated from protobuf enum WARNING = 400; + */ + const WARNING = 400; + /** + * (500) Error events are likely to cause problems. + * + * Generated from protobuf enum ERROR = 500; + */ + const ERROR = 500; + /** + * (600) Critical events cause more severe problems or outages. + * + * Generated from protobuf enum CRITICAL = 600; + */ + const CRITICAL = 600; + /** + * (700) A person must take an action immediately. + * + * Generated from protobuf enum ALERT = 700; + */ + const ALERT = 700; + /** + * (800) One or more systems are unusable. + * + * Generated from protobuf enum EMERGENCY = 800; + */ + const EMERGENCY = 800; + + private static $valueToName = [ + self::PBDEFAULT => 'DEFAULT', + self::DEBUG => 'DEBUG', + self::INFO => 'INFO', + self::NOTICE => 'NOTICE', + self::WARNING => 'WARNING', + self::ERROR => 'ERROR', + self::CRITICAL => 'CRITICAL', + self::ALERT => 'ALERT', + self::EMERGENCY => 'EMERGENCY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + $pbconst = __CLASS__. '::PB' . strtoupper($name); + if (!defined($pbconst)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($pbconst); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Cloud/OperationResponseMapping.php b/vendor/google/common-protos/src/Cloud/OperationResponseMapping.php new file mode 100644 index 0000000..c21c294 --- /dev/null +++ b/vendor/google/common-protos/src/Cloud/OperationResponseMapping.php @@ -0,0 +1,86 @@ +google.cloud.OperationResponseMapping + */ +class OperationResponseMapping +{ + /** + * Do not use. + * + * Generated from protobuf enum UNDEFINED = 0; + */ + const UNDEFINED = 0; + /** + * A field in an API-specific (custom) Operation object which carries the same + * meaning as google.longrunning.Operation.name. + * + * Generated from protobuf enum NAME = 1; + */ + const NAME = 1; + /** + * A field in an API-specific (custom) Operation object which carries the same + * meaning as google.longrunning.Operation.done. If the annotated field is of + * an enum type, `annotated_field_name == EnumType.DONE` semantics should be + * equivalent to `Operation.done == true`. If the annotated field is of type + * boolean, then it should follow the same semantics as Operation.done. + * Otherwise, a non-empty value should be treated as `Operation.done == true`. + * + * Generated from protobuf enum STATUS = 2; + */ + const STATUS = 2; + /** + * A field in an API-specific (custom) Operation object which carries the same + * meaning as google.longrunning.Operation.error.code. + * + * Generated from protobuf enum ERROR_CODE = 3; + */ + const ERROR_CODE = 3; + /** + * A field in an API-specific (custom) Operation object which carries the same + * meaning as google.longrunning.Operation.error.message. + * + * Generated from protobuf enum ERROR_MESSAGE = 4; + */ + const ERROR_MESSAGE = 4; + + private static $valueToName = [ + self::UNDEFINED => 'UNDEFINED', + self::NAME => 'NAME', + self::STATUS => 'STATUS', + self::ERROR_CODE => 'ERROR_CODE', + self::ERROR_MESSAGE => 'ERROR_MESSAGE', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Iam/V1/Logging/AuditData.php b/vendor/google/common-protos/src/Iam/V1/Logging/AuditData.php new file mode 100644 index 0000000..447ed72 --- /dev/null +++ b/vendor/google/common-protos/src/Iam/V1/Logging/AuditData.php @@ -0,0 +1,79 @@ +google.iam.v1.logging.AuditData + */ +class AuditData extends \Google\Protobuf\Internal\Message +{ + /** + * Policy delta between the original policy and the newly set policy. + * + * Generated from protobuf field .google.iam.v1.PolicyDelta policy_delta = 2; + */ + protected $policy_delta = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Cloud\Iam\V1\PolicyDelta $policy_delta + * Policy delta between the original policy and the newly set policy. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Iam\V1\Logging\AuditData::initOnce(); + parent::__construct($data); + } + + /** + * Policy delta between the original policy and the newly set policy. + * + * Generated from protobuf field .google.iam.v1.PolicyDelta policy_delta = 2; + * @return \Google\Cloud\Iam\V1\PolicyDelta|null + */ + public function getPolicyDelta() + { + return $this->policy_delta; + } + + public function hasPolicyDelta() + { + return isset($this->policy_delta); + } + + public function clearPolicyDelta() + { + unset($this->policy_delta); + } + + /** + * Policy delta between the original policy and the newly set policy. + * + * Generated from protobuf field .google.iam.v1.PolicyDelta policy_delta = 2; + * @param \Google\Cloud\Iam\V1\PolicyDelta $var + * @return $this + */ + public function setPolicyDelta($var) + { + GPBUtil::checkMessage($var, \Google\Cloud\Iam\V1\PolicyDelta::class); + $this->policy_delta = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/BadRequest.php b/vendor/google/common-protos/src/Rpc/BadRequest.php new file mode 100644 index 0000000..03e55d6 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/BadRequest.php @@ -0,0 +1,68 @@ +google.rpc.BadRequest + */ +class BadRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Describes all violations in a client request. + * + * Generated from protobuf field repeated .google.rpc.BadRequest.FieldViolation field_violations = 1; + */ + private $field_violations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Rpc\BadRequest\FieldViolation>|\Google\Protobuf\Internal\RepeatedField $field_violations + * Describes all violations in a client request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * Describes all violations in a client request. + * + * Generated from protobuf field repeated .google.rpc.BadRequest.FieldViolation field_violations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getFieldViolations() + { + return $this->field_violations; + } + + /** + * Describes all violations in a client request. + * + * Generated from protobuf field repeated .google.rpc.BadRequest.FieldViolation field_violations = 1; + * @param array<\Google\Rpc\BadRequest\FieldViolation>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setFieldViolations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\BadRequest\FieldViolation::class); + $this->field_violations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/BadRequest/FieldViolation.php b/vendor/google/common-protos/src/Rpc/BadRequest/FieldViolation.php new file mode 100644 index 0000000..51d5843 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/BadRequest/FieldViolation.php @@ -0,0 +1,316 @@ +google.rpc.BadRequest.FieldViolation + */ +class FieldViolation extends \Google\Protobuf\Internal\Message +{ + /** + * A path that leads to a field in the request body. The value will be a + * sequence of dot-separated identifiers that identify a protocol buffer + * field. + * Consider the following: + * message CreateContactRequest { + * message EmailAddress { + * enum Type { + * TYPE_UNSPECIFIED = 0; + * HOME = 1; + * WORK = 2; + * } + * optional string email = 1; + * repeated EmailType type = 2; + * } + * string full_name = 1; + * repeated EmailAddress email_addresses = 2; + * } + * In this example, in proto `field` could take one of the following values: + * * `full_name` for a violation in the `full_name` value + * * `email_addresses[1].email` for a violation in the `email` field of the + * first `email_addresses` message + * * `email_addresses[3].type[2]` for a violation in the second `type` + * value in the third `email_addresses` message. + * In JSON, the same values are represented as: + * * `fullName` for a violation in the `fullName` value + * * `emailAddresses[1].email` for a violation in the `email` field of the + * first `emailAddresses` message + * * `emailAddresses[3].type[2]` for a violation in the second `type` + * value in the third `emailAddresses` message. + * + * Generated from protobuf field string field = 1; + */ + protected $field = ''; + /** + * A description of why the request element is bad. + * + * Generated from protobuf field string description = 2; + */ + protected $description = ''; + /** + * The reason of the field-level error. This is a constant value that + * identifies the proximate cause of the field-level error. It should + * uniquely identify the type of the FieldViolation within the scope of the + * google.rpc.ErrorInfo.domain. This should be at most 63 + * characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, + * which represents UPPER_SNAKE_CASE. + * + * Generated from protobuf field string reason = 3; + */ + protected $reason = ''; + /** + * Provides a localized error message for field-level errors that is safe to + * return to the API consumer. + * + * Generated from protobuf field .google.rpc.LocalizedMessage localized_message = 4; + */ + protected $localized_message = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $field + * A path that leads to a field in the request body. The value will be a + * sequence of dot-separated identifiers that identify a protocol buffer + * field. + * Consider the following: + * message CreateContactRequest { + * message EmailAddress { + * enum Type { + * TYPE_UNSPECIFIED = 0; + * HOME = 1; + * WORK = 2; + * } + * optional string email = 1; + * repeated EmailType type = 2; + * } + * string full_name = 1; + * repeated EmailAddress email_addresses = 2; + * } + * In this example, in proto `field` could take one of the following values: + * * `full_name` for a violation in the `full_name` value + * * `email_addresses[1].email` for a violation in the `email` field of the + * first `email_addresses` message + * * `email_addresses[3].type[2]` for a violation in the second `type` + * value in the third `email_addresses` message. + * In JSON, the same values are represented as: + * * `fullName` for a violation in the `fullName` value + * * `emailAddresses[1].email` for a violation in the `email` field of the + * first `emailAddresses` message + * * `emailAddresses[3].type[2]` for a violation in the second `type` + * value in the third `emailAddresses` message. + * @type string $description + * A description of why the request element is bad. + * @type string $reason + * The reason of the field-level error. This is a constant value that + * identifies the proximate cause of the field-level error. It should + * uniquely identify the type of the FieldViolation within the scope of the + * google.rpc.ErrorInfo.domain. This should be at most 63 + * characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, + * which represents UPPER_SNAKE_CASE. + * @type \Google\Rpc\LocalizedMessage $localized_message + * Provides a localized error message for field-level errors that is safe to + * return to the API consumer. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * A path that leads to a field in the request body. The value will be a + * sequence of dot-separated identifiers that identify a protocol buffer + * field. + * Consider the following: + * message CreateContactRequest { + * message EmailAddress { + * enum Type { + * TYPE_UNSPECIFIED = 0; + * HOME = 1; + * WORK = 2; + * } + * optional string email = 1; + * repeated EmailType type = 2; + * } + * string full_name = 1; + * repeated EmailAddress email_addresses = 2; + * } + * In this example, in proto `field` could take one of the following values: + * * `full_name` for a violation in the `full_name` value + * * `email_addresses[1].email` for a violation in the `email` field of the + * first `email_addresses` message + * * `email_addresses[3].type[2]` for a violation in the second `type` + * value in the third `email_addresses` message. + * In JSON, the same values are represented as: + * * `fullName` for a violation in the `fullName` value + * * `emailAddresses[1].email` for a violation in the `email` field of the + * first `emailAddresses` message + * * `emailAddresses[3].type[2]` for a violation in the second `type` + * value in the third `emailAddresses` message. + * + * Generated from protobuf field string field = 1; + * @return string + */ + public function getField() + { + return $this->field; + } + + /** + * A path that leads to a field in the request body. The value will be a + * sequence of dot-separated identifiers that identify a protocol buffer + * field. + * Consider the following: + * message CreateContactRequest { + * message EmailAddress { + * enum Type { + * TYPE_UNSPECIFIED = 0; + * HOME = 1; + * WORK = 2; + * } + * optional string email = 1; + * repeated EmailType type = 2; + * } + * string full_name = 1; + * repeated EmailAddress email_addresses = 2; + * } + * In this example, in proto `field` could take one of the following values: + * * `full_name` for a violation in the `full_name` value + * * `email_addresses[1].email` for a violation in the `email` field of the + * first `email_addresses` message + * * `email_addresses[3].type[2]` for a violation in the second `type` + * value in the third `email_addresses` message. + * In JSON, the same values are represented as: + * * `fullName` for a violation in the `fullName` value + * * `emailAddresses[1].email` for a violation in the `email` field of the + * first `emailAddresses` message + * * `emailAddresses[3].type[2]` for a violation in the second `type` + * value in the third `emailAddresses` message. + * + * Generated from protobuf field string field = 1; + * @param string $var + * @return $this + */ + public function setField($var) + { + GPBUtil::checkString($var, True); + $this->field = $var; + + return $this; + } + + /** + * A description of why the request element is bad. + * + * Generated from protobuf field string description = 2; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * A description of why the request element is bad. + * + * Generated from protobuf field string description = 2; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * The reason of the field-level error. This is a constant value that + * identifies the proximate cause of the field-level error. It should + * uniquely identify the type of the FieldViolation within the scope of the + * google.rpc.ErrorInfo.domain. This should be at most 63 + * characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, + * which represents UPPER_SNAKE_CASE. + * + * Generated from protobuf field string reason = 3; + * @return string + */ + public function getReason() + { + return $this->reason; + } + + /** + * The reason of the field-level error. This is a constant value that + * identifies the proximate cause of the field-level error. It should + * uniquely identify the type of the FieldViolation within the scope of the + * google.rpc.ErrorInfo.domain. This should be at most 63 + * characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, + * which represents UPPER_SNAKE_CASE. + * + * Generated from protobuf field string reason = 3; + * @param string $var + * @return $this + */ + public function setReason($var) + { + GPBUtil::checkString($var, True); + $this->reason = $var; + + return $this; + } + + /** + * Provides a localized error message for field-level errors that is safe to + * return to the API consumer. + * + * Generated from protobuf field .google.rpc.LocalizedMessage localized_message = 4; + * @return \Google\Rpc\LocalizedMessage|null + */ + public function getLocalizedMessage() + { + return $this->localized_message; + } + + public function hasLocalizedMessage() + { + return isset($this->localized_message); + } + + public function clearLocalizedMessage() + { + unset($this->localized_message); + } + + /** + * Provides a localized error message for field-level errors that is safe to + * return to the API consumer. + * + * Generated from protobuf field .google.rpc.LocalizedMessage localized_message = 4; + * @param \Google\Rpc\LocalizedMessage $var + * @return $this + */ + public function setLocalizedMessage($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\LocalizedMessage::class); + $this->localized_message = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Code.php b/vendor/google/common-protos/src/Rpc/Code.php new file mode 100644 index 0000000..b82e88f --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Code.php @@ -0,0 +1,243 @@ +google.rpc.Code + */ +class Code +{ + /** + * Not an error; returned on success. + * HTTP Mapping: 200 OK + * + * Generated from protobuf enum OK = 0; + */ + const OK = 0; + /** + * The operation was cancelled, typically by the caller. + * HTTP Mapping: 499 Client Closed Request + * + * Generated from protobuf enum CANCELLED = 1; + */ + const CANCELLED = 1; + /** + * Unknown error. For example, this error may be returned when + * a `Status` value received from another address space belongs to + * an error space that is not known in this address space. Also + * errors raised by APIs that do not return enough error information + * may be converted to this error. + * HTTP Mapping: 500 Internal Server Error + * + * Generated from protobuf enum UNKNOWN = 2; + */ + const UNKNOWN = 2; + /** + * The client specified an invalid argument. Note that this differs + * from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments + * that are problematic regardless of the state of the system + * (e.g., a malformed file name). + * HTTP Mapping: 400 Bad Request + * + * Generated from protobuf enum INVALID_ARGUMENT = 3; + */ + const INVALID_ARGUMENT = 3; + /** + * The deadline expired before the operation could complete. For operations + * that change the state of the system, this error may be returned + * even if the operation has completed successfully. For example, a + * successful response from a server could have been delayed long + * enough for the deadline to expire. + * HTTP Mapping: 504 Gateway Timeout + * + * Generated from protobuf enum DEADLINE_EXCEEDED = 4; + */ + const DEADLINE_EXCEEDED = 4; + /** + * Some requested entity (e.g., file or directory) was not found. + * Note to server developers: if a request is denied for an entire class + * of users, such as gradual feature rollout or undocumented allowlist, + * `NOT_FOUND` may be used. If a request is denied for some users within + * a class of users, such as user-based access control, `PERMISSION_DENIED` + * must be used. + * HTTP Mapping: 404 Not Found + * + * Generated from protobuf enum NOT_FOUND = 5; + */ + const NOT_FOUND = 5; + /** + * The entity that a client attempted to create (e.g., file or directory) + * already exists. + * HTTP Mapping: 409 Conflict + * + * Generated from protobuf enum ALREADY_EXISTS = 6; + */ + const ALREADY_EXISTS = 6; + /** + * The caller does not have permission to execute the specified + * operation. `PERMISSION_DENIED` must not be used for rejections + * caused by exhausting some resource (use `RESOURCE_EXHAUSTED` + * instead for those errors). `PERMISSION_DENIED` must not be + * used if the caller can not be identified (use `UNAUTHENTICATED` + * instead for those errors). This error code does not imply the + * request is valid or the requested entity exists or satisfies + * other pre-conditions. + * HTTP Mapping: 403 Forbidden + * + * Generated from protobuf enum PERMISSION_DENIED = 7; + */ + const PERMISSION_DENIED = 7; + /** + * The request does not have valid authentication credentials for the + * operation. + * HTTP Mapping: 401 Unauthorized + * + * Generated from protobuf enum UNAUTHENTICATED = 16; + */ + const UNAUTHENTICATED = 16; + /** + * Some resource has been exhausted, perhaps a per-user quota, or + * perhaps the entire file system is out of space. + * HTTP Mapping: 429 Too Many Requests + * + * Generated from protobuf enum RESOURCE_EXHAUSTED = 8; + */ + const RESOURCE_EXHAUSTED = 8; + /** + * The operation was rejected because the system is not in a state + * required for the operation's execution. For example, the directory + * to be deleted is non-empty, an rmdir operation is applied to + * a non-directory, etc. + * Service implementors can use the following guidelines to decide + * between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: + * (a) Use `UNAVAILABLE` if the client can retry just the failing call. + * (b) Use `ABORTED` if the client should retry at a higher level. For + * example, when a client-specified test-and-set fails, indicating the + * client should restart a read-modify-write sequence. + * (c) Use `FAILED_PRECONDITION` if the client should not retry until + * the system state has been explicitly fixed. For example, if an "rmdir" + * fails because the directory is non-empty, `FAILED_PRECONDITION` + * should be returned since the client should not retry unless + * the files are deleted from the directory. + * HTTP Mapping: 400 Bad Request + * + * Generated from protobuf enum FAILED_PRECONDITION = 9; + */ + const FAILED_PRECONDITION = 9; + /** + * The operation was aborted, typically due to a concurrency issue such as + * a sequencer check failure or transaction abort. + * See the guidelines above for deciding between `FAILED_PRECONDITION`, + * `ABORTED`, and `UNAVAILABLE`. + * HTTP Mapping: 409 Conflict + * + * Generated from protobuf enum ABORTED = 10; + */ + const ABORTED = 10; + /** + * The operation was attempted past the valid range. E.g., seeking or + * reading past end-of-file. + * Unlike `INVALID_ARGUMENT`, this error indicates a problem that may + * be fixed if the system state changes. For example, a 32-bit file + * system will generate `INVALID_ARGUMENT` if asked to read at an + * offset that is not in the range [0,2^32-1], but it will generate + * `OUT_OF_RANGE` if asked to read from an offset past the current + * file size. + * There is a fair bit of overlap between `FAILED_PRECONDITION` and + * `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific + * error) when it applies so that callers who are iterating through + * a space can easily look for an `OUT_OF_RANGE` error to detect when + * they are done. + * HTTP Mapping: 400 Bad Request + * + * Generated from protobuf enum OUT_OF_RANGE = 11; + */ + const OUT_OF_RANGE = 11; + /** + * The operation is not implemented or is not supported/enabled in this + * service. + * HTTP Mapping: 501 Not Implemented + * + * Generated from protobuf enum UNIMPLEMENTED = 12; + */ + const UNIMPLEMENTED = 12; + /** + * Internal errors. This means that some invariants expected by the + * underlying system have been broken. This error code is reserved + * for serious errors. + * HTTP Mapping: 500 Internal Server Error + * + * Generated from protobuf enum INTERNAL = 13; + */ + const INTERNAL = 13; + /** + * The service is currently unavailable. This is most likely a + * transient condition, which can be corrected by retrying with + * a backoff. Note that it is not always safe to retry + * non-idempotent operations. + * See the guidelines above for deciding between `FAILED_PRECONDITION`, + * `ABORTED`, and `UNAVAILABLE`. + * HTTP Mapping: 503 Service Unavailable + * + * Generated from protobuf enum UNAVAILABLE = 14; + */ + const UNAVAILABLE = 14; + /** + * Unrecoverable data loss or corruption. + * HTTP Mapping: 500 Internal Server Error + * + * Generated from protobuf enum DATA_LOSS = 15; + */ + const DATA_LOSS = 15; + + private static $valueToName = [ + self::OK => 'OK', + self::CANCELLED => 'CANCELLED', + self::UNKNOWN => 'UNKNOWN', + self::INVALID_ARGUMENT => 'INVALID_ARGUMENT', + self::DEADLINE_EXCEEDED => 'DEADLINE_EXCEEDED', + self::NOT_FOUND => 'NOT_FOUND', + self::ALREADY_EXISTS => 'ALREADY_EXISTS', + self::PERMISSION_DENIED => 'PERMISSION_DENIED', + self::UNAUTHENTICATED => 'UNAUTHENTICATED', + self::RESOURCE_EXHAUSTED => 'RESOURCE_EXHAUSTED', + self::FAILED_PRECONDITION => 'FAILED_PRECONDITION', + self::ABORTED => 'ABORTED', + self::OUT_OF_RANGE => 'OUT_OF_RANGE', + self::UNIMPLEMENTED => 'UNIMPLEMENTED', + self::INTERNAL => 'INTERNAL', + self::UNAVAILABLE => 'UNAVAILABLE', + self::DATA_LOSS => 'DATA_LOSS', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext.php new file mode 100644 index 0000000..a18f303 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext.php @@ -0,0 +1,419 @@ +google.rpc.context.AttributeContext + */ +class AttributeContext extends \Google\Protobuf\Internal\Message +{ + /** + * The origin of a network activity. In a multi hop network activity, + * the origin represents the sender of the first hop. For the first hop, + * the `source` and the `origin` must have the same content. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer origin = 7; + */ + protected $origin = null; + /** + * The source of a network activity, such as starting a TCP connection. + * In a multi hop network activity, the source represents the sender of the + * last hop. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer source = 1; + */ + protected $source = null; + /** + * The destination of a network activity, such as accepting a TCP connection. + * In a multi hop network activity, the destination represents the receiver of + * the last hop. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer destination = 2; + */ + protected $destination = null; + /** + * Represents a network request, such as an HTTP request. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Request request = 3; + */ + protected $request = null; + /** + * Represents a network response, such as an HTTP response. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Response response = 4; + */ + protected $response = null; + /** + * Represents a target resource that is involved with a network activity. + * If multiple resources are involved with an activity, this must be the + * primary one. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Resource resource = 5; + */ + protected $resource = null; + /** + * Represents an API operation that is involved to a network activity. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Api api = 6; + */ + protected $api = null; + /** + * Supports extensions for advanced use cases, such as logs and metrics. + * + * Generated from protobuf field repeated .google.protobuf.Any extensions = 8; + */ + private $extensions; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Rpc\Context\AttributeContext\Peer $origin + * The origin of a network activity. In a multi hop network activity, + * the origin represents the sender of the first hop. For the first hop, + * the `source` and the `origin` must have the same content. + * @type \Google\Rpc\Context\AttributeContext\Peer $source + * The source of a network activity, such as starting a TCP connection. + * In a multi hop network activity, the source represents the sender of the + * last hop. + * @type \Google\Rpc\Context\AttributeContext\Peer $destination + * The destination of a network activity, such as accepting a TCP connection. + * In a multi hop network activity, the destination represents the receiver of + * the last hop. + * @type \Google\Rpc\Context\AttributeContext\Request $request + * Represents a network request, such as an HTTP request. + * @type \Google\Rpc\Context\AttributeContext\Response $response + * Represents a network response, such as an HTTP response. + * @type \Google\Rpc\Context\AttributeContext\Resource $resource + * Represents a target resource that is involved with a network activity. + * If multiple resources are involved with an activity, this must be the + * primary one. + * @type \Google\Rpc\Context\AttributeContext\Api $api + * Represents an API operation that is involved to a network activity. + * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $extensions + * Supports extensions for advanced use cases, such as logs and metrics. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The origin of a network activity. In a multi hop network activity, + * the origin represents the sender of the first hop. For the first hop, + * the `source` and the `origin` must have the same content. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer origin = 7; + * @return \Google\Rpc\Context\AttributeContext\Peer|null + */ + public function getOrigin() + { + return $this->origin; + } + + public function hasOrigin() + { + return isset($this->origin); + } + + public function clearOrigin() + { + unset($this->origin); + } + + /** + * The origin of a network activity. In a multi hop network activity, + * the origin represents the sender of the first hop. For the first hop, + * the `source` and the `origin` must have the same content. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer origin = 7; + * @param \Google\Rpc\Context\AttributeContext\Peer $var + * @return $this + */ + public function setOrigin($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Peer::class); + $this->origin = $var; + + return $this; + } + + /** + * The source of a network activity, such as starting a TCP connection. + * In a multi hop network activity, the source represents the sender of the + * last hop. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer source = 1; + * @return \Google\Rpc\Context\AttributeContext\Peer|null + */ + public function getSource() + { + return $this->source; + } + + public function hasSource() + { + return isset($this->source); + } + + public function clearSource() + { + unset($this->source); + } + + /** + * The source of a network activity, such as starting a TCP connection. + * In a multi hop network activity, the source represents the sender of the + * last hop. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer source = 1; + * @param \Google\Rpc\Context\AttributeContext\Peer $var + * @return $this + */ + public function setSource($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Peer::class); + $this->source = $var; + + return $this; + } + + /** + * The destination of a network activity, such as accepting a TCP connection. + * In a multi hop network activity, the destination represents the receiver of + * the last hop. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer destination = 2; + * @return \Google\Rpc\Context\AttributeContext\Peer|null + */ + public function getDestination() + { + return $this->destination; + } + + public function hasDestination() + { + return isset($this->destination); + } + + public function clearDestination() + { + unset($this->destination); + } + + /** + * The destination of a network activity, such as accepting a TCP connection. + * In a multi hop network activity, the destination represents the receiver of + * the last hop. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Peer destination = 2; + * @param \Google\Rpc\Context\AttributeContext\Peer $var + * @return $this + */ + public function setDestination($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Peer::class); + $this->destination = $var; + + return $this; + } + + /** + * Represents a network request, such as an HTTP request. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Request request = 3; + * @return \Google\Rpc\Context\AttributeContext\Request|null + */ + public function getRequest() + { + return $this->request; + } + + public function hasRequest() + { + return isset($this->request); + } + + public function clearRequest() + { + unset($this->request); + } + + /** + * Represents a network request, such as an HTTP request. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Request request = 3; + * @param \Google\Rpc\Context\AttributeContext\Request $var + * @return $this + */ + public function setRequest($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Request::class); + $this->request = $var; + + return $this; + } + + /** + * Represents a network response, such as an HTTP response. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Response response = 4; + * @return \Google\Rpc\Context\AttributeContext\Response|null + */ + public function getResponse() + { + return $this->response; + } + + public function hasResponse() + { + return isset($this->response); + } + + public function clearResponse() + { + unset($this->response); + } + + /** + * Represents a network response, such as an HTTP response. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Response response = 4; + * @param \Google\Rpc\Context\AttributeContext\Response $var + * @return $this + */ + public function setResponse($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Response::class); + $this->response = $var; + + return $this; + } + + /** + * Represents a target resource that is involved with a network activity. + * If multiple resources are involved with an activity, this must be the + * primary one. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Resource resource = 5; + * @return \Google\Rpc\Context\AttributeContext\Resource|null + */ + public function getResource() + { + return $this->resource; + } + + public function hasResource() + { + return isset($this->resource); + } + + public function clearResource() + { + unset($this->resource); + } + + /** + * Represents a target resource that is involved with a network activity. + * If multiple resources are involved with an activity, this must be the + * primary one. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Resource resource = 5; + * @param \Google\Rpc\Context\AttributeContext\Resource $var + * @return $this + */ + public function setResource($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Resource::class); + $this->resource = $var; + + return $this; + } + + /** + * Represents an API operation that is involved to a network activity. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Api api = 6; + * @return \Google\Rpc\Context\AttributeContext\Api|null + */ + public function getApi() + { + return $this->api; + } + + public function hasApi() + { + return isset($this->api); + } + + public function clearApi() + { + unset($this->api); + } + + /** + * Represents an API operation that is involved to a network activity. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Api api = 6; + * @param \Google\Rpc\Context\AttributeContext\Api $var + * @return $this + */ + public function setApi($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Api::class); + $this->api = $var; + + return $this; + } + + /** + * Supports extensions for advanced use cases, such as logs and metrics. + * + * Generated from protobuf field repeated .google.protobuf.Any extensions = 8; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getExtensions() + { + return $this->extensions; + } + + /** + * Supports extensions for advanced use cases, such as logs and metrics. + * + * Generated from protobuf field repeated .google.protobuf.Any extensions = 8; + * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setExtensions($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); + $this->extensions = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Api.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Api.php new file mode 100644 index 0000000..5cba422 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Api.php @@ -0,0 +1,196 @@ +google.rpc.context.AttributeContext.Api + */ +class Api extends \Google\Protobuf\Internal\Message +{ + /** + * The API service name. It is a logical identifier for a networked API, + * such as "pubsub.googleapis.com". The naming syntax depends on the + * API management system being used for handling the request. + * + * Generated from protobuf field string service = 1; + */ + protected $service = ''; + /** + * The API operation name. For gRPC requests, it is the fully qualified API + * method name, such as "google.pubsub.v1.Publisher.Publish". For OpenAPI + * requests, it is the `operationId`, such as "getPet". + * + * Generated from protobuf field string operation = 2; + */ + protected $operation = ''; + /** + * The API protocol used for sending the request, such as "http", "https", + * "grpc", or "internal". + * + * Generated from protobuf field string protocol = 3; + */ + protected $protocol = ''; + /** + * The API version associated with the API operation above, such as "v1" or + * "v1alpha1". + * + * Generated from protobuf field string version = 4; + */ + protected $version = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $service + * The API service name. It is a logical identifier for a networked API, + * such as "pubsub.googleapis.com". The naming syntax depends on the + * API management system being used for handling the request. + * @type string $operation + * The API operation name. For gRPC requests, it is the fully qualified API + * method name, such as "google.pubsub.v1.Publisher.Publish". For OpenAPI + * requests, it is the `operationId`, such as "getPet". + * @type string $protocol + * The API protocol used for sending the request, such as "http", "https", + * "grpc", or "internal". + * @type string $version + * The API version associated with the API operation above, such as "v1" or + * "v1alpha1". + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The API service name. It is a logical identifier for a networked API, + * such as "pubsub.googleapis.com". The naming syntax depends on the + * API management system being used for handling the request. + * + * Generated from protobuf field string service = 1; + * @return string + */ + public function getService() + { + return $this->service; + } + + /** + * The API service name. It is a logical identifier for a networked API, + * such as "pubsub.googleapis.com". The naming syntax depends on the + * API management system being used for handling the request. + * + * Generated from protobuf field string service = 1; + * @param string $var + * @return $this + */ + public function setService($var) + { + GPBUtil::checkString($var, True); + $this->service = $var; + + return $this; + } + + /** + * The API operation name. For gRPC requests, it is the fully qualified API + * method name, such as "google.pubsub.v1.Publisher.Publish". For OpenAPI + * requests, it is the `operationId`, such as "getPet". + * + * Generated from protobuf field string operation = 2; + * @return string + */ + public function getOperation() + { + return $this->operation; + } + + /** + * The API operation name. For gRPC requests, it is the fully qualified API + * method name, such as "google.pubsub.v1.Publisher.Publish". For OpenAPI + * requests, it is the `operationId`, such as "getPet". + * + * Generated from protobuf field string operation = 2; + * @param string $var + * @return $this + */ + public function setOperation($var) + { + GPBUtil::checkString($var, True); + $this->operation = $var; + + return $this; + } + + /** + * The API protocol used for sending the request, such as "http", "https", + * "grpc", or "internal". + * + * Generated from protobuf field string protocol = 3; + * @return string + */ + public function getProtocol() + { + return $this->protocol; + } + + /** + * The API protocol used for sending the request, such as "http", "https", + * "grpc", or "internal". + * + * Generated from protobuf field string protocol = 3; + * @param string $var + * @return $this + */ + public function setProtocol($var) + { + GPBUtil::checkString($var, True); + $this->protocol = $var; + + return $this; + } + + /** + * The API version associated with the API operation above, such as "v1" or + * "v1alpha1". + * + * Generated from protobuf field string version = 4; + * @return string + */ + public function getVersion() + { + return $this->version; + } + + /** + * The API version associated with the API operation above, such as "v1" or + * "v1alpha1". + * + * Generated from protobuf field string version = 4; + * @param string $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkString($var, True); + $this->version = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Auth.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Auth.php new file mode 100644 index 0000000..dd42490 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Auth.php @@ -0,0 +1,356 @@ +google.rpc.context.AttributeContext.Auth + */ +class Auth extends \Google\Protobuf\Internal\Message +{ + /** + * The authenticated principal. Reflects the issuer (`iss`) and subject + * (`sub`) claims within a JWT. The issuer and subject should be `/` + * delimited, with `/` percent-encoded within the subject fragment. For + * Google accounts, the principal format is: + * "https://accounts.google.com/{id}" + * + * Generated from protobuf field string principal = 1; + */ + protected $principal = ''; + /** + * The intended audience(s) for this authentication information. Reflects + * the audience (`aud`) claim within a JWT. The audience + * value(s) depends on the `issuer`, but typically include one or more of + * the following pieces of information: + * * The services intended to receive the credential. For example, + * ["https://pubsub.googleapis.com/", "https://storage.googleapis.com/"]. + * * A set of service-based scopes. For example, + * ["https://www.googleapis.com/auth/cloud-platform"]. + * * The client id of an app, such as the Firebase project id for JWTs + * from Firebase Auth. + * Consult the documentation for the credential issuer to determine the + * information provided. + * + * Generated from protobuf field repeated string audiences = 2; + */ + private $audiences; + /** + * The authorized presenter of the credential. Reflects the optional + * Authorized Presenter (`azp`) claim within a JWT or the + * OAuth client id. For example, a Google Cloud Platform client id looks + * as follows: "123456789012.apps.googleusercontent.com". + * + * Generated from protobuf field string presenter = 3; + */ + protected $presenter = ''; + /** + * Structured claims presented with the credential. JWTs include + * `{key: value}` pairs for standard and private claims. The following + * is a subset of the standard required and optional claims that would + * typically be presented for a Google-based JWT: + * {'iss': 'accounts.google.com', + * 'sub': '113289723416554971153', + * 'aud': ['123456789012', 'pubsub.googleapis.com'], + * 'azp': '123456789012.apps.googleusercontent.com', + * 'email': 'jsmith@example.com', + * 'iat': 1353601026, + * 'exp': 1353604926} + * SAML assertions are similarly specified, but with an identity provider + * dependent structure. + * + * Generated from protobuf field .google.protobuf.Struct claims = 4; + */ + protected $claims = null; + /** + * A list of access level resource names that allow resources to be + * accessed by authenticated requester. It is part of Secure GCP processing + * for the incoming request. An access level string has the format: + * "//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_name}" + * Example: + * "//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/accessLevels/MY_LEVEL" + * + * Generated from protobuf field repeated string access_levels = 5; + */ + private $access_levels; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $principal + * The authenticated principal. Reflects the issuer (`iss`) and subject + * (`sub`) claims within a JWT. The issuer and subject should be `/` + * delimited, with `/` percent-encoded within the subject fragment. For + * Google accounts, the principal format is: + * "https://accounts.google.com/{id}" + * @type array|\Google\Protobuf\Internal\RepeatedField $audiences + * The intended audience(s) for this authentication information. Reflects + * the audience (`aud`) claim within a JWT. The audience + * value(s) depends on the `issuer`, but typically include one or more of + * the following pieces of information: + * * The services intended to receive the credential. For example, + * ["https://pubsub.googleapis.com/", "https://storage.googleapis.com/"]. + * * A set of service-based scopes. For example, + * ["https://www.googleapis.com/auth/cloud-platform"]. + * * The client id of an app, such as the Firebase project id for JWTs + * from Firebase Auth. + * Consult the documentation for the credential issuer to determine the + * information provided. + * @type string $presenter + * The authorized presenter of the credential. Reflects the optional + * Authorized Presenter (`azp`) claim within a JWT or the + * OAuth client id. For example, a Google Cloud Platform client id looks + * as follows: "123456789012.apps.googleusercontent.com". + * @type \Google\Protobuf\Struct $claims + * Structured claims presented with the credential. JWTs include + * `{key: value}` pairs for standard and private claims. The following + * is a subset of the standard required and optional claims that would + * typically be presented for a Google-based JWT: + * {'iss': 'accounts.google.com', + * 'sub': '113289723416554971153', + * 'aud': ['123456789012', 'pubsub.googleapis.com'], + * 'azp': '123456789012.apps.googleusercontent.com', + * 'email': 'jsmith@example.com', + * 'iat': 1353601026, + * 'exp': 1353604926} + * SAML assertions are similarly specified, but with an identity provider + * dependent structure. + * @type array|\Google\Protobuf\Internal\RepeatedField $access_levels + * A list of access level resource names that allow resources to be + * accessed by authenticated requester. It is part of Secure GCP processing + * for the incoming request. An access level string has the format: + * "//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_name}" + * Example: + * "//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/accessLevels/MY_LEVEL" + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The authenticated principal. Reflects the issuer (`iss`) and subject + * (`sub`) claims within a JWT. The issuer and subject should be `/` + * delimited, with `/` percent-encoded within the subject fragment. For + * Google accounts, the principal format is: + * "https://accounts.google.com/{id}" + * + * Generated from protobuf field string principal = 1; + * @return string + */ + public function getPrincipal() + { + return $this->principal; + } + + /** + * The authenticated principal. Reflects the issuer (`iss`) and subject + * (`sub`) claims within a JWT. The issuer and subject should be `/` + * delimited, with `/` percent-encoded within the subject fragment. For + * Google accounts, the principal format is: + * "https://accounts.google.com/{id}" + * + * Generated from protobuf field string principal = 1; + * @param string $var + * @return $this + */ + public function setPrincipal($var) + { + GPBUtil::checkString($var, True); + $this->principal = $var; + + return $this; + } + + /** + * The intended audience(s) for this authentication information. Reflects + * the audience (`aud`) claim within a JWT. The audience + * value(s) depends on the `issuer`, but typically include one or more of + * the following pieces of information: + * * The services intended to receive the credential. For example, + * ["https://pubsub.googleapis.com/", "https://storage.googleapis.com/"]. + * * A set of service-based scopes. For example, + * ["https://www.googleapis.com/auth/cloud-platform"]. + * * The client id of an app, such as the Firebase project id for JWTs + * from Firebase Auth. + * Consult the documentation for the credential issuer to determine the + * information provided. + * + * Generated from protobuf field repeated string audiences = 2; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAudiences() + { + return $this->audiences; + } + + /** + * The intended audience(s) for this authentication information. Reflects + * the audience (`aud`) claim within a JWT. The audience + * value(s) depends on the `issuer`, but typically include one or more of + * the following pieces of information: + * * The services intended to receive the credential. For example, + * ["https://pubsub.googleapis.com/", "https://storage.googleapis.com/"]. + * * A set of service-based scopes. For example, + * ["https://www.googleapis.com/auth/cloud-platform"]. + * * The client id of an app, such as the Firebase project id for JWTs + * from Firebase Auth. + * Consult the documentation for the credential issuer to determine the + * information provided. + * + * Generated from protobuf field repeated string audiences = 2; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAudiences($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->audiences = $arr; + + return $this; + } + + /** + * The authorized presenter of the credential. Reflects the optional + * Authorized Presenter (`azp`) claim within a JWT or the + * OAuth client id. For example, a Google Cloud Platform client id looks + * as follows: "123456789012.apps.googleusercontent.com". + * + * Generated from protobuf field string presenter = 3; + * @return string + */ + public function getPresenter() + { + return $this->presenter; + } + + /** + * The authorized presenter of the credential. Reflects the optional + * Authorized Presenter (`azp`) claim within a JWT or the + * OAuth client id. For example, a Google Cloud Platform client id looks + * as follows: "123456789012.apps.googleusercontent.com". + * + * Generated from protobuf field string presenter = 3; + * @param string $var + * @return $this + */ + public function setPresenter($var) + { + GPBUtil::checkString($var, True); + $this->presenter = $var; + + return $this; + } + + /** + * Structured claims presented with the credential. JWTs include + * `{key: value}` pairs for standard and private claims. The following + * is a subset of the standard required and optional claims that would + * typically be presented for a Google-based JWT: + * {'iss': 'accounts.google.com', + * 'sub': '113289723416554971153', + * 'aud': ['123456789012', 'pubsub.googleapis.com'], + * 'azp': '123456789012.apps.googleusercontent.com', + * 'email': 'jsmith@example.com', + * 'iat': 1353601026, + * 'exp': 1353604926} + * SAML assertions are similarly specified, but with an identity provider + * dependent structure. + * + * Generated from protobuf field .google.protobuf.Struct claims = 4; + * @return \Google\Protobuf\Struct|null + */ + public function getClaims() + { + return $this->claims; + } + + public function hasClaims() + { + return isset($this->claims); + } + + public function clearClaims() + { + unset($this->claims); + } + + /** + * Structured claims presented with the credential. JWTs include + * `{key: value}` pairs for standard and private claims. The following + * is a subset of the standard required and optional claims that would + * typically be presented for a Google-based JWT: + * {'iss': 'accounts.google.com', + * 'sub': '113289723416554971153', + * 'aud': ['123456789012', 'pubsub.googleapis.com'], + * 'azp': '123456789012.apps.googleusercontent.com', + * 'email': 'jsmith@example.com', + * 'iat': 1353601026, + * 'exp': 1353604926} + * SAML assertions are similarly specified, but with an identity provider + * dependent structure. + * + * Generated from protobuf field .google.protobuf.Struct claims = 4; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setClaims($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->claims = $var; + + return $this; + } + + /** + * A list of access level resource names that allow resources to be + * accessed by authenticated requester. It is part of Secure GCP processing + * for the incoming request. An access level string has the format: + * "//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_name}" + * Example: + * "//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/accessLevels/MY_LEVEL" + * + * Generated from protobuf field repeated string access_levels = 5; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAccessLevels() + { + return $this->access_levels; + } + + /** + * A list of access level resource names that allow resources to be + * accessed by authenticated requester. It is part of Secure GCP processing + * for the incoming request. An access level string has the format: + * "//{api_service_name}/accessPolicies/{policy_id}/accessLevels/{short_name}" + * Example: + * "//accesscontextmanager.googleapis.com/accessPolicies/MY_POLICY_ID/accessLevels/MY_LEVEL" + * + * Generated from protobuf field repeated string access_levels = 5; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAccessLevels($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->access_levels = $arr; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Peer.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Peer.php new file mode 100644 index 0000000..9d3e1b6 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Peer.php @@ -0,0 +1,223 @@ +google.rpc.context.AttributeContext.Peer + */ +class Peer extends \Google\Protobuf\Internal\Message +{ + /** + * The IP address of the peer. + * + * Generated from protobuf field string ip = 1; + */ + protected $ip = ''; + /** + * The network port of the peer. + * + * Generated from protobuf field int64 port = 2; + */ + protected $port = 0; + /** + * The labels associated with the peer. + * + * Generated from protobuf field map labels = 6; + */ + private $labels; + /** + * The identity of this peer. Similar to `Request.auth.principal`, but + * relative to the peer instead of the request. For example, the + * identity associated with a load balancer that forwarded the request. + * + * Generated from protobuf field string principal = 7; + */ + protected $principal = ''; + /** + * The CLDR country/region code associated with the above IP address. + * If the IP address is private, the `region_code` should reflect the + * physical location where this peer is running. + * + * Generated from protobuf field string region_code = 8; + */ + protected $region_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $ip + * The IP address of the peer. + * @type int|string $port + * The network port of the peer. + * @type array|\Google\Protobuf\Internal\MapField $labels + * The labels associated with the peer. + * @type string $principal + * The identity of this peer. Similar to `Request.auth.principal`, but + * relative to the peer instead of the request. For example, the + * identity associated with a load balancer that forwarded the request. + * @type string $region_code + * The CLDR country/region code associated with the above IP address. + * If the IP address is private, the `region_code` should reflect the + * physical location where this peer is running. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The IP address of the peer. + * + * Generated from protobuf field string ip = 1; + * @return string + */ + public function getIp() + { + return $this->ip; + } + + /** + * The IP address of the peer. + * + * Generated from protobuf field string ip = 1; + * @param string $var + * @return $this + */ + public function setIp($var) + { + GPBUtil::checkString($var, True); + $this->ip = $var; + + return $this; + } + + /** + * The network port of the peer. + * + * Generated from protobuf field int64 port = 2; + * @return int|string + */ + public function getPort() + { + return $this->port; + } + + /** + * The network port of the peer. + * + * Generated from protobuf field int64 port = 2; + * @param int|string $var + * @return $this + */ + public function setPort($var) + { + GPBUtil::checkInt64($var); + $this->port = $var; + + return $this; + } + + /** + * The labels associated with the peer. + * + * Generated from protobuf field map labels = 6; + * @return \Google\Protobuf\Internal\MapField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * The labels associated with the peer. + * + * Generated from protobuf field map labels = 6; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->labels = $arr; + + return $this; + } + + /** + * The identity of this peer. Similar to `Request.auth.principal`, but + * relative to the peer instead of the request. For example, the + * identity associated with a load balancer that forwarded the request. + * + * Generated from protobuf field string principal = 7; + * @return string + */ + public function getPrincipal() + { + return $this->principal; + } + + /** + * The identity of this peer. Similar to `Request.auth.principal`, but + * relative to the peer instead of the request. For example, the + * identity associated with a load balancer that forwarded the request. + * + * Generated from protobuf field string principal = 7; + * @param string $var + * @return $this + */ + public function setPrincipal($var) + { + GPBUtil::checkString($var, True); + $this->principal = $var; + + return $this; + } + + /** + * The CLDR country/region code associated with the above IP address. + * If the IP address is private, the `region_code` should reflect the + * physical location where this peer is running. + * + * Generated from protobuf field string region_code = 8; + * @return string + */ + public function getRegionCode() + { + return $this->region_code; + } + + /** + * The CLDR country/region code associated with the above IP address. + * If the IP address is private, the `region_code` should reflect the + * physical location where this peer is running. + * + * Generated from protobuf field string region_code = 8; + * @param string $var + * @return $this + */ + public function setRegionCode($var) + { + GPBUtil::checkString($var, True); + $this->region_code = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Request.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Request.php new file mode 100644 index 0000000..928794a --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Request.php @@ -0,0 +1,508 @@ +google.rpc.context.AttributeContext.Request + */ +class Request extends \Google\Protobuf\Internal\Message +{ + /** + * The unique ID for a request, which can be propagated to downstream + * systems. The ID should have low probability of collision + * within a single day for a specific service. + * + * Generated from protobuf field string id = 1; + */ + protected $id = ''; + /** + * The HTTP request method, such as `GET`, `POST`. + * + * Generated from protobuf field string method = 2; + */ + protected $method = ''; + /** + * The HTTP request headers. If multiple headers share the same key, they + * must be merged according to the HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * + * Generated from protobuf field map headers = 3; + */ + private $headers; + /** + * The HTTP URL path, excluding the query parameters. + * + * Generated from protobuf field string path = 4; + */ + protected $path = ''; + /** + * The HTTP request `Host` header value. + * + * Generated from protobuf field string host = 5; + */ + protected $host = ''; + /** + * The HTTP URL scheme, such as `http` and `https`. + * + * Generated from protobuf field string scheme = 6; + */ + protected $scheme = ''; + /** + * The HTTP URL query in the format of `name1=value1&name2=value2`, as it + * appears in the first line of the HTTP request. No decoding is performed. + * + * Generated from protobuf field string query = 7; + */ + protected $query = ''; + /** + * The timestamp when the `destination` service receives the last byte of + * the request. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 9; + */ + protected $time = null; + /** + * The HTTP request size in bytes. If unknown, it must be -1. + * + * Generated from protobuf field int64 size = 10; + */ + protected $size = 0; + /** + * The network protocol used with the request, such as "http/1.1", + * "spdy/3", "h2", "h2c", "webrtc", "tcp", "udp", "quic". See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for details. + * + * Generated from protobuf field string protocol = 11; + */ + protected $protocol = ''; + /** + * A special parameter for request reason. It is used by security systems + * to associate auditing information with a request. + * + * Generated from protobuf field string reason = 12; + */ + protected $reason = ''; + /** + * The request authentication. May be absent for unauthenticated requests. + * Derived from the HTTP request `Authorization` header or equivalent. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Auth auth = 13; + */ + protected $auth = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $id + * The unique ID for a request, which can be propagated to downstream + * systems. The ID should have low probability of collision + * within a single day for a specific service. + * @type string $method + * The HTTP request method, such as `GET`, `POST`. + * @type array|\Google\Protobuf\Internal\MapField $headers + * The HTTP request headers. If multiple headers share the same key, they + * must be merged according to the HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * @type string $path + * The HTTP URL path, excluding the query parameters. + * @type string $host + * The HTTP request `Host` header value. + * @type string $scheme + * The HTTP URL scheme, such as `http` and `https`. + * @type string $query + * The HTTP URL query in the format of `name1=value1&name2=value2`, as it + * appears in the first line of the HTTP request. No decoding is performed. + * @type \Google\Protobuf\Timestamp $time + * The timestamp when the `destination` service receives the last byte of + * the request. + * @type int|string $size + * The HTTP request size in bytes. If unknown, it must be -1. + * @type string $protocol + * The network protocol used with the request, such as "http/1.1", + * "spdy/3", "h2", "h2c", "webrtc", "tcp", "udp", "quic". See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for details. + * @type string $reason + * A special parameter for request reason. It is used by security systems + * to associate auditing information with a request. + * @type \Google\Rpc\Context\AttributeContext\Auth $auth + * The request authentication. May be absent for unauthenticated requests. + * Derived from the HTTP request `Authorization` header or equivalent. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The unique ID for a request, which can be propagated to downstream + * systems. The ID should have low probability of collision + * within a single day for a specific service. + * + * Generated from protobuf field string id = 1; + * @return string + */ + public function getId() + { + return $this->id; + } + + /** + * The unique ID for a request, which can be propagated to downstream + * systems. The ID should have low probability of collision + * within a single day for a specific service. + * + * Generated from protobuf field string id = 1; + * @param string $var + * @return $this + */ + public function setId($var) + { + GPBUtil::checkString($var, True); + $this->id = $var; + + return $this; + } + + /** + * The HTTP request method, such as `GET`, `POST`. + * + * Generated from protobuf field string method = 2; + * @return string + */ + public function getMethod() + { + return $this->method; + } + + /** + * The HTTP request method, such as `GET`, `POST`. + * + * Generated from protobuf field string method = 2; + * @param string $var + * @return $this + */ + public function setMethod($var) + { + GPBUtil::checkString($var, True); + $this->method = $var; + + return $this; + } + + /** + * The HTTP request headers. If multiple headers share the same key, they + * must be merged according to the HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * + * Generated from protobuf field map headers = 3; + * @return \Google\Protobuf\Internal\MapField + */ + public function getHeaders() + { + return $this->headers; + } + + /** + * The HTTP request headers. If multiple headers share the same key, they + * must be merged according to the HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * + * Generated from protobuf field map headers = 3; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setHeaders($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->headers = $arr; + + return $this; + } + + /** + * The HTTP URL path, excluding the query parameters. + * + * Generated from protobuf field string path = 4; + * @return string + */ + public function getPath() + { + return $this->path; + } + + /** + * The HTTP URL path, excluding the query parameters. + * + * Generated from protobuf field string path = 4; + * @param string $var + * @return $this + */ + public function setPath($var) + { + GPBUtil::checkString($var, True); + $this->path = $var; + + return $this; + } + + /** + * The HTTP request `Host` header value. + * + * Generated from protobuf field string host = 5; + * @return string + */ + public function getHost() + { + return $this->host; + } + + /** + * The HTTP request `Host` header value. + * + * Generated from protobuf field string host = 5; + * @param string $var + * @return $this + */ + public function setHost($var) + { + GPBUtil::checkString($var, True); + $this->host = $var; + + return $this; + } + + /** + * The HTTP URL scheme, such as `http` and `https`. + * + * Generated from protobuf field string scheme = 6; + * @return string + */ + public function getScheme() + { + return $this->scheme; + } + + /** + * The HTTP URL scheme, such as `http` and `https`. + * + * Generated from protobuf field string scheme = 6; + * @param string $var + * @return $this + */ + public function setScheme($var) + { + GPBUtil::checkString($var, True); + $this->scheme = $var; + + return $this; + } + + /** + * The HTTP URL query in the format of `name1=value1&name2=value2`, as it + * appears in the first line of the HTTP request. No decoding is performed. + * + * Generated from protobuf field string query = 7; + * @return string + */ + public function getQuery() + { + return $this->query; + } + + /** + * The HTTP URL query in the format of `name1=value1&name2=value2`, as it + * appears in the first line of the HTTP request. No decoding is performed. + * + * Generated from protobuf field string query = 7; + * @param string $var + * @return $this + */ + public function setQuery($var) + { + GPBUtil::checkString($var, True); + $this->query = $var; + + return $this; + } + + /** + * The timestamp when the `destination` service receives the last byte of + * the request. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 9; + * @return \Google\Protobuf\Timestamp|null + */ + public function getTime() + { + return $this->time; + } + + public function hasTime() + { + return isset($this->time); + } + + public function clearTime() + { + unset($this->time); + } + + /** + * The timestamp when the `destination` service receives the last byte of + * the request. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 9; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->time = $var; + + return $this; + } + + /** + * The HTTP request size in bytes. If unknown, it must be -1. + * + * Generated from protobuf field int64 size = 10; + * @return int|string + */ + public function getSize() + { + return $this->size; + } + + /** + * The HTTP request size in bytes. If unknown, it must be -1. + * + * Generated from protobuf field int64 size = 10; + * @param int|string $var + * @return $this + */ + public function setSize($var) + { + GPBUtil::checkInt64($var); + $this->size = $var; + + return $this; + } + + /** + * The network protocol used with the request, such as "http/1.1", + * "spdy/3", "h2", "h2c", "webrtc", "tcp", "udp", "quic". See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for details. + * + * Generated from protobuf field string protocol = 11; + * @return string + */ + public function getProtocol() + { + return $this->protocol; + } + + /** + * The network protocol used with the request, such as "http/1.1", + * "spdy/3", "h2", "h2c", "webrtc", "tcp", "udp", "quic". See + * https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids + * for details. + * + * Generated from protobuf field string protocol = 11; + * @param string $var + * @return $this + */ + public function setProtocol($var) + { + GPBUtil::checkString($var, True); + $this->protocol = $var; + + return $this; + } + + /** + * A special parameter for request reason. It is used by security systems + * to associate auditing information with a request. + * + * Generated from protobuf field string reason = 12; + * @return string + */ + public function getReason() + { + return $this->reason; + } + + /** + * A special parameter for request reason. It is used by security systems + * to associate auditing information with a request. + * + * Generated from protobuf field string reason = 12; + * @param string $var + * @return $this + */ + public function setReason($var) + { + GPBUtil::checkString($var, True); + $this->reason = $var; + + return $this; + } + + /** + * The request authentication. May be absent for unauthenticated requests. + * Derived from the HTTP request `Authorization` header or equivalent. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Auth auth = 13; + * @return \Google\Rpc\Context\AttributeContext\Auth|null + */ + public function getAuth() + { + return $this->auth; + } + + public function hasAuth() + { + return isset($this->auth); + } + + public function clearAuth() + { + unset($this->auth); + } + + /** + * The request authentication. May be absent for unauthenticated requests. + * Derived from the HTTP request `Authorization` header or equivalent. + * + * Generated from protobuf field .google.rpc.context.AttributeContext.Auth auth = 13; + * @param \Google\Rpc\Context\AttributeContext\Auth $var + * @return $this + */ + public function setAuth($var) + { + GPBUtil::checkMessage($var, \Google\Rpc\Context\AttributeContext\Auth::class); + $this->auth = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Resource.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Resource.php new file mode 100644 index 0000000..4c10424 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Resource.php @@ -0,0 +1,614 @@ +google.rpc.context.AttributeContext.Resource + */ +class Resource extends \Google\Protobuf\Internal\Message +{ + /** + * The name of the service that this resource belongs to, such as + * `pubsub.googleapis.com`. The service may be different from the DNS + * hostname that actually serves the request. + * + * Generated from protobuf field string service = 1; + */ + protected $service = ''; + /** + * The stable identifier (name) of a resource on the `service`. A resource + * can be logically identified as "//{resource.service}/{resource.name}". + * The differences between a resource name and a URI are: + * * Resource name is a logical identifier, independent of network + * protocol and API version. For example, + * `//pubsub.googleapis.com/projects/123/topics/news-feed`. + * * URI often includes protocol and version information, so it can + * be used directly by applications. For example, + * `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. + * See https://cloud.google.com/apis/design/resource_names for details. + * + * Generated from protobuf field string name = 2; + */ + protected $name = ''; + /** + * The type of the resource. The syntax is platform-specific because + * different platforms define their resources differently. + * For Google APIs, the type format must be "{service}/{kind}", such as + * "pubsub.googleapis.com/Topic". + * + * Generated from protobuf field string type = 3; + */ + protected $type = ''; + /** + * The labels or tags on the resource, such as AWS resource tags and + * Kubernetes resource labels. + * + * Generated from protobuf field map labels = 4; + */ + private $labels; + /** + * The unique identifier of the resource. UID is unique in the time + * and space for this resource within the scope of the service. It is + * typically generated by the server on successful creation of a resource + * and must not be changed. UID is used to uniquely identify resources + * with resource name reuses. This should be a UUID4. + * + * Generated from protobuf field string uid = 5; + */ + protected $uid = ''; + /** + * Annotations is an unstructured key-value map stored with a resource that + * may be set by external tools to store and retrieve arbitrary metadata. + * They are not queryable and should be preserved when modifying objects. + * More info: + * https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + * + * Generated from protobuf field map annotations = 6; + */ + private $annotations; + /** + * Mutable. The display name set by clients. Must be <= 63 characters. + * + * Generated from protobuf field string display_name = 7; + */ + protected $display_name = ''; + /** + * Output only. The timestamp when the resource was created. This may + * be either the time creation was initiated or when it was completed. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 8; + */ + protected $create_time = null; + /** + * Output only. The timestamp when the resource was last updated. Any + * change to the resource made by users must refresh this value. + * Changes to a resource made by the service should refresh this value. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 9; + */ + protected $update_time = null; + /** + * Output only. The timestamp when the resource was deleted. + * If the resource is not deleted, this must be empty. + * + * Generated from protobuf field .google.protobuf.Timestamp delete_time = 10; + */ + protected $delete_time = null; + /** + * Output only. An opaque value that uniquely identifies a version or + * generation of a resource. It can be used to confirm that the client + * and server agree on the ordering of a resource being written. + * + * Generated from protobuf field string etag = 11; + */ + protected $etag = ''; + /** + * Immutable. The location of the resource. The location encoding is + * specific to the service provider, and new encoding may be introduced + * as the service evolves. + * For Google Cloud products, the encoding is what is used by Google Cloud + * APIs, such as `us-east1`, `aws-us-east-1`, and `azure-eastus2`. The + * semantics of `location` is identical to the + * `cloud.googleapis.com/location` label used by some Google Cloud APIs. + * + * Generated from protobuf field string location = 12; + */ + protected $location = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $service + * The name of the service that this resource belongs to, such as + * `pubsub.googleapis.com`. The service may be different from the DNS + * hostname that actually serves the request. + * @type string $name + * The stable identifier (name) of a resource on the `service`. A resource + * can be logically identified as "//{resource.service}/{resource.name}". + * The differences between a resource name and a URI are: + * * Resource name is a logical identifier, independent of network + * protocol and API version. For example, + * `//pubsub.googleapis.com/projects/123/topics/news-feed`. + * * URI often includes protocol and version information, so it can + * be used directly by applications. For example, + * `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. + * See https://cloud.google.com/apis/design/resource_names for details. + * @type string $type + * The type of the resource. The syntax is platform-specific because + * different platforms define their resources differently. + * For Google APIs, the type format must be "{service}/{kind}", such as + * "pubsub.googleapis.com/Topic". + * @type array|\Google\Protobuf\Internal\MapField $labels + * The labels or tags on the resource, such as AWS resource tags and + * Kubernetes resource labels. + * @type string $uid + * The unique identifier of the resource. UID is unique in the time + * and space for this resource within the scope of the service. It is + * typically generated by the server on successful creation of a resource + * and must not be changed. UID is used to uniquely identify resources + * with resource name reuses. This should be a UUID4. + * @type array|\Google\Protobuf\Internal\MapField $annotations + * Annotations is an unstructured key-value map stored with a resource that + * may be set by external tools to store and retrieve arbitrary metadata. + * They are not queryable and should be preserved when modifying objects. + * More info: + * https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + * @type string $display_name + * Mutable. The display name set by clients. Must be <= 63 characters. + * @type \Google\Protobuf\Timestamp $create_time + * Output only. The timestamp when the resource was created. This may + * be either the time creation was initiated or when it was completed. + * @type \Google\Protobuf\Timestamp $update_time + * Output only. The timestamp when the resource was last updated. Any + * change to the resource made by users must refresh this value. + * Changes to a resource made by the service should refresh this value. + * @type \Google\Protobuf\Timestamp $delete_time + * Output only. The timestamp when the resource was deleted. + * If the resource is not deleted, this must be empty. + * @type string $etag + * Output only. An opaque value that uniquely identifies a version or + * generation of a resource. It can be used to confirm that the client + * and server agree on the ordering of a resource being written. + * @type string $location + * Immutable. The location of the resource. The location encoding is + * specific to the service provider, and new encoding may be introduced + * as the service evolves. + * For Google Cloud products, the encoding is what is used by Google Cloud + * APIs, such as `us-east1`, `aws-us-east-1`, and `azure-eastus2`. The + * semantics of `location` is identical to the + * `cloud.googleapis.com/location` label used by some Google Cloud APIs. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The name of the service that this resource belongs to, such as + * `pubsub.googleapis.com`. The service may be different from the DNS + * hostname that actually serves the request. + * + * Generated from protobuf field string service = 1; + * @return string + */ + public function getService() + { + return $this->service; + } + + /** + * The name of the service that this resource belongs to, such as + * `pubsub.googleapis.com`. The service may be different from the DNS + * hostname that actually serves the request. + * + * Generated from protobuf field string service = 1; + * @param string $var + * @return $this + */ + public function setService($var) + { + GPBUtil::checkString($var, True); + $this->service = $var; + + return $this; + } + + /** + * The stable identifier (name) of a resource on the `service`. A resource + * can be logically identified as "//{resource.service}/{resource.name}". + * The differences between a resource name and a URI are: + * * Resource name is a logical identifier, independent of network + * protocol and API version. For example, + * `//pubsub.googleapis.com/projects/123/topics/news-feed`. + * * URI often includes protocol and version information, so it can + * be used directly by applications. For example, + * `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. + * See https://cloud.google.com/apis/design/resource_names for details. + * + * Generated from protobuf field string name = 2; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * The stable identifier (name) of a resource on the `service`. A resource + * can be logically identified as "//{resource.service}/{resource.name}". + * The differences between a resource name and a URI are: + * * Resource name is a logical identifier, independent of network + * protocol and API version. For example, + * `//pubsub.googleapis.com/projects/123/topics/news-feed`. + * * URI often includes protocol and version information, so it can + * be used directly by applications. For example, + * `https://pubsub.googleapis.com/v1/projects/123/topics/news-feed`. + * See https://cloud.google.com/apis/design/resource_names for details. + * + * Generated from protobuf field string name = 2; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, True); + $this->name = $var; + + return $this; + } + + /** + * The type of the resource. The syntax is platform-specific because + * different platforms define their resources differently. + * For Google APIs, the type format must be "{service}/{kind}", such as + * "pubsub.googleapis.com/Topic". + * + * Generated from protobuf field string type = 3; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * The type of the resource. The syntax is platform-specific because + * different platforms define their resources differently. + * For Google APIs, the type format must be "{service}/{kind}", such as + * "pubsub.googleapis.com/Topic". + * + * Generated from protobuf field string type = 3; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * The labels or tags on the resource, such as AWS resource tags and + * Kubernetes resource labels. + * + * Generated from protobuf field map labels = 4; + * @return \Google\Protobuf\Internal\MapField + */ + public function getLabels() + { + return $this->labels; + } + + /** + * The labels or tags on the resource, such as AWS resource tags and + * Kubernetes resource labels. + * + * Generated from protobuf field map labels = 4; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setLabels($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->labels = $arr; + + return $this; + } + + /** + * The unique identifier of the resource. UID is unique in the time + * and space for this resource within the scope of the service. It is + * typically generated by the server on successful creation of a resource + * and must not be changed. UID is used to uniquely identify resources + * with resource name reuses. This should be a UUID4. + * + * Generated from protobuf field string uid = 5; + * @return string + */ + public function getUid() + { + return $this->uid; + } + + /** + * The unique identifier of the resource. UID is unique in the time + * and space for this resource within the scope of the service. It is + * typically generated by the server on successful creation of a resource + * and must not be changed. UID is used to uniquely identify resources + * with resource name reuses. This should be a UUID4. + * + * Generated from protobuf field string uid = 5; + * @param string $var + * @return $this + */ + public function setUid($var) + { + GPBUtil::checkString($var, True); + $this->uid = $var; + + return $this; + } + + /** + * Annotations is an unstructured key-value map stored with a resource that + * may be set by external tools to store and retrieve arbitrary metadata. + * They are not queryable and should be preserved when modifying objects. + * More info: + * https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + * + * Generated from protobuf field map annotations = 6; + * @return \Google\Protobuf\Internal\MapField + */ + public function getAnnotations() + { + return $this->annotations; + } + + /** + * Annotations is an unstructured key-value map stored with a resource that + * may be set by external tools to store and retrieve arbitrary metadata. + * They are not queryable and should be preserved when modifying objects. + * More info: + * https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ + * + * Generated from protobuf field map annotations = 6; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setAnnotations($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->annotations = $arr; + + return $this; + } + + /** + * Mutable. The display name set by clients. Must be <= 63 characters. + * + * Generated from protobuf field string display_name = 7; + * @return string + */ + public function getDisplayName() + { + return $this->display_name; + } + + /** + * Mutable. The display name set by clients. Must be <= 63 characters. + * + * Generated from protobuf field string display_name = 7; + * @param string $var + * @return $this + */ + public function setDisplayName($var) + { + GPBUtil::checkString($var, True); + $this->display_name = $var; + + return $this; + } + + /** + * Output only. The timestamp when the resource was created. This may + * be either the time creation was initiated or when it was completed. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 8; + * @return \Google\Protobuf\Timestamp|null + */ + public function getCreateTime() + { + return $this->create_time; + } + + public function hasCreateTime() + { + return isset($this->create_time); + } + + public function clearCreateTime() + { + unset($this->create_time); + } + + /** + * Output only. The timestamp when the resource was created. This may + * be either the time creation was initiated or when it was completed. + * + * Generated from protobuf field .google.protobuf.Timestamp create_time = 8; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setCreateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->create_time = $var; + + return $this; + } + + /** + * Output only. The timestamp when the resource was last updated. Any + * change to the resource made by users must refresh this value. + * Changes to a resource made by the service should refresh this value. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 9; + * @return \Google\Protobuf\Timestamp|null + */ + public function getUpdateTime() + { + return $this->update_time; + } + + public function hasUpdateTime() + { + return isset($this->update_time); + } + + public function clearUpdateTime() + { + unset($this->update_time); + } + + /** + * Output only. The timestamp when the resource was last updated. Any + * change to the resource made by users must refresh this value. + * Changes to a resource made by the service should refresh this value. + * + * Generated from protobuf field .google.protobuf.Timestamp update_time = 9; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setUpdateTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->update_time = $var; + + return $this; + } + + /** + * Output only. The timestamp when the resource was deleted. + * If the resource is not deleted, this must be empty. + * + * Generated from protobuf field .google.protobuf.Timestamp delete_time = 10; + * @return \Google\Protobuf\Timestamp|null + */ + public function getDeleteTime() + { + return $this->delete_time; + } + + public function hasDeleteTime() + { + return isset($this->delete_time); + } + + public function clearDeleteTime() + { + unset($this->delete_time); + } + + /** + * Output only. The timestamp when the resource was deleted. + * If the resource is not deleted, this must be empty. + * + * Generated from protobuf field .google.protobuf.Timestamp delete_time = 10; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setDeleteTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->delete_time = $var; + + return $this; + } + + /** + * Output only. An opaque value that uniquely identifies a version or + * generation of a resource. It can be used to confirm that the client + * and server agree on the ordering of a resource being written. + * + * Generated from protobuf field string etag = 11; + * @return string + */ + public function getEtag() + { + return $this->etag; + } + + /** + * Output only. An opaque value that uniquely identifies a version or + * generation of a resource. It can be used to confirm that the client + * and server agree on the ordering of a resource being written. + * + * Generated from protobuf field string etag = 11; + * @param string $var + * @return $this + */ + public function setEtag($var) + { + GPBUtil::checkString($var, True); + $this->etag = $var; + + return $this; + } + + /** + * Immutable. The location of the resource. The location encoding is + * specific to the service provider, and new encoding may be introduced + * as the service evolves. + * For Google Cloud products, the encoding is what is used by Google Cloud + * APIs, such as `us-east1`, `aws-us-east-1`, and `azure-eastus2`. The + * semantics of `location` is identical to the + * `cloud.googleapis.com/location` label used by some Google Cloud APIs. + * + * Generated from protobuf field string location = 12; + * @return string + */ + public function getLocation() + { + return $this->location; + } + + /** + * Immutable. The location of the resource. The location encoding is + * specific to the service provider, and new encoding may be introduced + * as the service evolves. + * For Google Cloud products, the encoding is what is used by Google Cloud + * APIs, such as `us-east1`, `aws-us-east-1`, and `azure-eastus2`. The + * semantics of `location` is identical to the + * `cloud.googleapis.com/location` label used by some Google Cloud APIs. + * + * Generated from protobuf field string location = 12; + * @param string $var + * @return $this + */ + public function setLocation($var) + { + GPBUtil::checkString($var, True); + $this->location = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Response.php b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Response.php new file mode 100644 index 0000000..c632cf4 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AttributeContext/Response.php @@ -0,0 +1,249 @@ +google.rpc.context.AttributeContext.Response + */ +class Response extends \Google\Protobuf\Internal\Message +{ + /** + * The HTTP response status code, such as `200` and `404`. + * + * Generated from protobuf field int64 code = 1; + */ + protected $code = 0; + /** + * The HTTP response size in bytes. If unknown, it must be -1. + * + * Generated from protobuf field int64 size = 2; + */ + protected $size = 0; + /** + * The HTTP response headers. If multiple headers share the same key, they + * must be merged according to HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * + * Generated from protobuf field map headers = 3; + */ + private $headers; + /** + * The timestamp when the `destination` service sends the last byte of + * the response. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 4; + */ + protected $time = null; + /** + * The amount of time it takes the backend service to fully respond to a + * request. Measured from when the destination service starts to send the + * request to the backend until when the destination service receives the + * complete response from the backend. + * + * Generated from protobuf field .google.protobuf.Duration backend_latency = 5; + */ + protected $backend_latency = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $code + * The HTTP response status code, such as `200` and `404`. + * @type int|string $size + * The HTTP response size in bytes. If unknown, it must be -1. + * @type array|\Google\Protobuf\Internal\MapField $headers + * The HTTP response headers. If multiple headers share the same key, they + * must be merged according to HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * @type \Google\Protobuf\Timestamp $time + * The timestamp when the `destination` service sends the last byte of + * the response. + * @type \Google\Protobuf\Duration $backend_latency + * The amount of time it takes the backend service to fully respond to a + * request. Measured from when the destination service starts to send the + * request to the backend until when the destination service receives the + * complete response from the backend. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AttributeContext::initOnce(); + parent::__construct($data); + } + + /** + * The HTTP response status code, such as `200` and `404`. + * + * Generated from protobuf field int64 code = 1; + * @return int|string + */ + public function getCode() + { + return $this->code; + } + + /** + * The HTTP response status code, such as `200` and `404`. + * + * Generated from protobuf field int64 code = 1; + * @param int|string $var + * @return $this + */ + public function setCode($var) + { + GPBUtil::checkInt64($var); + $this->code = $var; + + return $this; + } + + /** + * The HTTP response size in bytes. If unknown, it must be -1. + * + * Generated from protobuf field int64 size = 2; + * @return int|string + */ + public function getSize() + { + return $this->size; + } + + /** + * The HTTP response size in bytes. If unknown, it must be -1. + * + * Generated from protobuf field int64 size = 2; + * @param int|string $var + * @return $this + */ + public function setSize($var) + { + GPBUtil::checkInt64($var); + $this->size = $var; + + return $this; + } + + /** + * The HTTP response headers. If multiple headers share the same key, they + * must be merged according to HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * + * Generated from protobuf field map headers = 3; + * @return \Google\Protobuf\Internal\MapField + */ + public function getHeaders() + { + return $this->headers; + } + + /** + * The HTTP response headers. If multiple headers share the same key, they + * must be merged according to HTTP spec. All header keys must be + * lowercased, because HTTP header keys are case-insensitive. + * + * Generated from protobuf field map headers = 3; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setHeaders($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->headers = $arr; + + return $this; + } + + /** + * The timestamp when the `destination` service sends the last byte of + * the response. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 4; + * @return \Google\Protobuf\Timestamp|null + */ + public function getTime() + { + return $this->time; + } + + public function hasTime() + { + return isset($this->time); + } + + public function clearTime() + { + unset($this->time); + } + + /** + * The timestamp when the `destination` service sends the last byte of + * the response. + * + * Generated from protobuf field .google.protobuf.Timestamp time = 4; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->time = $var; + + return $this; + } + + /** + * The amount of time it takes the backend service to fully respond to a + * request. Measured from when the destination service starts to send the + * request to the backend until when the destination service receives the + * complete response from the backend. + * + * Generated from protobuf field .google.protobuf.Duration backend_latency = 5; + * @return \Google\Protobuf\Duration|null + */ + public function getBackendLatency() + { + return $this->backend_latency; + } + + public function hasBackendLatency() + { + return isset($this->backend_latency); + } + + public function clearBackendLatency() + { + unset($this->backend_latency); + } + + /** + * The amount of time it takes the backend service to fully respond to a + * request. Measured from when the destination service starts to send the + * request to the backend until when the destination service receives the + * complete response from the backend. + * + * Generated from protobuf field .google.protobuf.Duration backend_latency = 5; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setBackendLatency($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->backend_latency = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/Context/AuditContext.php b/vendor/google/common-protos/src/Rpc/Context/AuditContext.php new file mode 100644 index 0000000..3e9588a --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Context/AuditContext.php @@ -0,0 +1,247 @@ +google.rpc.context.AuditContext + */ +class AuditContext extends \Google\Protobuf\Internal\Message +{ + /** + * Serialized audit log. + * + * Generated from protobuf field bytes audit_log = 1; + */ + protected $audit_log = ''; + /** + * An API request message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * + * Generated from protobuf field .google.protobuf.Struct scrubbed_request = 2; + */ + protected $scrubbed_request = null; + /** + * An API response message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * + * Generated from protobuf field .google.protobuf.Struct scrubbed_response = 3; + */ + protected $scrubbed_response = null; + /** + * Number of scrubbed response items. + * + * Generated from protobuf field int32 scrubbed_response_item_count = 4; + */ + protected $scrubbed_response_item_count = 0; + /** + * Audit resource name which is scrubbed. + * + * Generated from protobuf field string target_resource = 5; + */ + protected $target_resource = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $audit_log + * Serialized audit log. + * @type \Google\Protobuf\Struct $scrubbed_request + * An API request message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * @type \Google\Protobuf\Struct $scrubbed_response + * An API response message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * @type int $scrubbed_response_item_count + * Number of scrubbed response items. + * @type string $target_resource + * Audit resource name which is scrubbed. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Context\AuditContext::initOnce(); + parent::__construct($data); + } + + /** + * Serialized audit log. + * + * Generated from protobuf field bytes audit_log = 1; + * @return string + */ + public function getAuditLog() + { + return $this->audit_log; + } + + /** + * Serialized audit log. + * + * Generated from protobuf field bytes audit_log = 1; + * @param string $var + * @return $this + */ + public function setAuditLog($var) + { + GPBUtil::checkString($var, False); + $this->audit_log = $var; + + return $this; + } + + /** + * An API request message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * + * Generated from protobuf field .google.protobuf.Struct scrubbed_request = 2; + * @return \Google\Protobuf\Struct|null + */ + public function getScrubbedRequest() + { + return $this->scrubbed_request; + } + + public function hasScrubbedRequest() + { + return isset($this->scrubbed_request); + } + + public function clearScrubbedRequest() + { + unset($this->scrubbed_request); + } + + /** + * An API request message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * + * Generated from protobuf field .google.protobuf.Struct scrubbed_request = 2; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setScrubbedRequest($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->scrubbed_request = $var; + + return $this; + } + + /** + * An API response message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * + * Generated from protobuf field .google.protobuf.Struct scrubbed_response = 3; + * @return \Google\Protobuf\Struct|null + */ + public function getScrubbedResponse() + { + return $this->scrubbed_response; + } + + public function hasScrubbedResponse() + { + return isset($this->scrubbed_response); + } + + public function clearScrubbedResponse() + { + unset($this->scrubbed_response); + } + + /** + * An API response message that is scrubbed based on the method annotation. + * This field should only be filled if audit_log field is present. + * Service Control will use this to assemble a complete log for Cloud Audit + * Logs and Google internal audit logs. + * + * Generated from protobuf field .google.protobuf.Struct scrubbed_response = 3; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setScrubbedResponse($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->scrubbed_response = $var; + + return $this; + } + + /** + * Number of scrubbed response items. + * + * Generated from protobuf field int32 scrubbed_response_item_count = 4; + * @return int + */ + public function getScrubbedResponseItemCount() + { + return $this->scrubbed_response_item_count; + } + + /** + * Number of scrubbed response items. + * + * Generated from protobuf field int32 scrubbed_response_item_count = 4; + * @param int $var + * @return $this + */ + public function setScrubbedResponseItemCount($var) + { + GPBUtil::checkInt32($var); + $this->scrubbed_response_item_count = $var; + + return $this; + } + + /** + * Audit resource name which is scrubbed. + * + * Generated from protobuf field string target_resource = 5; + * @return string + */ + public function getTargetResource() + { + return $this->target_resource; + } + + /** + * Audit resource name which is scrubbed. + * + * Generated from protobuf field string target_resource = 5; + * @param string $var + * @return $this + */ + public function setTargetResource($var) + { + GPBUtil::checkString($var, True); + $this->target_resource = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/DebugInfo.php b/vendor/google/common-protos/src/Rpc/DebugInfo.php new file mode 100644 index 0000000..6489673 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/DebugInfo.php @@ -0,0 +1,101 @@ +google.rpc.DebugInfo + */ +class DebugInfo extends \Google\Protobuf\Internal\Message +{ + /** + * The stack trace entries indicating where the error occurred. + * + * Generated from protobuf field repeated string stack_entries = 1; + */ + private $stack_entries; + /** + * Additional debugging information provided by the server. + * + * Generated from protobuf field string detail = 2; + */ + protected $detail = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array|\Google\Protobuf\Internal\RepeatedField $stack_entries + * The stack trace entries indicating where the error occurred. + * @type string $detail + * Additional debugging information provided by the server. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * The stack trace entries indicating where the error occurred. + * + * Generated from protobuf field repeated string stack_entries = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getStackEntries() + { + return $this->stack_entries; + } + + /** + * The stack trace entries indicating where the error occurred. + * + * Generated from protobuf field repeated string stack_entries = 1; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setStackEntries($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->stack_entries = $arr; + + return $this; + } + + /** + * Additional debugging information provided by the server. + * + * Generated from protobuf field string detail = 2; + * @return string + */ + public function getDetail() + { + return $this->detail; + } + + /** + * Additional debugging information provided by the server. + * + * Generated from protobuf field string detail = 2; + * @param string $var + * @return $this + */ + public function setDetail($var) + { + GPBUtil::checkString($var, True); + $this->detail = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/ErrorInfo.php b/vendor/google/common-protos/src/Rpc/ErrorInfo.php new file mode 100644 index 0000000..83c969c --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/ErrorInfo.php @@ -0,0 +1,217 @@ +google.rpc.ErrorInfo + */ +class ErrorInfo extends \Google\Protobuf\Internal\Message +{ + /** + * The reason of the error. This is a constant value that identifies the + * proximate cause of the error. Error reasons are unique within a particular + * domain of errors. This should be at most 63 characters and match a + * regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents + * UPPER_SNAKE_CASE. + * + * Generated from protobuf field string reason = 1; + */ + protected $reason = ''; + /** + * The logical grouping to which the "reason" belongs. The error domain + * is typically the registered service name of the tool or product that + * generates the error. Example: "pubsub.googleapis.com". If the error is + * generated by some common infrastructure, the error domain must be a + * globally unique value that identifies the infrastructure. For Google API + * infrastructure, the error domain is "googleapis.com". + * + * Generated from protobuf field string domain = 2; + */ + protected $domain = ''; + /** + * Additional structured details about this error. + * Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should + * ideally be lowerCamelCase. Also, they must be limited to 64 characters in + * length. When identifying the current value of an exceeded limit, the units + * should be contained in the key, not the value. For example, rather than + * `{"instanceLimit": "100/request"}`, should be returned as, + * `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of + * instances that can be created in a single (batch) request. + * + * Generated from protobuf field map metadata = 3; + */ + private $metadata; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $reason + * The reason of the error. This is a constant value that identifies the + * proximate cause of the error. Error reasons are unique within a particular + * domain of errors. This should be at most 63 characters and match a + * regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents + * UPPER_SNAKE_CASE. + * @type string $domain + * The logical grouping to which the "reason" belongs. The error domain + * is typically the registered service name of the tool or product that + * generates the error. Example: "pubsub.googleapis.com". If the error is + * generated by some common infrastructure, the error domain must be a + * globally unique value that identifies the infrastructure. For Google API + * infrastructure, the error domain is "googleapis.com". + * @type array|\Google\Protobuf\Internal\MapField $metadata + * Additional structured details about this error. + * Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should + * ideally be lowerCamelCase. Also, they must be limited to 64 characters in + * length. When identifying the current value of an exceeded limit, the units + * should be contained in the key, not the value. For example, rather than + * `{"instanceLimit": "100/request"}`, should be returned as, + * `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of + * instances that can be created in a single (batch) request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * The reason of the error. This is a constant value that identifies the + * proximate cause of the error. Error reasons are unique within a particular + * domain of errors. This should be at most 63 characters and match a + * regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents + * UPPER_SNAKE_CASE. + * + * Generated from protobuf field string reason = 1; + * @return string + */ + public function getReason() + { + return $this->reason; + } + + /** + * The reason of the error. This is a constant value that identifies the + * proximate cause of the error. Error reasons are unique within a particular + * domain of errors. This should be at most 63 characters and match a + * regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents + * UPPER_SNAKE_CASE. + * + * Generated from protobuf field string reason = 1; + * @param string $var + * @return $this + */ + public function setReason($var) + { + GPBUtil::checkString($var, True); + $this->reason = $var; + + return $this; + } + + /** + * The logical grouping to which the "reason" belongs. The error domain + * is typically the registered service name of the tool or product that + * generates the error. Example: "pubsub.googleapis.com". If the error is + * generated by some common infrastructure, the error domain must be a + * globally unique value that identifies the infrastructure. For Google API + * infrastructure, the error domain is "googleapis.com". + * + * Generated from protobuf field string domain = 2; + * @return string + */ + public function getDomain() + { + return $this->domain; + } + + /** + * The logical grouping to which the "reason" belongs. The error domain + * is typically the registered service name of the tool or product that + * generates the error. Example: "pubsub.googleapis.com". If the error is + * generated by some common infrastructure, the error domain must be a + * globally unique value that identifies the infrastructure. For Google API + * infrastructure, the error domain is "googleapis.com". + * + * Generated from protobuf field string domain = 2; + * @param string $var + * @return $this + */ + public function setDomain($var) + { + GPBUtil::checkString($var, True); + $this->domain = $var; + + return $this; + } + + /** + * Additional structured details about this error. + * Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should + * ideally be lowerCamelCase. Also, they must be limited to 64 characters in + * length. When identifying the current value of an exceeded limit, the units + * should be contained in the key, not the value. For example, rather than + * `{"instanceLimit": "100/request"}`, should be returned as, + * `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of + * instances that can be created in a single (batch) request. + * + * Generated from protobuf field map metadata = 3; + * @return \Google\Protobuf\Internal\MapField + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * Additional structured details about this error. + * Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should + * ideally be lowerCamelCase. Also, they must be limited to 64 characters in + * length. When identifying the current value of an exceeded limit, the units + * should be contained in the key, not the value. For example, rather than + * `{"instanceLimit": "100/request"}`, should be returned as, + * `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of + * instances that can be created in a single (batch) request. + * + * Generated from protobuf field map metadata = 3; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setMetadata($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->metadata = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/Help.php b/vendor/google/common-protos/src/Rpc/Help.php new file mode 100644 index 0000000..e01c5b2 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Help.php @@ -0,0 +1,70 @@ +google.rpc.Help + */ +class Help extends \Google\Protobuf\Internal\Message +{ + /** + * URL(s) pointing to additional information on handling the current error. + * + * Generated from protobuf field repeated .google.rpc.Help.Link links = 1; + */ + private $links; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Rpc\Help\Link>|\Google\Protobuf\Internal\RepeatedField $links + * URL(s) pointing to additional information on handling the current error. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * URL(s) pointing to additional information on handling the current error. + * + * Generated from protobuf field repeated .google.rpc.Help.Link links = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getLinks() + { + return $this->links; + } + + /** + * URL(s) pointing to additional information on handling the current error. + * + * Generated from protobuf field repeated .google.rpc.Help.Link links = 1; + * @param array<\Google\Rpc\Help\Link>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setLinks($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\Help\Link::class); + $this->links = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/Help/Link.php b/vendor/google/common-protos/src/Rpc/Help/Link.php new file mode 100644 index 0000000..1786b3f --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Help/Link.php @@ -0,0 +1,102 @@ +google.rpc.Help.Link + */ +class Link extends \Google\Protobuf\Internal\Message +{ + /** + * Describes what the link offers. + * + * Generated from protobuf field string description = 1; + */ + protected $description = ''; + /** + * The URL of the link. + * + * Generated from protobuf field string url = 2; + */ + protected $url = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $description + * Describes what the link offers. + * @type string $url + * The URL of the link. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * Describes what the link offers. + * + * Generated from protobuf field string description = 1; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Describes what the link offers. + * + * Generated from protobuf field string description = 1; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * The URL of the link. + * + * Generated from protobuf field string url = 2; + * @return string + */ + public function getUrl() + { + return $this->url; + } + + /** + * The URL of the link. + * + * Generated from protobuf field string url = 2; + * @param string $var + * @return $this + */ + public function setUrl($var) + { + GPBUtil::checkString($var, True); + $this->url = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/LocalizedMessage.php b/vendor/google/common-protos/src/Rpc/LocalizedMessage.php new file mode 100644 index 0000000..e4fa20a --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/LocalizedMessage.php @@ -0,0 +1,110 @@ +google.rpc.LocalizedMessage + */ +class LocalizedMessage extends \Google\Protobuf\Internal\Message +{ + /** + * The locale used following the specification defined at + * https://www.rfc-editor.org/rfc/bcp/bcp47.txt. + * Examples are: "en-US", "fr-CH", "es-MX" + * + * Generated from protobuf field string locale = 1; + */ + protected $locale = ''; + /** + * The localized error message in the above locale. + * + * Generated from protobuf field string message = 2; + */ + protected $message = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $locale + * The locale used following the specification defined at + * https://www.rfc-editor.org/rfc/bcp/bcp47.txt. + * Examples are: "en-US", "fr-CH", "es-MX" + * @type string $message + * The localized error message in the above locale. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * The locale used following the specification defined at + * https://www.rfc-editor.org/rfc/bcp/bcp47.txt. + * Examples are: "en-US", "fr-CH", "es-MX" + * + * Generated from protobuf field string locale = 1; + * @return string + */ + public function getLocale() + { + return $this->locale; + } + + /** + * The locale used following the specification defined at + * https://www.rfc-editor.org/rfc/bcp/bcp47.txt. + * Examples are: "en-US", "fr-CH", "es-MX" + * + * Generated from protobuf field string locale = 1; + * @param string $var + * @return $this + */ + public function setLocale($var) + { + GPBUtil::checkString($var, True); + $this->locale = $var; + + return $this; + } + + /** + * The localized error message in the above locale. + * + * Generated from protobuf field string message = 2; + * @return string + */ + public function getMessage() + { + return $this->message; + } + + /** + * The localized error message in the above locale. + * + * Generated from protobuf field string message = 2; + * @param string $var + * @return $this + */ + public function setMessage($var) + { + GPBUtil::checkString($var, True); + $this->message = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/PreconditionFailure.php b/vendor/google/common-protos/src/Rpc/PreconditionFailure.php new file mode 100644 index 0000000..cc82e73 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/PreconditionFailure.php @@ -0,0 +1,70 @@ +google.rpc.PreconditionFailure + */ +class PreconditionFailure extends \Google\Protobuf\Internal\Message +{ + /** + * Describes all precondition violations. + * + * Generated from protobuf field repeated .google.rpc.PreconditionFailure.Violation violations = 1; + */ + private $violations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Rpc\PreconditionFailure\Violation>|\Google\Protobuf\Internal\RepeatedField $violations + * Describes all precondition violations. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * Describes all precondition violations. + * + * Generated from protobuf field repeated .google.rpc.PreconditionFailure.Violation violations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getViolations() + { + return $this->violations; + } + + /** + * Describes all precondition violations. + * + * Generated from protobuf field repeated .google.rpc.PreconditionFailure.Violation violations = 1; + * @param array<\Google\Rpc\PreconditionFailure\Violation>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setViolations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\PreconditionFailure\Violation::class); + $this->violations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/PreconditionFailure/Violation.php b/vendor/google/common-protos/src/Rpc/PreconditionFailure/Violation.php new file mode 100644 index 0000000..df35be2 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/PreconditionFailure/Violation.php @@ -0,0 +1,160 @@ +google.rpc.PreconditionFailure.Violation + */ +class Violation extends \Google\Protobuf\Internal\Message +{ + /** + * The type of PreconditionFailure. We recommend using a service-specific + * enum type to define the supported precondition violation subjects. For + * example, "TOS" for "Terms of Service violation". + * + * Generated from protobuf field string type = 1; + */ + protected $type = ''; + /** + * The subject, relative to the type, that failed. + * For example, "google.com/cloud" relative to the "TOS" type would indicate + * which terms of service is being referenced. + * + * Generated from protobuf field string subject = 2; + */ + protected $subject = ''; + /** + * A description of how the precondition failed. Developers can use this + * description to understand how to fix the failure. + * For example: "Terms of service not accepted". + * + * Generated from protobuf field string description = 3; + */ + protected $description = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $type + * The type of PreconditionFailure. We recommend using a service-specific + * enum type to define the supported precondition violation subjects. For + * example, "TOS" for "Terms of Service violation". + * @type string $subject + * The subject, relative to the type, that failed. + * For example, "google.com/cloud" relative to the "TOS" type would indicate + * which terms of service is being referenced. + * @type string $description + * A description of how the precondition failed. Developers can use this + * description to understand how to fix the failure. + * For example: "Terms of service not accepted". + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * The type of PreconditionFailure. We recommend using a service-specific + * enum type to define the supported precondition violation subjects. For + * example, "TOS" for "Terms of Service violation". + * + * Generated from protobuf field string type = 1; + * @return string + */ + public function getType() + { + return $this->type; + } + + /** + * The type of PreconditionFailure. We recommend using a service-specific + * enum type to define the supported precondition violation subjects. For + * example, "TOS" for "Terms of Service violation". + * + * Generated from protobuf field string type = 1; + * @param string $var + * @return $this + */ + public function setType($var) + { + GPBUtil::checkString($var, True); + $this->type = $var; + + return $this; + } + + /** + * The subject, relative to the type, that failed. + * For example, "google.com/cloud" relative to the "TOS" type would indicate + * which terms of service is being referenced. + * + * Generated from protobuf field string subject = 2; + * @return string + */ + public function getSubject() + { + return $this->subject; + } + + /** + * The subject, relative to the type, that failed. + * For example, "google.com/cloud" relative to the "TOS" type would indicate + * which terms of service is being referenced. + * + * Generated from protobuf field string subject = 2; + * @param string $var + * @return $this + */ + public function setSubject($var) + { + GPBUtil::checkString($var, True); + $this->subject = $var; + + return $this; + } + + /** + * A description of how the precondition failed. Developers can use this + * description to understand how to fix the failure. + * For example: "Terms of service not accepted". + * + * Generated from protobuf field string description = 3; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * A description of how the precondition failed. Developers can use this + * description to understand how to fix the failure. + * For example: "Terms of service not accepted". + * + * Generated from protobuf field string description = 3; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/QuotaFailure.php b/vendor/google/common-protos/src/Rpc/QuotaFailure.php new file mode 100644 index 0000000..7bb6561 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/QuotaFailure.php @@ -0,0 +1,75 @@ +google.rpc.QuotaFailure + */ +class QuotaFailure extends \Google\Protobuf\Internal\Message +{ + /** + * Describes all quota violations. + * + * Generated from protobuf field repeated .google.rpc.QuotaFailure.Violation violations = 1; + */ + private $violations; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type array<\Google\Rpc\QuotaFailure\Violation>|\Google\Protobuf\Internal\RepeatedField $violations + * Describes all quota violations. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * Describes all quota violations. + * + * Generated from protobuf field repeated .google.rpc.QuotaFailure.Violation violations = 1; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getViolations() + { + return $this->violations; + } + + /** + * Describes all quota violations. + * + * Generated from protobuf field repeated .google.rpc.QuotaFailure.Violation violations = 1; + * @param array<\Google\Rpc\QuotaFailure\Violation>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setViolations($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Rpc\QuotaFailure\Violation::class); + $this->violations = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/QuotaFailure/Violation.php b/vendor/google/common-protos/src/Rpc/QuotaFailure/Violation.php new file mode 100644 index 0000000..5760348 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/QuotaFailure/Violation.php @@ -0,0 +1,501 @@ +google.rpc.QuotaFailure.Violation + */ +class Violation extends \Google\Protobuf\Internal\Message +{ + /** + * The subject on which the quota check failed. + * For example, "clientip:" or "project:". + * + * Generated from protobuf field string subject = 1; + */ + protected $subject = ''; + /** + * A description of how the quota check failed. Clients can use this + * description to find more about the quota configuration in the service's + * public documentation, or find the relevant quota limit to adjust through + * developer console. + * For example: "Service disabled" or "Daily Limit for read operations + * exceeded". + * + * Generated from protobuf field string description = 2; + */ + protected $description = ''; + /** + * The API Service from which the `QuotaFailure.Violation` orginates. In + * some cases, Quota issues originate from an API Service other than the one + * that was called. In other words, a dependency of the called API Service + * could be the cause of the `QuotaFailure`, and this field would have the + * dependency API service name. + * For example, if the called API is Kubernetes Engine API + * (container.googleapis.com), and a quota violation occurs in the + * Kubernetes Engine API itself, this field would be + * "container.googleapis.com". On the other hand, if the quota violation + * occurs when the Kubernetes Engine API creates VMs in the Compute Engine + * API (compute.googleapis.com), this field would be + * "compute.googleapis.com". + * + * Generated from protobuf field string api_service = 3; + */ + protected $api_service = ''; + /** + * The metric of the violated quota. A quota metric is a named counter to + * measure usage, such as API requests or CPUs. When an activity occurs in a + * service, such as Virtual Machine allocation, one or more quota metrics + * may be affected. + * For example, "compute.googleapis.com/cpus_per_vm_family", + * "storage.googleapis.com/internet_egress_bandwidth". + * + * Generated from protobuf field string quota_metric = 4; + */ + protected $quota_metric = ''; + /** + * The id of the violated quota. Also know as "limit name", this is the + * unique identifier of a quota in the context of an API service. + * For example, "CPUS-PER-VM-FAMILY-per-project-region". + * + * Generated from protobuf field string quota_id = 5; + */ + protected $quota_id = ''; + /** + * The dimensions of the violated quota. Every non-global quota is enforced + * on a set of dimensions. While quota metric defines what to count, the + * dimensions specify for what aspects the counter should be increased. + * For example, the quota "CPUs per region per VM family" enforces a limit + * on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions + * "region" and "vm_family". And if the violation occurred in region + * "us-central1" and for VM family "n1", the quota_dimensions would be, + * { + * "region": "us-central1", + * "vm_family": "n1", + * } + * When a quota is enforced globally, the quota_dimensions would always be + * empty. + * + * Generated from protobuf field map quota_dimensions = 6; + */ + private $quota_dimensions; + /** + * The enforced quota value at the time of the `QuotaFailure`. + * For example, if the enforced quota value at the time of the + * `QuotaFailure` on the number of CPUs is "10", then the value of this + * field would reflect this quantity. + * + * Generated from protobuf field int64 quota_value = 7; + */ + protected $quota_value = 0; + /** + * The new quota value being rolled out at the time of the violation. At the + * completion of the rollout, this value will be enforced in place of + * quota_value. If no rollout is in progress at the time of the violation, + * this field is not set. + * For example, if at the time of the violation a rollout is in progress + * changing the number of CPUs quota from 10 to 20, 20 would be the value of + * this field. + * + * Generated from protobuf field optional int64 future_quota_value = 8; + */ + protected $future_quota_value = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $subject + * The subject on which the quota check failed. + * For example, "clientip:" or "project:". + * @type string $description + * A description of how the quota check failed. Clients can use this + * description to find more about the quota configuration in the service's + * public documentation, or find the relevant quota limit to adjust through + * developer console. + * For example: "Service disabled" or "Daily Limit for read operations + * exceeded". + * @type string $api_service + * The API Service from which the `QuotaFailure.Violation` orginates. In + * some cases, Quota issues originate from an API Service other than the one + * that was called. In other words, a dependency of the called API Service + * could be the cause of the `QuotaFailure`, and this field would have the + * dependency API service name. + * For example, if the called API is Kubernetes Engine API + * (container.googleapis.com), and a quota violation occurs in the + * Kubernetes Engine API itself, this field would be + * "container.googleapis.com". On the other hand, if the quota violation + * occurs when the Kubernetes Engine API creates VMs in the Compute Engine + * API (compute.googleapis.com), this field would be + * "compute.googleapis.com". + * @type string $quota_metric + * The metric of the violated quota. A quota metric is a named counter to + * measure usage, such as API requests or CPUs. When an activity occurs in a + * service, such as Virtual Machine allocation, one or more quota metrics + * may be affected. + * For example, "compute.googleapis.com/cpus_per_vm_family", + * "storage.googleapis.com/internet_egress_bandwidth". + * @type string $quota_id + * The id of the violated quota. Also know as "limit name", this is the + * unique identifier of a quota in the context of an API service. + * For example, "CPUS-PER-VM-FAMILY-per-project-region". + * @type array|\Google\Protobuf\Internal\MapField $quota_dimensions + * The dimensions of the violated quota. Every non-global quota is enforced + * on a set of dimensions. While quota metric defines what to count, the + * dimensions specify for what aspects the counter should be increased. + * For example, the quota "CPUs per region per VM family" enforces a limit + * on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions + * "region" and "vm_family". And if the violation occurred in region + * "us-central1" and for VM family "n1", the quota_dimensions would be, + * { + * "region": "us-central1", + * "vm_family": "n1", + * } + * When a quota is enforced globally, the quota_dimensions would always be + * empty. + * @type int|string $quota_value + * The enforced quota value at the time of the `QuotaFailure`. + * For example, if the enforced quota value at the time of the + * `QuotaFailure` on the number of CPUs is "10", then the value of this + * field would reflect this quantity. + * @type int|string $future_quota_value + * The new quota value being rolled out at the time of the violation. At the + * completion of the rollout, this value will be enforced in place of + * quota_value. If no rollout is in progress at the time of the violation, + * this field is not set. + * For example, if at the time of the violation a rollout is in progress + * changing the number of CPUs quota from 10 to 20, 20 would be the value of + * this field. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * The subject on which the quota check failed. + * For example, "clientip:" or "project:". + * + * Generated from protobuf field string subject = 1; + * @return string + */ + public function getSubject() + { + return $this->subject; + } + + /** + * The subject on which the quota check failed. + * For example, "clientip:" or "project:". + * + * Generated from protobuf field string subject = 1; + * @param string $var + * @return $this + */ + public function setSubject($var) + { + GPBUtil::checkString($var, True); + $this->subject = $var; + + return $this; + } + + /** + * A description of how the quota check failed. Clients can use this + * description to find more about the quota configuration in the service's + * public documentation, or find the relevant quota limit to adjust through + * developer console. + * For example: "Service disabled" or "Daily Limit for read operations + * exceeded". + * + * Generated from protobuf field string description = 2; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * A description of how the quota check failed. Clients can use this + * description to find more about the quota configuration in the service's + * public documentation, or find the relevant quota limit to adjust through + * developer console. + * For example: "Service disabled" or "Daily Limit for read operations + * exceeded". + * + * Generated from protobuf field string description = 2; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * The API Service from which the `QuotaFailure.Violation` orginates. In + * some cases, Quota issues originate from an API Service other than the one + * that was called. In other words, a dependency of the called API Service + * could be the cause of the `QuotaFailure`, and this field would have the + * dependency API service name. + * For example, if the called API is Kubernetes Engine API + * (container.googleapis.com), and a quota violation occurs in the + * Kubernetes Engine API itself, this field would be + * "container.googleapis.com". On the other hand, if the quota violation + * occurs when the Kubernetes Engine API creates VMs in the Compute Engine + * API (compute.googleapis.com), this field would be + * "compute.googleapis.com". + * + * Generated from protobuf field string api_service = 3; + * @return string + */ + public function getApiService() + { + return $this->api_service; + } + + /** + * The API Service from which the `QuotaFailure.Violation` orginates. In + * some cases, Quota issues originate from an API Service other than the one + * that was called. In other words, a dependency of the called API Service + * could be the cause of the `QuotaFailure`, and this field would have the + * dependency API service name. + * For example, if the called API is Kubernetes Engine API + * (container.googleapis.com), and a quota violation occurs in the + * Kubernetes Engine API itself, this field would be + * "container.googleapis.com". On the other hand, if the quota violation + * occurs when the Kubernetes Engine API creates VMs in the Compute Engine + * API (compute.googleapis.com), this field would be + * "compute.googleapis.com". + * + * Generated from protobuf field string api_service = 3; + * @param string $var + * @return $this + */ + public function setApiService($var) + { + GPBUtil::checkString($var, True); + $this->api_service = $var; + + return $this; + } + + /** + * The metric of the violated quota. A quota metric is a named counter to + * measure usage, such as API requests or CPUs. When an activity occurs in a + * service, such as Virtual Machine allocation, one or more quota metrics + * may be affected. + * For example, "compute.googleapis.com/cpus_per_vm_family", + * "storage.googleapis.com/internet_egress_bandwidth". + * + * Generated from protobuf field string quota_metric = 4; + * @return string + */ + public function getQuotaMetric() + { + return $this->quota_metric; + } + + /** + * The metric of the violated quota. A quota metric is a named counter to + * measure usage, such as API requests or CPUs. When an activity occurs in a + * service, such as Virtual Machine allocation, one or more quota metrics + * may be affected. + * For example, "compute.googleapis.com/cpus_per_vm_family", + * "storage.googleapis.com/internet_egress_bandwidth". + * + * Generated from protobuf field string quota_metric = 4; + * @param string $var + * @return $this + */ + public function setQuotaMetric($var) + { + GPBUtil::checkString($var, True); + $this->quota_metric = $var; + + return $this; + } + + /** + * The id of the violated quota. Also know as "limit name", this is the + * unique identifier of a quota in the context of an API service. + * For example, "CPUS-PER-VM-FAMILY-per-project-region". + * + * Generated from protobuf field string quota_id = 5; + * @return string + */ + public function getQuotaId() + { + return $this->quota_id; + } + + /** + * The id of the violated quota. Also know as "limit name", this is the + * unique identifier of a quota in the context of an API service. + * For example, "CPUS-PER-VM-FAMILY-per-project-region". + * + * Generated from protobuf field string quota_id = 5; + * @param string $var + * @return $this + */ + public function setQuotaId($var) + { + GPBUtil::checkString($var, True); + $this->quota_id = $var; + + return $this; + } + + /** + * The dimensions of the violated quota. Every non-global quota is enforced + * on a set of dimensions. While quota metric defines what to count, the + * dimensions specify for what aspects the counter should be increased. + * For example, the quota "CPUs per region per VM family" enforces a limit + * on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions + * "region" and "vm_family". And if the violation occurred in region + * "us-central1" and for VM family "n1", the quota_dimensions would be, + * { + * "region": "us-central1", + * "vm_family": "n1", + * } + * When a quota is enforced globally, the quota_dimensions would always be + * empty. + * + * Generated from protobuf field map quota_dimensions = 6; + * @return \Google\Protobuf\Internal\MapField + */ + public function getQuotaDimensions() + { + return $this->quota_dimensions; + } + + /** + * The dimensions of the violated quota. Every non-global quota is enforced + * on a set of dimensions. While quota metric defines what to count, the + * dimensions specify for what aspects the counter should be increased. + * For example, the quota "CPUs per region per VM family" enforces a limit + * on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions + * "region" and "vm_family". And if the violation occurred in region + * "us-central1" and for VM family "n1", the quota_dimensions would be, + * { + * "region": "us-central1", + * "vm_family": "n1", + * } + * When a quota is enforced globally, the quota_dimensions would always be + * empty. + * + * Generated from protobuf field map quota_dimensions = 6; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setQuotaDimensions($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->quota_dimensions = $arr; + + return $this; + } + + /** + * The enforced quota value at the time of the `QuotaFailure`. + * For example, if the enforced quota value at the time of the + * `QuotaFailure` on the number of CPUs is "10", then the value of this + * field would reflect this quantity. + * + * Generated from protobuf field int64 quota_value = 7; + * @return int|string + */ + public function getQuotaValue() + { + return $this->quota_value; + } + + /** + * The enforced quota value at the time of the `QuotaFailure`. + * For example, if the enforced quota value at the time of the + * `QuotaFailure` on the number of CPUs is "10", then the value of this + * field would reflect this quantity. + * + * Generated from protobuf field int64 quota_value = 7; + * @param int|string $var + * @return $this + */ + public function setQuotaValue($var) + { + GPBUtil::checkInt64($var); + $this->quota_value = $var; + + return $this; + } + + /** + * The new quota value being rolled out at the time of the violation. At the + * completion of the rollout, this value will be enforced in place of + * quota_value. If no rollout is in progress at the time of the violation, + * this field is not set. + * For example, if at the time of the violation a rollout is in progress + * changing the number of CPUs quota from 10 to 20, 20 would be the value of + * this field. + * + * Generated from protobuf field optional int64 future_quota_value = 8; + * @return int|string + */ + public function getFutureQuotaValue() + { + return isset($this->future_quota_value) ? $this->future_quota_value : 0; + } + + public function hasFutureQuotaValue() + { + return isset($this->future_quota_value); + } + + public function clearFutureQuotaValue() + { + unset($this->future_quota_value); + } + + /** + * The new quota value being rolled out at the time of the violation. At the + * completion of the rollout, this value will be enforced in place of + * quota_value. If no rollout is in progress at the time of the violation, + * this field is not set. + * For example, if at the time of the violation a rollout is in progress + * changing the number of CPUs quota from 10 to 20, 20 would be the value of + * this field. + * + * Generated from protobuf field optional int64 future_quota_value = 8; + * @param int|string $var + * @return $this + */ + public function setFutureQuotaValue($var) + { + GPBUtil::checkInt64($var); + $this->future_quota_value = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Rpc/RequestInfo.php b/vendor/google/common-protos/src/Rpc/RequestInfo.php new file mode 100644 index 0000000..effe01d --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/RequestInfo.php @@ -0,0 +1,110 @@ +google.rpc.RequestInfo + */ +class RequestInfo extends \Google\Protobuf\Internal\Message +{ + /** + * An opaque string that should only be interpreted by the service generating + * it. For example, it can be used to identify requests in the service's logs. + * + * Generated from protobuf field string request_id = 1; + */ + protected $request_id = ''; + /** + * Any data that was used to serve this request. For example, an encrypted + * stack trace that can be sent back to the service provider for debugging. + * + * Generated from protobuf field string serving_data = 2; + */ + protected $serving_data = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $request_id + * An opaque string that should only be interpreted by the service generating + * it. For example, it can be used to identify requests in the service's logs. + * @type string $serving_data + * Any data that was used to serve this request. For example, an encrypted + * stack trace that can be sent back to the service provider for debugging. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * An opaque string that should only be interpreted by the service generating + * it. For example, it can be used to identify requests in the service's logs. + * + * Generated from protobuf field string request_id = 1; + * @return string + */ + public function getRequestId() + { + return $this->request_id; + } + + /** + * An opaque string that should only be interpreted by the service generating + * it. For example, it can be used to identify requests in the service's logs. + * + * Generated from protobuf field string request_id = 1; + * @param string $var + * @return $this + */ + public function setRequestId($var) + { + GPBUtil::checkString($var, True); + $this->request_id = $var; + + return $this; + } + + /** + * Any data that was used to serve this request. For example, an encrypted + * stack trace that can be sent back to the service provider for debugging. + * + * Generated from protobuf field string serving_data = 2; + * @return string + */ + public function getServingData() + { + return $this->serving_data; + } + + /** + * Any data that was used to serve this request. For example, an encrypted + * stack trace that can be sent back to the service provider for debugging. + * + * Generated from protobuf field string serving_data = 2; + * @param string $var + * @return $this + */ + public function setServingData($var) + { + GPBUtil::checkString($var, True); + $this->serving_data = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/ResourceInfo.php b/vendor/google/common-protos/src/Rpc/ResourceInfo.php new file mode 100644 index 0000000..3a7859c --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/ResourceInfo.php @@ -0,0 +1,205 @@ +google.rpc.ResourceInfo + */ +class ResourceInfo extends \Google\Protobuf\Internal\Message +{ + /** + * A name for the type of resource being accessed, e.g. "sql table", + * "cloud storage bucket", "file", "Google calendar"; or the type URL + * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". + * + * Generated from protobuf field string resource_type = 1; + */ + protected $resource_type = ''; + /** + * The name of the resource being accessed. For example, a shared calendar + * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current + * error is + * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. + * + * Generated from protobuf field string resource_name = 2; + */ + protected $resource_name = ''; + /** + * The owner of the resource (optional). + * For example, "user:" or "project:". + * + * Generated from protobuf field string owner = 3; + */ + protected $owner = ''; + /** + * Describes what error is encountered when accessing this resource. + * For example, updating a cloud project may require the `writer` permission + * on the developer console project. + * + * Generated from protobuf field string description = 4; + */ + protected $description = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $resource_type + * A name for the type of resource being accessed, e.g. "sql table", + * "cloud storage bucket", "file", "Google calendar"; or the type URL + * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". + * @type string $resource_name + * The name of the resource being accessed. For example, a shared calendar + * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current + * error is + * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. + * @type string $owner + * The owner of the resource (optional). + * For example, "user:" or "project:". + * @type string $description + * Describes what error is encountered when accessing this resource. + * For example, updating a cloud project may require the `writer` permission + * on the developer console project. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * A name for the type of resource being accessed, e.g. "sql table", + * "cloud storage bucket", "file", "Google calendar"; or the type URL + * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". + * + * Generated from protobuf field string resource_type = 1; + * @return string + */ + public function getResourceType() + { + return $this->resource_type; + } + + /** + * A name for the type of resource being accessed, e.g. "sql table", + * "cloud storage bucket", "file", "Google calendar"; or the type URL + * of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic". + * + * Generated from protobuf field string resource_type = 1; + * @param string $var + * @return $this + */ + public function setResourceType($var) + { + GPBUtil::checkString($var, True); + $this->resource_type = $var; + + return $this; + } + + /** + * The name of the resource being accessed. For example, a shared calendar + * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current + * error is + * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. + * + * Generated from protobuf field string resource_name = 2; + * @return string + */ + public function getResourceName() + { + return $this->resource_name; + } + + /** + * The name of the resource being accessed. For example, a shared calendar + * name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current + * error is + * [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED]. + * + * Generated from protobuf field string resource_name = 2; + * @param string $var + * @return $this + */ + public function setResourceName($var) + { + GPBUtil::checkString($var, True); + $this->resource_name = $var; + + return $this; + } + + /** + * The owner of the resource (optional). + * For example, "user:" or "project:". + * + * Generated from protobuf field string owner = 3; + * @return string + */ + public function getOwner() + { + return $this->owner; + } + + /** + * The owner of the resource (optional). + * For example, "user:" or "project:". + * + * Generated from protobuf field string owner = 3; + * @param string $var + * @return $this + */ + public function setOwner($var) + { + GPBUtil::checkString($var, True); + $this->owner = $var; + + return $this; + } + + /** + * Describes what error is encountered when accessing this resource. + * For example, updating a cloud project may require the `writer` permission + * on the developer console project. + * + * Generated from protobuf field string description = 4; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Describes what error is encountered when accessing this resource. + * For example, updating a cloud project may require the `writer` permission + * on the developer console project. + * + * Generated from protobuf field string description = 4; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/RetryInfo.php b/vendor/google/common-protos/src/Rpc/RetryInfo.php new file mode 100644 index 0000000..3d391ba --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/RetryInfo.php @@ -0,0 +1,87 @@ +google.rpc.RetryInfo + */ +class RetryInfo extends \Google\Protobuf\Internal\Message +{ + /** + * Clients should wait at least this long between retrying the same request. + * + * Generated from protobuf field .google.protobuf.Duration retry_delay = 1; + */ + protected $retry_delay = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Protobuf\Duration $retry_delay + * Clients should wait at least this long between retrying the same request. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\ErrorDetails::initOnce(); + parent::__construct($data); + } + + /** + * Clients should wait at least this long between retrying the same request. + * + * Generated from protobuf field .google.protobuf.Duration retry_delay = 1; + * @return \Google\Protobuf\Duration|null + */ + public function getRetryDelay() + { + return $this->retry_delay; + } + + public function hasRetryDelay() + { + return isset($this->retry_delay); + } + + public function clearRetryDelay() + { + unset($this->retry_delay); + } + + /** + * Clients should wait at least this long between retrying the same request. + * + * Generated from protobuf field .google.protobuf.Duration retry_delay = 1; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setRetryDelay($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->retry_delay = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Rpc/Status.php b/vendor/google/common-protos/src/Rpc/Status.php new file mode 100644 index 0000000..55b3038 --- /dev/null +++ b/vendor/google/common-protos/src/Rpc/Status.php @@ -0,0 +1,160 @@ +google.rpc.Status + */ +class Status extends \Google\Protobuf\Internal\Message +{ + /** + * The status code, which should be an enum value of + * [google.rpc.Code][google.rpc.Code]. + * + * Generated from protobuf field int32 code = 1; + */ + protected $code = 0; + /** + * A developer-facing error message, which should be in English. Any + * user-facing error message should be localized and sent in the + * [google.rpc.Status.details][google.rpc.Status.details] field, or localized + * by the client. + * + * Generated from protobuf field string message = 2; + */ + protected $message = ''; + /** + * A list of messages that carry the error details. There is a common set of + * message types for APIs to use. + * + * Generated from protobuf field repeated .google.protobuf.Any details = 3; + */ + private $details; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $code + * The status code, which should be an enum value of + * [google.rpc.Code][google.rpc.Code]. + * @type string $message + * A developer-facing error message, which should be in English. Any + * user-facing error message should be localized and sent in the + * [google.rpc.Status.details][google.rpc.Status.details] field, or localized + * by the client. + * @type array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $details + * A list of messages that carry the error details. There is a common set of + * message types for APIs to use. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Rpc\Status::initOnce(); + parent::__construct($data); + } + + /** + * The status code, which should be an enum value of + * [google.rpc.Code][google.rpc.Code]. + * + * Generated from protobuf field int32 code = 1; + * @return int + */ + public function getCode() + { + return $this->code; + } + + /** + * The status code, which should be an enum value of + * [google.rpc.Code][google.rpc.Code]. + * + * Generated from protobuf field int32 code = 1; + * @param int $var + * @return $this + */ + public function setCode($var) + { + GPBUtil::checkInt32($var); + $this->code = $var; + + return $this; + } + + /** + * A developer-facing error message, which should be in English. Any + * user-facing error message should be localized and sent in the + * [google.rpc.Status.details][google.rpc.Status.details] field, or localized + * by the client. + * + * Generated from protobuf field string message = 2; + * @return string + */ + public function getMessage() + { + return $this->message; + } + + /** + * A developer-facing error message, which should be in English. Any + * user-facing error message should be localized and sent in the + * [google.rpc.Status.details][google.rpc.Status.details] field, or localized + * by the client. + * + * Generated from protobuf field string message = 2; + * @param string $var + * @return $this + */ + public function setMessage($var) + { + GPBUtil::checkString($var, True); + $this->message = $var; + + return $this; + } + + /** + * A list of messages that carry the error details. There is a common set of + * message types for APIs to use. + * + * Generated from protobuf field repeated .google.protobuf.Any details = 3; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getDetails() + { + return $this->details; + } + + /** + * A list of messages that carry the error details. There is a common set of + * message types for APIs to use. + * + * Generated from protobuf field repeated .google.protobuf.Any details = 3; + * @param array<\Google\Protobuf\Any>|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setDetails($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Google\Protobuf\Any::class); + $this->details = $arr; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/CalendarPeriod.php b/vendor/google/common-protos/src/Type/CalendarPeriod.php new file mode 100644 index 0000000..e4807c0 --- /dev/null +++ b/vendor/google/common-protos/src/Type/CalendarPeriod.php @@ -0,0 +1,102 @@ +google.type.CalendarPeriod + */ +class CalendarPeriod +{ + /** + * Undefined period, raises an error. + * + * Generated from protobuf enum CALENDAR_PERIOD_UNSPECIFIED = 0; + */ + const CALENDAR_PERIOD_UNSPECIFIED = 0; + /** + * A day. + * + * Generated from protobuf enum DAY = 1; + */ + const DAY = 1; + /** + * A week. Weeks begin on Monday, following + * [ISO 8601](https://en.wikipedia.org/wiki/ISO_week_date). + * + * Generated from protobuf enum WEEK = 2; + */ + const WEEK = 2; + /** + * A fortnight. The first calendar fortnight of the year begins at the start + * of week 1 according to + * [ISO 8601](https://en.wikipedia.org/wiki/ISO_week_date). + * + * Generated from protobuf enum FORTNIGHT = 3; + */ + const FORTNIGHT = 3; + /** + * A month. + * + * Generated from protobuf enum MONTH = 4; + */ + const MONTH = 4; + /** + * A quarter. Quarters start on dates 1-Jan, 1-Apr, 1-Jul, and 1-Oct of each + * year. + * + * Generated from protobuf enum QUARTER = 5; + */ + const QUARTER = 5; + /** + * A half-year. Half-years start on dates 1-Jan and 1-Jul. + * + * Generated from protobuf enum HALF = 6; + */ + const HALF = 6; + /** + * A year. + * + * Generated from protobuf enum YEAR = 7; + */ + const YEAR = 7; + + private static $valueToName = [ + self::CALENDAR_PERIOD_UNSPECIFIED => 'CALENDAR_PERIOD_UNSPECIFIED', + self::DAY => 'DAY', + self::WEEK => 'WEEK', + self::FORTNIGHT => 'FORTNIGHT', + self::MONTH => 'MONTH', + self::QUARTER => 'QUARTER', + self::HALF => 'HALF', + self::YEAR => 'YEAR', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Type/Color.php b/vendor/google/common-protos/src/Type/Color.php new file mode 100644 index 0000000..31c1a6e --- /dev/null +++ b/vendor/google/common-protos/src/Type/Color.php @@ -0,0 +1,360 @@ +google.type.Color + */ +class Color extends \Google\Protobuf\Internal\Message +{ + /** + * The amount of red in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float red = 1; + */ + protected $red = 0.0; + /** + * The amount of green in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float green = 2; + */ + protected $green = 0.0; + /** + * The amount of blue in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float blue = 3; + */ + protected $blue = 0.0; + /** + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is rendered as a solid color + * (as if the alpha value had been explicitly given a value of 1.0). + * + * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; + */ + protected $alpha = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $red + * The amount of red in the color as a value in the interval [0, 1]. + * @type float $green + * The amount of green in the color as a value in the interval [0, 1]. + * @type float $blue + * The amount of blue in the color as a value in the interval [0, 1]. + * @type \Google\Protobuf\FloatValue $alpha + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is rendered as a solid color + * (as if the alpha value had been explicitly given a value of 1.0). + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Color::initOnce(); + parent::__construct($data); + } + + /** + * The amount of red in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float red = 1; + * @return float + */ + public function getRed() + { + return $this->red; + } + + /** + * The amount of red in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float red = 1; + * @param float $var + * @return $this + */ + public function setRed($var) + { + GPBUtil::checkFloat($var); + $this->red = $var; + + return $this; + } + + /** + * The amount of green in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float green = 2; + * @return float + */ + public function getGreen() + { + return $this->green; + } + + /** + * The amount of green in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float green = 2; + * @param float $var + * @return $this + */ + public function setGreen($var) + { + GPBUtil::checkFloat($var); + $this->green = $var; + + return $this; + } + + /** + * The amount of blue in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float blue = 3; + * @return float + */ + public function getBlue() + { + return $this->blue; + } + + /** + * The amount of blue in the color as a value in the interval [0, 1]. + * + * Generated from protobuf field float blue = 3; + * @param float $var + * @return $this + */ + public function setBlue($var) + { + GPBUtil::checkFloat($var); + $this->blue = $var; + + return $this; + } + + /** + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is rendered as a solid color + * (as if the alpha value had been explicitly given a value of 1.0). + * + * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; + * @return \Google\Protobuf\FloatValue|null + */ + public function getAlpha() + { + return $this->alpha; + } + + public function hasAlpha() + { + return isset($this->alpha); + } + + public function clearAlpha() + { + unset($this->alpha); + } + + /** + * Returns the unboxed value from getAlpha() + + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is rendered as a solid color + * (as if the alpha value had been explicitly given a value of 1.0). + * + * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; + * @return float|null + */ + public function getAlphaUnwrapped() + { + return $this->readWrapperValue("alpha"); + } + + /** + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is rendered as a solid color + * (as if the alpha value had been explicitly given a value of 1.0). + * + * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; + * @param \Google\Protobuf\FloatValue $var + * @return $this + */ + public function setAlpha($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FloatValue::class); + $this->alpha = $var; + + return $this; + } + + /** + * Sets the field by wrapping a primitive type in a Google\Protobuf\FloatValue object. + + * The fraction of this color that should be applied to the pixel. That is, + * the final pixel color is defined by the equation: + * `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` + * This means that a value of 1.0 corresponds to a solid color, whereas + * a value of 0.0 corresponds to a completely transparent color. This + * uses a wrapper message rather than a simple float scalar so that it is + * possible to distinguish between a default value and the value being unset. + * If omitted, this color object is rendered as a solid color + * (as if the alpha value had been explicitly given a value of 1.0). + * + * Generated from protobuf field .google.protobuf.FloatValue alpha = 4; + * @param float|null $var + * @return $this + */ + public function setAlphaUnwrapped($var) + { + $this->writeWrapperValue("alpha", $var); + return $this;} + +} + diff --git a/vendor/google/common-protos/src/Type/Date.php b/vendor/google/common-protos/src/Type/Date.php new file mode 100644 index 0000000..ba03e77 --- /dev/null +++ b/vendor/google/common-protos/src/Type/Date.php @@ -0,0 +1,161 @@ +google.type.Date + */ +class Date extends \Google\Protobuf\Internal\Message +{ + /** + * Year of the date. Must be from 1 to 9999, or 0 to specify a date without + * a year. + * + * Generated from protobuf field int32 year = 1; + */ + protected $year = 0; + /** + * Month of a year. Must be from 1 to 12, or 0 to specify a year without a + * month and day. + * + * Generated from protobuf field int32 month = 2; + */ + protected $month = 0; + /** + * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 + * to specify a year by itself or a year and month where the day isn't + * significant. + * + * Generated from protobuf field int32 day = 3; + */ + protected $day = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $year + * Year of the date. Must be from 1 to 9999, or 0 to specify a date without + * a year. + * @type int $month + * Month of a year. Must be from 1 to 12, or 0 to specify a year without a + * month and day. + * @type int $day + * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 + * to specify a year by itself or a year and month where the day isn't + * significant. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Date::initOnce(); + parent::__construct($data); + } + + /** + * Year of the date. Must be from 1 to 9999, or 0 to specify a date without + * a year. + * + * Generated from protobuf field int32 year = 1; + * @return int + */ + public function getYear() + { + return $this->year; + } + + /** + * Year of the date. Must be from 1 to 9999, or 0 to specify a date without + * a year. + * + * Generated from protobuf field int32 year = 1; + * @param int $var + * @return $this + */ + public function setYear($var) + { + GPBUtil::checkInt32($var); + $this->year = $var; + + return $this; + } + + /** + * Month of a year. Must be from 1 to 12, or 0 to specify a year without a + * month and day. + * + * Generated from protobuf field int32 month = 2; + * @return int + */ + public function getMonth() + { + return $this->month; + } + + /** + * Month of a year. Must be from 1 to 12, or 0 to specify a year without a + * month and day. + * + * Generated from protobuf field int32 month = 2; + * @param int $var + * @return $this + */ + public function setMonth($var) + { + GPBUtil::checkInt32($var); + $this->month = $var; + + return $this; + } + + /** + * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 + * to specify a year by itself or a year and month where the day isn't + * significant. + * + * Generated from protobuf field int32 day = 3; + * @return int + */ + public function getDay() + { + return $this->day; + } + + /** + * Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 + * to specify a year by itself or a year and month where the day isn't + * significant. + * + * Generated from protobuf field int32 day = 3; + * @param int $var + * @return $this + */ + public function setDay($var) + { + GPBUtil::checkInt32($var); + $this->day = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/DateTime.php b/vendor/google/common-protos/src/Type/DateTime.php new file mode 100644 index 0000000..ed211b6 --- /dev/null +++ b/vendor/google/common-protos/src/Type/DateTime.php @@ -0,0 +1,393 @@ +google.type.DateTime + */ +class DateTime extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a + * datetime without a year. + * + * Generated from protobuf field int32 year = 1; + */ + protected $year = 0; + /** + * Required. Month of year. Must be from 1 to 12. + * + * Generated from protobuf field int32 month = 2; + */ + protected $month = 0; + /** + * Required. Day of month. Must be from 1 to 31 and valid for the year and + * month. + * + * Generated from protobuf field int32 day = 3; + */ + protected $day = 0; + /** + * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API + * may choose to allow the value "24:00:00" for scenarios like business + * closing time. + * + * Generated from protobuf field int32 hours = 4; + */ + protected $hours = 0; + /** + * Required. Minutes of hour of day. Must be from 0 to 59. + * + * Generated from protobuf field int32 minutes = 5; + */ + protected $minutes = 0; + /** + * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An + * API may allow the value 60 if it allows leap-seconds. + * + * Generated from protobuf field int32 seconds = 6; + */ + protected $seconds = 0; + /** + * Required. Fractions of seconds in nanoseconds. Must be from 0 to + * 999,999,999. + * + * Generated from protobuf field int32 nanos = 7; + */ + protected $nanos = 0; + protected $time_offset; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $year + * Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a + * datetime without a year. + * @type int $month + * Required. Month of year. Must be from 1 to 12. + * @type int $day + * Required. Day of month. Must be from 1 to 31 and valid for the year and + * month. + * @type int $hours + * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API + * may choose to allow the value "24:00:00" for scenarios like business + * closing time. + * @type int $minutes + * Required. Minutes of hour of day. Must be from 0 to 59. + * @type int $seconds + * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An + * API may allow the value 60 if it allows leap-seconds. + * @type int $nanos + * Required. Fractions of seconds in nanoseconds. Must be from 0 to + * 999,999,999. + * @type \Google\Protobuf\Duration $utc_offset + * UTC offset. Must be whole seconds, between -18 hours and +18 hours. + * For example, a UTC offset of -4:00 would be represented as + * { seconds: -14400 }. + * @type \Google\Type\TimeZone $time_zone + * Time zone. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Datetime::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a + * datetime without a year. + * + * Generated from protobuf field int32 year = 1; + * @return int + */ + public function getYear() + { + return $this->year; + } + + /** + * Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a + * datetime without a year. + * + * Generated from protobuf field int32 year = 1; + * @param int $var + * @return $this + */ + public function setYear($var) + { + GPBUtil::checkInt32($var); + $this->year = $var; + + return $this; + } + + /** + * Required. Month of year. Must be from 1 to 12. + * + * Generated from protobuf field int32 month = 2; + * @return int + */ + public function getMonth() + { + return $this->month; + } + + /** + * Required. Month of year. Must be from 1 to 12. + * + * Generated from protobuf field int32 month = 2; + * @param int $var + * @return $this + */ + public function setMonth($var) + { + GPBUtil::checkInt32($var); + $this->month = $var; + + return $this; + } + + /** + * Required. Day of month. Must be from 1 to 31 and valid for the year and + * month. + * + * Generated from protobuf field int32 day = 3; + * @return int + */ + public function getDay() + { + return $this->day; + } + + /** + * Required. Day of month. Must be from 1 to 31 and valid for the year and + * month. + * + * Generated from protobuf field int32 day = 3; + * @param int $var + * @return $this + */ + public function setDay($var) + { + GPBUtil::checkInt32($var); + $this->day = $var; + + return $this; + } + + /** + * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API + * may choose to allow the value "24:00:00" for scenarios like business + * closing time. + * + * Generated from protobuf field int32 hours = 4; + * @return int + */ + public function getHours() + { + return $this->hours; + } + + /** + * Required. Hours of day in 24 hour format. Should be from 0 to 23. An API + * may choose to allow the value "24:00:00" for scenarios like business + * closing time. + * + * Generated from protobuf field int32 hours = 4; + * @param int $var + * @return $this + */ + public function setHours($var) + { + GPBUtil::checkInt32($var); + $this->hours = $var; + + return $this; + } + + /** + * Required. Minutes of hour of day. Must be from 0 to 59. + * + * Generated from protobuf field int32 minutes = 5; + * @return int + */ + public function getMinutes() + { + return $this->minutes; + } + + /** + * Required. Minutes of hour of day. Must be from 0 to 59. + * + * Generated from protobuf field int32 minutes = 5; + * @param int $var + * @return $this + */ + public function setMinutes($var) + { + GPBUtil::checkInt32($var); + $this->minutes = $var; + + return $this; + } + + /** + * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An + * API may allow the value 60 if it allows leap-seconds. + * + * Generated from protobuf field int32 seconds = 6; + * @return int + */ + public function getSeconds() + { + return $this->seconds; + } + + /** + * Required. Seconds of minutes of the time. Must normally be from 0 to 59. An + * API may allow the value 60 if it allows leap-seconds. + * + * Generated from protobuf field int32 seconds = 6; + * @param int $var + * @return $this + */ + public function setSeconds($var) + { + GPBUtil::checkInt32($var); + $this->seconds = $var; + + return $this; + } + + /** + * Required. Fractions of seconds in nanoseconds. Must be from 0 to + * 999,999,999. + * + * Generated from protobuf field int32 nanos = 7; + * @return int + */ + public function getNanos() + { + return $this->nanos; + } + + /** + * Required. Fractions of seconds in nanoseconds. Must be from 0 to + * 999,999,999. + * + * Generated from protobuf field int32 nanos = 7; + * @param int $var + * @return $this + */ + public function setNanos($var) + { + GPBUtil::checkInt32($var); + $this->nanos = $var; + + return $this; + } + + /** + * UTC offset. Must be whole seconds, between -18 hours and +18 hours. + * For example, a UTC offset of -4:00 would be represented as + * { seconds: -14400 }. + * + * Generated from protobuf field .google.protobuf.Duration utc_offset = 8; + * @return \Google\Protobuf\Duration|null + */ + public function getUtcOffset() + { + return $this->readOneof(8); + } + + public function hasUtcOffset() + { + return $this->hasOneof(8); + } + + /** + * UTC offset. Must be whole seconds, between -18 hours and +18 hours. + * For example, a UTC offset of -4:00 would be represented as + * { seconds: -14400 }. + * + * Generated from protobuf field .google.protobuf.Duration utc_offset = 8; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setUtcOffset($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->writeOneof(8, $var); + + return $this; + } + + /** + * Time zone. + * + * Generated from protobuf field .google.type.TimeZone time_zone = 9; + * @return \Google\Type\TimeZone|null + */ + public function getTimeZone() + { + return $this->readOneof(9); + } + + public function hasTimeZone() + { + return $this->hasOneof(9); + } + + /** + * Time zone. + * + * Generated from protobuf field .google.type.TimeZone time_zone = 9; + * @param \Google\Type\TimeZone $var + * @return $this + */ + public function setTimeZone($var) + { + GPBUtil::checkMessage($var, \Google\Type\TimeZone::class); + $this->writeOneof(9, $var); + + return $this; + } + + /** + * @return string + */ + public function getTimeOffset() + { + return $this->whichOneof("time_offset"); + } + +} + diff --git a/vendor/google/common-protos/src/Type/DayOfWeek.php b/vendor/google/common-protos/src/Type/DayOfWeek.php new file mode 100644 index 0000000..56219ff --- /dev/null +++ b/vendor/google/common-protos/src/Type/DayOfWeek.php @@ -0,0 +1,96 @@ +google.type.DayOfWeek + */ +class DayOfWeek +{ + /** + * The day of the week is unspecified. + * + * Generated from protobuf enum DAY_OF_WEEK_UNSPECIFIED = 0; + */ + const DAY_OF_WEEK_UNSPECIFIED = 0; + /** + * Monday + * + * Generated from protobuf enum MONDAY = 1; + */ + const MONDAY = 1; + /** + * Tuesday + * + * Generated from protobuf enum TUESDAY = 2; + */ + const TUESDAY = 2; + /** + * Wednesday + * + * Generated from protobuf enum WEDNESDAY = 3; + */ + const WEDNESDAY = 3; + /** + * Thursday + * + * Generated from protobuf enum THURSDAY = 4; + */ + const THURSDAY = 4; + /** + * Friday + * + * Generated from protobuf enum FRIDAY = 5; + */ + const FRIDAY = 5; + /** + * Saturday + * + * Generated from protobuf enum SATURDAY = 6; + */ + const SATURDAY = 6; + /** + * Sunday + * + * Generated from protobuf enum SUNDAY = 7; + */ + const SUNDAY = 7; + + private static $valueToName = [ + self::DAY_OF_WEEK_UNSPECIFIED => 'DAY_OF_WEEK_UNSPECIFIED', + self::MONDAY => 'MONDAY', + self::TUESDAY => 'TUESDAY', + self::WEDNESDAY => 'WEDNESDAY', + self::THURSDAY => 'THURSDAY', + self::FRIDAY => 'FRIDAY', + self::SATURDAY => 'SATURDAY', + self::SUNDAY => 'SUNDAY', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Type/Decimal.php b/vendor/google/common-protos/src/Type/Decimal.php new file mode 100644 index 0000000..84e0fec --- /dev/null +++ b/vendor/google/common-protos/src/Type/Decimal.php @@ -0,0 +1,244 @@ +google.type.Decimal + */ +class Decimal extends \Google\Protobuf\Internal\Message +{ + /** + * The decimal value, as a string. + * The string representation consists of an optional sign, `+` (`U+002B`) + * or `-` (`U+002D`), followed by a sequence of zero or more decimal digits + * ("the integer"), optionally followed by a fraction, optionally followed + * by an exponent. + * The fraction consists of a decimal point followed by zero or more decimal + * digits. The string must contain at least one digit in either the integer + * or the fraction. The number formed by the sign, the integer and the + * fraction is referred to as the significand. + * The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) + * followed by one or more decimal digits. + * Services **should** normalize decimal values before storing them by: + * - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). + * - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). + * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`). + * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`). + * Services **may** perform additional normalization based on its own needs + * and the internal decimal implementation selected, such as shifting the + * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`). + * Additionally, services **may** preserve trailing zeroes in the fraction + * to indicate increased precision, but are not required to do so. + * Note that only the `.` character is supported to divide the integer + * and the fraction; `,` **should not** be supported regardless of locale. + * Additionally, thousand separators **should not** be supported. If a + * service does support them, values **must** be normalized. + * The ENBF grammar is: + * DecimalString = + * [Sign] Significand [Exponent]; + * Sign = '+' | '-'; + * Significand = + * Digits ['.'] [Digits] | [Digits] '.' Digits; + * Exponent = ('e' | 'E') [Sign] Digits; + * Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; + * Services **should** clearly document the range of supported values, the + * maximum supported precision (total number of digits), and, if applicable, + * the scale (number of digits after the decimal point), as well as how it + * behaves when receiving out-of-bounds values. + * Services **may** choose to accept values passed as input even when the + * value has a higher precision or scale than the service supports, and + * **should** round the value to fit the supported scale. Alternatively, the + * service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) + * if precision would be lost. + * Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in + * gRPC) if the service receives a value outside of the supported range. + * + * Generated from protobuf field string value = 1; + */ + protected $value = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $value + * The decimal value, as a string. + * The string representation consists of an optional sign, `+` (`U+002B`) + * or `-` (`U+002D`), followed by a sequence of zero or more decimal digits + * ("the integer"), optionally followed by a fraction, optionally followed + * by an exponent. + * The fraction consists of a decimal point followed by zero or more decimal + * digits. The string must contain at least one digit in either the integer + * or the fraction. The number formed by the sign, the integer and the + * fraction is referred to as the significand. + * The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) + * followed by one or more decimal digits. + * Services **should** normalize decimal values before storing them by: + * - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). + * - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). + * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`). + * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`). + * Services **may** perform additional normalization based on its own needs + * and the internal decimal implementation selected, such as shifting the + * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`). + * Additionally, services **may** preserve trailing zeroes in the fraction + * to indicate increased precision, but are not required to do so. + * Note that only the `.` character is supported to divide the integer + * and the fraction; `,` **should not** be supported regardless of locale. + * Additionally, thousand separators **should not** be supported. If a + * service does support them, values **must** be normalized. + * The ENBF grammar is: + * DecimalString = + * [Sign] Significand [Exponent]; + * Sign = '+' | '-'; + * Significand = + * Digits ['.'] [Digits] | [Digits] '.' Digits; + * Exponent = ('e' | 'E') [Sign] Digits; + * Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; + * Services **should** clearly document the range of supported values, the + * maximum supported precision (total number of digits), and, if applicable, + * the scale (number of digits after the decimal point), as well as how it + * behaves when receiving out-of-bounds values. + * Services **may** choose to accept values passed as input even when the + * value has a higher precision or scale than the service supports, and + * **should** round the value to fit the supported scale. Alternatively, the + * service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) + * if precision would be lost. + * Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in + * gRPC) if the service receives a value outside of the supported range. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Decimal::initOnce(); + parent::__construct($data); + } + + /** + * The decimal value, as a string. + * The string representation consists of an optional sign, `+` (`U+002B`) + * or `-` (`U+002D`), followed by a sequence of zero or more decimal digits + * ("the integer"), optionally followed by a fraction, optionally followed + * by an exponent. + * The fraction consists of a decimal point followed by zero or more decimal + * digits. The string must contain at least one digit in either the integer + * or the fraction. The number formed by the sign, the integer and the + * fraction is referred to as the significand. + * The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) + * followed by one or more decimal digits. + * Services **should** normalize decimal values before storing them by: + * - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). + * - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). + * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`). + * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`). + * Services **may** perform additional normalization based on its own needs + * and the internal decimal implementation selected, such as shifting the + * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`). + * Additionally, services **may** preserve trailing zeroes in the fraction + * to indicate increased precision, but are not required to do so. + * Note that only the `.` character is supported to divide the integer + * and the fraction; `,` **should not** be supported regardless of locale. + * Additionally, thousand separators **should not** be supported. If a + * service does support them, values **must** be normalized. + * The ENBF grammar is: + * DecimalString = + * [Sign] Significand [Exponent]; + * Sign = '+' | '-'; + * Significand = + * Digits ['.'] [Digits] | [Digits] '.' Digits; + * Exponent = ('e' | 'E') [Sign] Digits; + * Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; + * Services **should** clearly document the range of supported values, the + * maximum supported precision (total number of digits), and, if applicable, + * the scale (number of digits after the decimal point), as well as how it + * behaves when receiving out-of-bounds values. + * Services **may** choose to accept values passed as input even when the + * value has a higher precision or scale than the service supports, and + * **should** round the value to fit the supported scale. Alternatively, the + * service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) + * if precision would be lost. + * Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in + * gRPC) if the service receives a value outside of the supported range. + * + * Generated from protobuf field string value = 1; + * @return string + */ + public function getValue() + { + return $this->value; + } + + /** + * The decimal value, as a string. + * The string representation consists of an optional sign, `+` (`U+002B`) + * or `-` (`U+002D`), followed by a sequence of zero or more decimal digits + * ("the integer"), optionally followed by a fraction, optionally followed + * by an exponent. + * The fraction consists of a decimal point followed by zero or more decimal + * digits. The string must contain at least one digit in either the integer + * or the fraction. The number formed by the sign, the integer and the + * fraction is referred to as the significand. + * The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) + * followed by one or more decimal digits. + * Services **should** normalize decimal values before storing them by: + * - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). + * - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). + * - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`). + * - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`). + * Services **may** perform additional normalization based on its own needs + * and the internal decimal implementation selected, such as shifting the + * decimal point and exponent value together (example: `2.5e-1` <-> `0.25`). + * Additionally, services **may** preserve trailing zeroes in the fraction + * to indicate increased precision, but are not required to do so. + * Note that only the `.` character is supported to divide the integer + * and the fraction; `,` **should not** be supported regardless of locale. + * Additionally, thousand separators **should not** be supported. If a + * service does support them, values **must** be normalized. + * The ENBF grammar is: + * DecimalString = + * [Sign] Significand [Exponent]; + * Sign = '+' | '-'; + * Significand = + * Digits ['.'] [Digits] | [Digits] '.' Digits; + * Exponent = ('e' | 'E') [Sign] Digits; + * Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; + * Services **should** clearly document the range of supported values, the + * maximum supported precision (total number of digits), and, if applicable, + * the scale (number of digits after the decimal point), as well as how it + * behaves when receiving out-of-bounds values. + * Services **may** choose to accept values passed as input even when the + * value has a higher precision or scale than the service supports, and + * **should** round the value to fit the supported scale. Alternatively, the + * service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) + * if precision would be lost. + * Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in + * gRPC) if the service receives a value outside of the supported range. + * + * Generated from protobuf field string value = 1; + * @param string $var + * @return $this + */ + public function setValue($var) + { + GPBUtil::checkString($var, True); + $this->value = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/Expr.php b/vendor/google/common-protos/src/Type/Expr.php new file mode 100644 index 0000000..e47299b --- /dev/null +++ b/vendor/google/common-protos/src/Type/Expr.php @@ -0,0 +1,210 @@ +google.type.Expr + */ +class Expr extends \Google\Protobuf\Internal\Message +{ + /** + * Textual representation of an expression in Common Expression Language + * syntax. + * + * Generated from protobuf field string expression = 1; + */ + protected $expression = ''; + /** + * Optional. Title for the expression, i.e. a short string describing + * its purpose. This can be used e.g. in UIs which allow to enter the + * expression. + * + * Generated from protobuf field string title = 2; + */ + protected $title = ''; + /** + * Optional. Description of the expression. This is a longer text which + * describes the expression, e.g. when hovered over it in a UI. + * + * Generated from protobuf field string description = 3; + */ + protected $description = ''; + /** + * Optional. String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file. + * + * Generated from protobuf field string location = 4; + */ + protected $location = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $expression + * Textual representation of an expression in Common Expression Language + * syntax. + * @type string $title + * Optional. Title for the expression, i.e. a short string describing + * its purpose. This can be used e.g. in UIs which allow to enter the + * expression. + * @type string $description + * Optional. Description of the expression. This is a longer text which + * describes the expression, e.g. when hovered over it in a UI. + * @type string $location + * Optional. String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Expr::initOnce(); + parent::__construct($data); + } + + /** + * Textual representation of an expression in Common Expression Language + * syntax. + * + * Generated from protobuf field string expression = 1; + * @return string + */ + public function getExpression() + { + return $this->expression; + } + + /** + * Textual representation of an expression in Common Expression Language + * syntax. + * + * Generated from protobuf field string expression = 1; + * @param string $var + * @return $this + */ + public function setExpression($var) + { + GPBUtil::checkString($var, True); + $this->expression = $var; + + return $this; + } + + /** + * Optional. Title for the expression, i.e. a short string describing + * its purpose. This can be used e.g. in UIs which allow to enter the + * expression. + * + * Generated from protobuf field string title = 2; + * @return string + */ + public function getTitle() + { + return $this->title; + } + + /** + * Optional. Title for the expression, i.e. a short string describing + * its purpose. This can be used e.g. in UIs which allow to enter the + * expression. + * + * Generated from protobuf field string title = 2; + * @param string $var + * @return $this + */ + public function setTitle($var) + { + GPBUtil::checkString($var, True); + $this->title = $var; + + return $this; + } + + /** + * Optional. Description of the expression. This is a longer text which + * describes the expression, e.g. when hovered over it in a UI. + * + * Generated from protobuf field string description = 3; + * @return string + */ + public function getDescription() + { + return $this->description; + } + + /** + * Optional. Description of the expression. This is a longer text which + * describes the expression, e.g. when hovered over it in a UI. + * + * Generated from protobuf field string description = 3; + * @param string $var + * @return $this + */ + public function setDescription($var) + { + GPBUtil::checkString($var, True); + $this->description = $var; + + return $this; + } + + /** + * Optional. String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file. + * + * Generated from protobuf field string location = 4; + * @return string + */ + public function getLocation() + { + return $this->location; + } + + /** + * Optional. String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file. + * + * Generated from protobuf field string location = 4; + * @param string $var + * @return $this + */ + public function setLocation($var) + { + GPBUtil::checkString($var, True); + $this->location = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/Fraction.php b/vendor/google/common-protos/src/Type/Fraction.php new file mode 100644 index 0000000..f7aae21 --- /dev/null +++ b/vendor/google/common-protos/src/Type/Fraction.php @@ -0,0 +1,105 @@ +google.type.Fraction + */ +class Fraction extends \Google\Protobuf\Internal\Message +{ + /** + * The numerator in the fraction, e.g. 2 in 2/3. + * + * Generated from protobuf field int64 numerator = 1; + */ + protected $numerator = 0; + /** + * The value by which the numerator is divided, e.g. 3 in 2/3. Must be + * positive. + * + * Generated from protobuf field int64 denominator = 2; + */ + protected $denominator = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int|string $numerator + * The numerator in the fraction, e.g. 2 in 2/3. + * @type int|string $denominator + * The value by which the numerator is divided, e.g. 3 in 2/3. Must be + * positive. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Fraction::initOnce(); + parent::__construct($data); + } + + /** + * The numerator in the fraction, e.g. 2 in 2/3. + * + * Generated from protobuf field int64 numerator = 1; + * @return int|string + */ + public function getNumerator() + { + return $this->numerator; + } + + /** + * The numerator in the fraction, e.g. 2 in 2/3. + * + * Generated from protobuf field int64 numerator = 1; + * @param int|string $var + * @return $this + */ + public function setNumerator($var) + { + GPBUtil::checkInt64($var); + $this->numerator = $var; + + return $this; + } + + /** + * The value by which the numerator is divided, e.g. 3 in 2/3. Must be + * positive. + * + * Generated from protobuf field int64 denominator = 2; + * @return int|string + */ + public function getDenominator() + { + return $this->denominator; + } + + /** + * The value by which the numerator is divided, e.g. 3 in 2/3. Must be + * positive. + * + * Generated from protobuf field int64 denominator = 2; + * @param int|string $var + * @return $this + */ + public function setDenominator($var) + { + GPBUtil::checkInt64($var); + $this->denominator = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/Interval.php b/vendor/google/common-protos/src/Type/Interval.php new file mode 100644 index 0000000..89fb028 --- /dev/null +++ b/vendor/google/common-protos/src/Type/Interval.php @@ -0,0 +1,141 @@ +google.type.Interval + */ +class Interval extends \Google\Protobuf\Internal\Message +{ + /** + * Optional. Inclusive start of the interval. + * If specified, a Timestamp matching this interval will have to be the same + * or after the start. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 1; + */ + protected $start_time = null; + /** + * Optional. Exclusive end of the interval. + * If specified, a Timestamp matching this interval will have to be before the + * end. + * + * Generated from protobuf field .google.protobuf.Timestamp end_time = 2; + */ + protected $end_time = null; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type \Google\Protobuf\Timestamp $start_time + * Optional. Inclusive start of the interval. + * If specified, a Timestamp matching this interval will have to be the same + * or after the start. + * @type \Google\Protobuf\Timestamp $end_time + * Optional. Exclusive end of the interval. + * If specified, a Timestamp matching this interval will have to be before the + * end. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Interval::initOnce(); + parent::__construct($data); + } + + /** + * Optional. Inclusive start of the interval. + * If specified, a Timestamp matching this interval will have to be the same + * or after the start. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 1; + * @return \Google\Protobuf\Timestamp|null + */ + public function getStartTime() + { + return $this->start_time; + } + + public function hasStartTime() + { + return isset($this->start_time); + } + + public function clearStartTime() + { + unset($this->start_time); + } + + /** + * Optional. Inclusive start of the interval. + * If specified, a Timestamp matching this interval will have to be the same + * or after the start. + * + * Generated from protobuf field .google.protobuf.Timestamp start_time = 1; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setStartTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->start_time = $var; + + return $this; + } + + /** + * Optional. Exclusive end of the interval. + * If specified, a Timestamp matching this interval will have to be before the + * end. + * + * Generated from protobuf field .google.protobuf.Timestamp end_time = 2; + * @return \Google\Protobuf\Timestamp|null + */ + public function getEndTime() + { + return $this->end_time; + } + + public function hasEndTime() + { + return isset($this->end_time); + } + + public function clearEndTime() + { + unset($this->end_time); + } + + /** + * Optional. Exclusive end of the interval. + * If specified, a Timestamp matching this interval will have to be before the + * end. + * + * Generated from protobuf field .google.protobuf.Timestamp end_time = 2; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setEndTime($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->end_time = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/LatLng.php b/vendor/google/common-protos/src/Type/LatLng.php new file mode 100644 index 0000000..3725faf --- /dev/null +++ b/vendor/google/common-protos/src/Type/LatLng.php @@ -0,0 +1,105 @@ +WGS84 + * standard. Values must be within normalized ranges. + * + * Generated from protobuf message google.type.LatLng + */ +class LatLng extends \Google\Protobuf\Internal\Message +{ + /** + * The latitude in degrees. It must be in the range [-90.0, +90.0]. + * + * Generated from protobuf field double latitude = 1; + */ + protected $latitude = 0.0; + /** + * The longitude in degrees. It must be in the range [-180.0, +180.0]. + * + * Generated from protobuf field double longitude = 2; + */ + protected $longitude = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $latitude + * The latitude in degrees. It must be in the range [-90.0, +90.0]. + * @type float $longitude + * The longitude in degrees. It must be in the range [-180.0, +180.0]. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Latlng::initOnce(); + parent::__construct($data); + } + + /** + * The latitude in degrees. It must be in the range [-90.0, +90.0]. + * + * Generated from protobuf field double latitude = 1; + * @return float + */ + public function getLatitude() + { + return $this->latitude; + } + + /** + * The latitude in degrees. It must be in the range [-90.0, +90.0]. + * + * Generated from protobuf field double latitude = 1; + * @param float $var + * @return $this + */ + public function setLatitude($var) + { + GPBUtil::checkDouble($var); + $this->latitude = $var; + + return $this; + } + + /** + * The longitude in degrees. It must be in the range [-180.0, +180.0]. + * + * Generated from protobuf field double longitude = 2; + * @return float + */ + public function getLongitude() + { + return $this->longitude; + } + + /** + * The longitude in degrees. It must be in the range [-180.0, +180.0]. + * + * Generated from protobuf field double longitude = 2; + * @param float $var + * @return $this + */ + public function setLongitude($var) + { + GPBUtil::checkDouble($var); + $this->longitude = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/LocalizedText.php b/vendor/google/common-protos/src/Type/LocalizedText.php new file mode 100644 index 0000000..00545c6 --- /dev/null +++ b/vendor/google/common-protos/src/Type/LocalizedText.php @@ -0,0 +1,109 @@ +google.type.LocalizedText + */ +class LocalizedText extends \Google\Protobuf\Internal\Message +{ + /** + * Localized string in the language corresponding to `language_code' below. + * + * Generated from protobuf field string text = 1; + */ + protected $text = ''; + /** + * The text's BCP-47 language code, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + * + * Generated from protobuf field string language_code = 2; + */ + protected $language_code = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $text + * Localized string in the language corresponding to `language_code' below. + * @type string $language_code + * The text's BCP-47 language code, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\LocalizedText::initOnce(); + parent::__construct($data); + } + + /** + * Localized string in the language corresponding to `language_code' below. + * + * Generated from protobuf field string text = 1; + * @return string + */ + public function getText() + { + return $this->text; + } + + /** + * Localized string in the language corresponding to `language_code' below. + * + * Generated from protobuf field string text = 1; + * @param string $var + * @return $this + */ + public function setText($var) + { + GPBUtil::checkString($var, True); + $this->text = $var; + + return $this; + } + + /** + * The text's BCP-47 language code, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + * + * Generated from protobuf field string language_code = 2; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * The text's BCP-47 language code, such as "en-US" or "sr-Latn". + * For more information, see + * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. + * + * Generated from protobuf field string language_code = 2; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/Money.php b/vendor/google/common-protos/src/Type/Money.php new file mode 100644 index 0000000..826c954 --- /dev/null +++ b/vendor/google/common-protos/src/Type/Money.php @@ -0,0 +1,159 @@ +google.type.Money + */ +class Money extends \Google\Protobuf\Internal\Message +{ + /** + * The three-letter currency code defined in ISO 4217. + * + * Generated from protobuf field string currency_code = 1; + */ + protected $currency_code = ''; + /** + * The whole units of the amount. + * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + * + * Generated from protobuf field int64 units = 2; + */ + protected $units = 0; + /** + * Number of nano (10^-9) units of the amount. + * The value must be between -999,999,999 and +999,999,999 inclusive. + * If `units` is positive, `nanos` must be positive or zero. + * If `units` is zero, `nanos` can be positive, zero, or negative. + * If `units` is negative, `nanos` must be negative or zero. + * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + * + * Generated from protobuf field int32 nanos = 3; + */ + protected $nanos = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $currency_code + * The three-letter currency code defined in ISO 4217. + * @type int|string $units + * The whole units of the amount. + * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + * @type int $nanos + * Number of nano (10^-9) units of the amount. + * The value must be between -999,999,999 and +999,999,999 inclusive. + * If `units` is positive, `nanos` must be positive or zero. + * If `units` is zero, `nanos` can be positive, zero, or negative. + * If `units` is negative, `nanos` must be negative or zero. + * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Money::initOnce(); + parent::__construct($data); + } + + /** + * The three-letter currency code defined in ISO 4217. + * + * Generated from protobuf field string currency_code = 1; + * @return string + */ + public function getCurrencyCode() + { + return $this->currency_code; + } + + /** + * The three-letter currency code defined in ISO 4217. + * + * Generated from protobuf field string currency_code = 1; + * @param string $var + * @return $this + */ + public function setCurrencyCode($var) + { + GPBUtil::checkString($var, True); + $this->currency_code = $var; + + return $this; + } + + /** + * The whole units of the amount. + * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + * + * Generated from protobuf field int64 units = 2; + * @return int|string + */ + public function getUnits() + { + return $this->units; + } + + /** + * The whole units of the amount. + * For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar. + * + * Generated from protobuf field int64 units = 2; + * @param int|string $var + * @return $this + */ + public function setUnits($var) + { + GPBUtil::checkInt64($var); + $this->units = $var; + + return $this; + } + + /** + * Number of nano (10^-9) units of the amount. + * The value must be between -999,999,999 and +999,999,999 inclusive. + * If `units` is positive, `nanos` must be positive or zero. + * If `units` is zero, `nanos` can be positive, zero, or negative. + * If `units` is negative, `nanos` must be negative or zero. + * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + * + * Generated from protobuf field int32 nanos = 3; + * @return int + */ + public function getNanos() + { + return $this->nanos; + } + + /** + * Number of nano (10^-9) units of the amount. + * The value must be between -999,999,999 and +999,999,999 inclusive. + * If `units` is positive, `nanos` must be positive or zero. + * If `units` is zero, `nanos` can be positive, zero, or negative. + * If `units` is negative, `nanos` must be negative or zero. + * For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000. + * + * Generated from protobuf field int32 nanos = 3; + * @param int $var + * @return $this + */ + public function setNanos($var) + { + GPBUtil::checkInt32($var); + $this->nanos = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/Month.php b/vendor/google/common-protos/src/Type/Month.php new file mode 100644 index 0000000..473d62e --- /dev/null +++ b/vendor/google/common-protos/src/Type/Month.php @@ -0,0 +1,131 @@ +google.type.Month + */ +class Month +{ + /** + * The unspecified month. + * + * Generated from protobuf enum MONTH_UNSPECIFIED = 0; + */ + const MONTH_UNSPECIFIED = 0; + /** + * The month of January. + * + * Generated from protobuf enum JANUARY = 1; + */ + const JANUARY = 1; + /** + * The month of February. + * + * Generated from protobuf enum FEBRUARY = 2; + */ + const FEBRUARY = 2; + /** + * The month of March. + * + * Generated from protobuf enum MARCH = 3; + */ + const MARCH = 3; + /** + * The month of April. + * + * Generated from protobuf enum APRIL = 4; + */ + const APRIL = 4; + /** + * The month of May. + * + * Generated from protobuf enum MAY = 5; + */ + const MAY = 5; + /** + * The month of June. + * + * Generated from protobuf enum JUNE = 6; + */ + const JUNE = 6; + /** + * The month of July. + * + * Generated from protobuf enum JULY = 7; + */ + const JULY = 7; + /** + * The month of August. + * + * Generated from protobuf enum AUGUST = 8; + */ + const AUGUST = 8; + /** + * The month of September. + * + * Generated from protobuf enum SEPTEMBER = 9; + */ + const SEPTEMBER = 9; + /** + * The month of October. + * + * Generated from protobuf enum OCTOBER = 10; + */ + const OCTOBER = 10; + /** + * The month of November. + * + * Generated from protobuf enum NOVEMBER = 11; + */ + const NOVEMBER = 11; + /** + * The month of December. + * + * Generated from protobuf enum DECEMBER = 12; + */ + const DECEMBER = 12; + + private static $valueToName = [ + self::MONTH_UNSPECIFIED => 'MONTH_UNSPECIFIED', + self::JANUARY => 'JANUARY', + self::FEBRUARY => 'FEBRUARY', + self::MARCH => 'MARCH', + self::APRIL => 'APRIL', + self::MAY => 'MAY', + self::JUNE => 'JUNE', + self::JULY => 'JULY', + self::AUGUST => 'AUGUST', + self::SEPTEMBER => 'SEPTEMBER', + self::OCTOBER => 'OCTOBER', + self::NOVEMBER => 'NOVEMBER', + self::DECEMBER => 'DECEMBER', + ]; + + public static function name($value) + { + if (!isset(self::$valueToName[$value])) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no name defined for value %s', __CLASS__, $value)); + } + return self::$valueToName[$value]; + } + + + public static function value($name) + { + $const = __CLASS__ . '::' . strtoupper($name); + if (!defined($const)) { + throw new UnexpectedValueException(sprintf( + 'Enum %s has no value defined for name %s', __CLASS__, $name)); + } + return constant($const); + } +} + diff --git a/vendor/google/common-protos/src/Type/PhoneNumber.php b/vendor/google/common-protos/src/Type/PhoneNumber.php new file mode 100644 index 0000000..8f4289d --- /dev/null +++ b/vendor/google/common-protos/src/Type/PhoneNumber.php @@ -0,0 +1,230 @@ +google.type.PhoneNumber + */ +class PhoneNumber extends \Google\Protobuf\Internal\Message +{ + /** + * The phone number's extension. The extension is not standardized in ITU + * recommendations, except for being defined as a series of numbers with a + * maximum length of 40 digits. Other than digits, some other dialing + * characters such as ',' (indicating a wait) or '#' may be stored here. + * Note that no regions currently use extensions with short codes, so this + * field is normally only set in conjunction with an E.164 number. It is held + * separately from the E.164 number to allow for short code extensions in the + * future. + * + * Generated from protobuf field string extension = 3; + */ + protected $extension = ''; + protected $kind; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $e164_number + * The phone number, represented as a leading plus sign ('+'), followed by a + * phone number that uses a relaxed ITU E.164 format consisting of the + * country calling code (1 to 3 digits) and the subscriber number, with no + * additional spaces or formatting, e.g.: + * - correct: "+15552220123" + * - incorrect: "+1 (555) 222-01234 x123". + * The ITU E.164 format limits the latter to 12 digits, but in practice not + * all countries respect that, so we relax that restriction here. + * National-only numbers are not allowed. + * References: + * - https://www.itu.int/rec/T-REC-E.164-201011-I + * - https://en.wikipedia.org/wiki/E.164. + * - https://en.wikipedia.org/wiki/List_of_country_calling_codes + * @type \Google\Type\PhoneNumber\ShortCode $short_code + * A short code. + * Reference(s): + * - https://en.wikipedia.org/wiki/Short_code + * @type string $extension + * The phone number's extension. The extension is not standardized in ITU + * recommendations, except for being defined as a series of numbers with a + * maximum length of 40 digits. Other than digits, some other dialing + * characters such as ',' (indicating a wait) or '#' may be stored here. + * Note that no regions currently use extensions with short codes, so this + * field is normally only set in conjunction with an E.164 number. It is held + * separately from the E.164 number to allow for short code extensions in the + * future. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\PhoneNumber::initOnce(); + parent::__construct($data); + } + + /** + * The phone number, represented as a leading plus sign ('+'), followed by a + * phone number that uses a relaxed ITU E.164 format consisting of the + * country calling code (1 to 3 digits) and the subscriber number, with no + * additional spaces or formatting, e.g.: + * - correct: "+15552220123" + * - incorrect: "+1 (555) 222-01234 x123". + * The ITU E.164 format limits the latter to 12 digits, but in practice not + * all countries respect that, so we relax that restriction here. + * National-only numbers are not allowed. + * References: + * - https://www.itu.int/rec/T-REC-E.164-201011-I + * - https://en.wikipedia.org/wiki/E.164. + * - https://en.wikipedia.org/wiki/List_of_country_calling_codes + * + * Generated from protobuf field string e164_number = 1; + * @return string + */ + public function getE164Number() + { + return $this->readOneof(1); + } + + public function hasE164Number() + { + return $this->hasOneof(1); + } + + /** + * The phone number, represented as a leading plus sign ('+'), followed by a + * phone number that uses a relaxed ITU E.164 format consisting of the + * country calling code (1 to 3 digits) and the subscriber number, with no + * additional spaces or formatting, e.g.: + * - correct: "+15552220123" + * - incorrect: "+1 (555) 222-01234 x123". + * The ITU E.164 format limits the latter to 12 digits, but in practice not + * all countries respect that, so we relax that restriction here. + * National-only numbers are not allowed. + * References: + * - https://www.itu.int/rec/T-REC-E.164-201011-I + * - https://en.wikipedia.org/wiki/E.164. + * - https://en.wikipedia.org/wiki/List_of_country_calling_codes + * + * Generated from protobuf field string e164_number = 1; + * @param string $var + * @return $this + */ + public function setE164Number($var) + { + GPBUtil::checkString($var, True); + $this->writeOneof(1, $var); + + return $this; + } + + /** + * A short code. + * Reference(s): + * - https://en.wikipedia.org/wiki/Short_code + * + * Generated from protobuf field .google.type.PhoneNumber.ShortCode short_code = 2; + * @return \Google\Type\PhoneNumber\ShortCode|null + */ + public function getShortCode() + { + return $this->readOneof(2); + } + + public function hasShortCode() + { + return $this->hasOneof(2); + } + + /** + * A short code. + * Reference(s): + * - https://en.wikipedia.org/wiki/Short_code + * + * Generated from protobuf field .google.type.PhoneNumber.ShortCode short_code = 2; + * @param \Google\Type\PhoneNumber\ShortCode $var + * @return $this + */ + public function setShortCode($var) + { + GPBUtil::checkMessage($var, \Google\Type\PhoneNumber\ShortCode::class); + $this->writeOneof(2, $var); + + return $this; + } + + /** + * The phone number's extension. The extension is not standardized in ITU + * recommendations, except for being defined as a series of numbers with a + * maximum length of 40 digits. Other than digits, some other dialing + * characters such as ',' (indicating a wait) or '#' may be stored here. + * Note that no regions currently use extensions with short codes, so this + * field is normally only set in conjunction with an E.164 number. It is held + * separately from the E.164 number to allow for short code extensions in the + * future. + * + * Generated from protobuf field string extension = 3; + * @return string + */ + public function getExtension() + { + return $this->extension; + } + + /** + * The phone number's extension. The extension is not standardized in ITU + * recommendations, except for being defined as a series of numbers with a + * maximum length of 40 digits. Other than digits, some other dialing + * characters such as ',' (indicating a wait) or '#' may be stored here. + * Note that no regions currently use extensions with short codes, so this + * field is normally only set in conjunction with an E.164 number. It is held + * separately from the E.164 number to allow for short code extensions in the + * future. + * + * Generated from protobuf field string extension = 3; + * @param string $var + * @return $this + */ + public function setExtension($var) + { + GPBUtil::checkString($var, True); + $this->extension = $var; + + return $this; + } + + /** + * @return string + */ + public function getKind() + { + return $this->whichOneof("kind"); + } + +} + diff --git a/vendor/google/common-protos/src/Type/PhoneNumber/ShortCode.php b/vendor/google/common-protos/src/Type/PhoneNumber/ShortCode.php new file mode 100644 index 0000000..1ac9de2 --- /dev/null +++ b/vendor/google/common-protos/src/Type/PhoneNumber/ShortCode.php @@ -0,0 +1,125 @@ +google.type.PhoneNumber.ShortCode + */ +class ShortCode extends \Google\Protobuf\Internal\Message +{ + /** + * Required. The BCP-47 region code of the location where calls to this + * short code can be made, such as "US" and "BB". + * Reference(s): + * - http://www.unicode.org/reports/tr35/#unicode_region_subtag + * + * Generated from protobuf field string region_code = 1; + */ + protected $region_code = ''; + /** + * Required. The short code digits, without a leading plus ('+') or country + * calling code, e.g. "611". + * + * Generated from protobuf field string number = 2; + */ + protected $number = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $region_code + * Required. The BCP-47 region code of the location where calls to this + * short code can be made, such as "US" and "BB". + * Reference(s): + * - http://www.unicode.org/reports/tr35/#unicode_region_subtag + * @type string $number + * Required. The short code digits, without a leading plus ('+') or country + * calling code, e.g. "611". + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\PhoneNumber::initOnce(); + parent::__construct($data); + } + + /** + * Required. The BCP-47 region code of the location where calls to this + * short code can be made, such as "US" and "BB". + * Reference(s): + * - http://www.unicode.org/reports/tr35/#unicode_region_subtag + * + * Generated from protobuf field string region_code = 1; + * @return string + */ + public function getRegionCode() + { + return $this->region_code; + } + + /** + * Required. The BCP-47 region code of the location where calls to this + * short code can be made, such as "US" and "BB". + * Reference(s): + * - http://www.unicode.org/reports/tr35/#unicode_region_subtag + * + * Generated from protobuf field string region_code = 1; + * @param string $var + * @return $this + */ + public function setRegionCode($var) + { + GPBUtil::checkString($var, True); + $this->region_code = $var; + + return $this; + } + + /** + * Required. The short code digits, without a leading plus ('+') or country + * calling code, e.g. "611". + * + * Generated from protobuf field string number = 2; + * @return string + */ + public function getNumber() + { + return $this->number; + } + + /** + * Required. The short code digits, without a leading plus ('+') or country + * calling code, e.g. "611". + * + * Generated from protobuf field string number = 2; + * @param string $var + * @return $this + */ + public function setNumber($var) + { + GPBUtil::checkString($var, True); + $this->number = $var; + + return $this; + } + +} + + diff --git a/vendor/google/common-protos/src/Type/PostalAddress.php b/vendor/google/common-protos/src/Type/PostalAddress.php new file mode 100644 index 0000000..1fdaf26 --- /dev/null +++ b/vendor/google/common-protos/src/Type/PostalAddress.php @@ -0,0 +1,628 @@ +google.type.PostalAddress + */ +class PostalAddress extends \Google\Protobuf\Internal\Message +{ + /** + * The schema revision of the `PostalAddress`. This must be set to 0, which is + * the latest revision. + * All new revisions **must** be backward compatible with old revisions. + * + * Generated from protobuf field int32 revision = 1; + */ + protected $revision = 0; + /** + * Required. CLDR region code of the country/region of the address. This + * is never inferred and it is up to the user to ensure the value is + * correct. See http://cldr.unicode.org/ and + * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html + * for details. Example: "CH" for Switzerland. + * + * Generated from protobuf field string region_code = 2; + */ + protected $region_code = ''; + /** + * Optional. BCP-47 language code of the contents of this address (if + * known). This is often the UI language of the input form or is expected + * to match one of the languages used in the address' country/region, or their + * transliterated equivalents. + * This can affect formatting in certain countries, but is not critical + * to the correctness of the data and will never affect any validation or + * other non-formatting related operations. + * If this value is not known, it should be omitted (rather than specifying a + * possibly incorrect default). + * Examples: "zh-Hant", "ja", "ja-Latn", "en". + * + * Generated from protobuf field string language_code = 3; + */ + protected $language_code = ''; + /** + * Optional. Postal code of the address. Not all countries use or require + * postal codes to be present, but where they are used, they may trigger + * additional validation with other parts of the address (e.g. state/zip + * validation in the U.S.A.). + * + * Generated from protobuf field string postal_code = 4; + */ + protected $postal_code = ''; + /** + * Optional. Additional, country-specific, sorting code. This is not used + * in most regions. Where it is used, the value is either a string like + * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number + * alone, representing the "sector code" (Jamaica), "delivery area indicator" + * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). + * + * Generated from protobuf field string sorting_code = 5; + */ + protected $sorting_code = ''; + /** + * Optional. Highest administrative subdivision which is used for postal + * addresses of a country or region. + * For example, this can be a state, a province, an oblast, or a prefecture. + * Specifically, for Spain this is the province and not the autonomous + * community (e.g. "Barcelona" and not "Catalonia"). + * Many countries don't use an administrative area in postal addresses. E.g. + * in Switzerland this should be left unpopulated. + * + * Generated from protobuf field string administrative_area = 6; + */ + protected $administrative_area = ''; + /** + * Optional. Generally refers to the city/town portion of the address. + * Examples: US city, IT comune, UK post town. + * In regions of the world where localities are not well defined or do not fit + * into this structure well, leave locality empty and use address_lines. + * + * Generated from protobuf field string locality = 7; + */ + protected $locality = ''; + /** + * Optional. Sublocality of the address. + * For example, this can be neighborhoods, boroughs, districts. + * + * Generated from protobuf field string sublocality = 8; + */ + protected $sublocality = ''; + /** + * Unstructured address lines describing the lower levels of an address. + * Because values in address_lines do not have type information and may + * sometimes contain multiple values in a single field (e.g. + * "Austin, TX"), it is important that the line order is clear. The order of + * address lines should be "envelope order" for the country/region of the + * address. In places where this can vary (e.g. Japan), address_language is + * used to make it explicit (e.g. "ja" for large-to-small ordering and + * "ja-Latn" or "en" for small-to-large). This way, the most specific line of + * an address can be selected based on the language. + * The minimum permitted structural representation of an address consists + * of a region_code with all remaining information placed in the + * address_lines. It would be possible to format such an address very + * approximately without geocoding, but no semantic reasoning could be + * made about any of the address components until it was at least + * partially resolved. + * Creating an address only containing a region_code and address_lines, and + * then geocoding is the recommended way to handle completely unstructured + * addresses (as opposed to guessing which parts of the address should be + * localities or administrative areas). + * + * Generated from protobuf field repeated string address_lines = 9; + */ + private $address_lines; + /** + * Optional. The recipient at the address. + * This field may, under certain circumstances, contain multiline information. + * For example, it might contain "care of" information. + * + * Generated from protobuf field repeated string recipients = 10; + */ + private $recipients; + /** + * Optional. The name of the organization at the address. + * + * Generated from protobuf field string organization = 11; + */ + protected $organization = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $revision + * The schema revision of the `PostalAddress`. This must be set to 0, which is + * the latest revision. + * All new revisions **must** be backward compatible with old revisions. + * @type string $region_code + * Required. CLDR region code of the country/region of the address. This + * is never inferred and it is up to the user to ensure the value is + * correct. See http://cldr.unicode.org/ and + * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html + * for details. Example: "CH" for Switzerland. + * @type string $language_code + * Optional. BCP-47 language code of the contents of this address (if + * known). This is often the UI language of the input form or is expected + * to match one of the languages used in the address' country/region, or their + * transliterated equivalents. + * This can affect formatting in certain countries, but is not critical + * to the correctness of the data and will never affect any validation or + * other non-formatting related operations. + * If this value is not known, it should be omitted (rather than specifying a + * possibly incorrect default). + * Examples: "zh-Hant", "ja", "ja-Latn", "en". + * @type string $postal_code + * Optional. Postal code of the address. Not all countries use or require + * postal codes to be present, but where they are used, they may trigger + * additional validation with other parts of the address (e.g. state/zip + * validation in the U.S.A.). + * @type string $sorting_code + * Optional. Additional, country-specific, sorting code. This is not used + * in most regions. Where it is used, the value is either a string like + * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number + * alone, representing the "sector code" (Jamaica), "delivery area indicator" + * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). + * @type string $administrative_area + * Optional. Highest administrative subdivision which is used for postal + * addresses of a country or region. + * For example, this can be a state, a province, an oblast, or a prefecture. + * Specifically, for Spain this is the province and not the autonomous + * community (e.g. "Barcelona" and not "Catalonia"). + * Many countries don't use an administrative area in postal addresses. E.g. + * in Switzerland this should be left unpopulated. + * @type string $locality + * Optional. Generally refers to the city/town portion of the address. + * Examples: US city, IT comune, UK post town. + * In regions of the world where localities are not well defined or do not fit + * into this structure well, leave locality empty and use address_lines. + * @type string $sublocality + * Optional. Sublocality of the address. + * For example, this can be neighborhoods, boroughs, districts. + * @type array|\Google\Protobuf\Internal\RepeatedField $address_lines + * Unstructured address lines describing the lower levels of an address. + * Because values in address_lines do not have type information and may + * sometimes contain multiple values in a single field (e.g. + * "Austin, TX"), it is important that the line order is clear. The order of + * address lines should be "envelope order" for the country/region of the + * address. In places where this can vary (e.g. Japan), address_language is + * used to make it explicit (e.g. "ja" for large-to-small ordering and + * "ja-Latn" or "en" for small-to-large). This way, the most specific line of + * an address can be selected based on the language. + * The minimum permitted structural representation of an address consists + * of a region_code with all remaining information placed in the + * address_lines. It would be possible to format such an address very + * approximately without geocoding, but no semantic reasoning could be + * made about any of the address components until it was at least + * partially resolved. + * Creating an address only containing a region_code and address_lines, and + * then geocoding is the recommended way to handle completely unstructured + * addresses (as opposed to guessing which parts of the address should be + * localities or administrative areas). + * @type array|\Google\Protobuf\Internal\RepeatedField $recipients + * Optional. The recipient at the address. + * This field may, under certain circumstances, contain multiline information. + * For example, it might contain "care of" information. + * @type string $organization + * Optional. The name of the organization at the address. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\PostalAddress::initOnce(); + parent::__construct($data); + } + + /** + * The schema revision of the `PostalAddress`. This must be set to 0, which is + * the latest revision. + * All new revisions **must** be backward compatible with old revisions. + * + * Generated from protobuf field int32 revision = 1; + * @return int + */ + public function getRevision() + { + return $this->revision; + } + + /** + * The schema revision of the `PostalAddress`. This must be set to 0, which is + * the latest revision. + * All new revisions **must** be backward compatible with old revisions. + * + * Generated from protobuf field int32 revision = 1; + * @param int $var + * @return $this + */ + public function setRevision($var) + { + GPBUtil::checkInt32($var); + $this->revision = $var; + + return $this; + } + + /** + * Required. CLDR region code of the country/region of the address. This + * is never inferred and it is up to the user to ensure the value is + * correct. See http://cldr.unicode.org/ and + * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html + * for details. Example: "CH" for Switzerland. + * + * Generated from protobuf field string region_code = 2; + * @return string + */ + public function getRegionCode() + { + return $this->region_code; + } + + /** + * Required. CLDR region code of the country/region of the address. This + * is never inferred and it is up to the user to ensure the value is + * correct. See http://cldr.unicode.org/ and + * http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html + * for details. Example: "CH" for Switzerland. + * + * Generated from protobuf field string region_code = 2; + * @param string $var + * @return $this + */ + public function setRegionCode($var) + { + GPBUtil::checkString($var, True); + $this->region_code = $var; + + return $this; + } + + /** + * Optional. BCP-47 language code of the contents of this address (if + * known). This is often the UI language of the input form or is expected + * to match one of the languages used in the address' country/region, or their + * transliterated equivalents. + * This can affect formatting in certain countries, but is not critical + * to the correctness of the data and will never affect any validation or + * other non-formatting related operations. + * If this value is not known, it should be omitted (rather than specifying a + * possibly incorrect default). + * Examples: "zh-Hant", "ja", "ja-Latn", "en". + * + * Generated from protobuf field string language_code = 3; + * @return string + */ + public function getLanguageCode() + { + return $this->language_code; + } + + /** + * Optional. BCP-47 language code of the contents of this address (if + * known). This is often the UI language of the input form or is expected + * to match one of the languages used in the address' country/region, or their + * transliterated equivalents. + * This can affect formatting in certain countries, but is not critical + * to the correctness of the data and will never affect any validation or + * other non-formatting related operations. + * If this value is not known, it should be omitted (rather than specifying a + * possibly incorrect default). + * Examples: "zh-Hant", "ja", "ja-Latn", "en". + * + * Generated from protobuf field string language_code = 3; + * @param string $var + * @return $this + */ + public function setLanguageCode($var) + { + GPBUtil::checkString($var, True); + $this->language_code = $var; + + return $this; + } + + /** + * Optional. Postal code of the address. Not all countries use or require + * postal codes to be present, but where they are used, they may trigger + * additional validation with other parts of the address (e.g. state/zip + * validation in the U.S.A.). + * + * Generated from protobuf field string postal_code = 4; + * @return string + */ + public function getPostalCode() + { + return $this->postal_code; + } + + /** + * Optional. Postal code of the address. Not all countries use or require + * postal codes to be present, but where they are used, they may trigger + * additional validation with other parts of the address (e.g. state/zip + * validation in the U.S.A.). + * + * Generated from protobuf field string postal_code = 4; + * @param string $var + * @return $this + */ + public function setPostalCode($var) + { + GPBUtil::checkString($var, True); + $this->postal_code = $var; + + return $this; + } + + /** + * Optional. Additional, country-specific, sorting code. This is not used + * in most regions. Where it is used, the value is either a string like + * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number + * alone, representing the "sector code" (Jamaica), "delivery area indicator" + * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). + * + * Generated from protobuf field string sorting_code = 5; + * @return string + */ + public function getSortingCode() + { + return $this->sorting_code; + } + + /** + * Optional. Additional, country-specific, sorting code. This is not used + * in most regions. Where it is used, the value is either a string like + * "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number + * alone, representing the "sector code" (Jamaica), "delivery area indicator" + * (Malawi) or "post office indicator" (e.g. Côte d'Ivoire). + * + * Generated from protobuf field string sorting_code = 5; + * @param string $var + * @return $this + */ + public function setSortingCode($var) + { + GPBUtil::checkString($var, True); + $this->sorting_code = $var; + + return $this; + } + + /** + * Optional. Highest administrative subdivision which is used for postal + * addresses of a country or region. + * For example, this can be a state, a province, an oblast, or a prefecture. + * Specifically, for Spain this is the province and not the autonomous + * community (e.g. "Barcelona" and not "Catalonia"). + * Many countries don't use an administrative area in postal addresses. E.g. + * in Switzerland this should be left unpopulated. + * + * Generated from protobuf field string administrative_area = 6; + * @return string + */ + public function getAdministrativeArea() + { + return $this->administrative_area; + } + + /** + * Optional. Highest administrative subdivision which is used for postal + * addresses of a country or region. + * For example, this can be a state, a province, an oblast, or a prefecture. + * Specifically, for Spain this is the province and not the autonomous + * community (e.g. "Barcelona" and not "Catalonia"). + * Many countries don't use an administrative area in postal addresses. E.g. + * in Switzerland this should be left unpopulated. + * + * Generated from protobuf field string administrative_area = 6; + * @param string $var + * @return $this + */ + public function setAdministrativeArea($var) + { + GPBUtil::checkString($var, True); + $this->administrative_area = $var; + + return $this; + } + + /** + * Optional. Generally refers to the city/town portion of the address. + * Examples: US city, IT comune, UK post town. + * In regions of the world where localities are not well defined or do not fit + * into this structure well, leave locality empty and use address_lines. + * + * Generated from protobuf field string locality = 7; + * @return string + */ + public function getLocality() + { + return $this->locality; + } + + /** + * Optional. Generally refers to the city/town portion of the address. + * Examples: US city, IT comune, UK post town. + * In regions of the world where localities are not well defined or do not fit + * into this structure well, leave locality empty and use address_lines. + * + * Generated from protobuf field string locality = 7; + * @param string $var + * @return $this + */ + public function setLocality($var) + { + GPBUtil::checkString($var, True); + $this->locality = $var; + + return $this; + } + + /** + * Optional. Sublocality of the address. + * For example, this can be neighborhoods, boroughs, districts. + * + * Generated from protobuf field string sublocality = 8; + * @return string + */ + public function getSublocality() + { + return $this->sublocality; + } + + /** + * Optional. Sublocality of the address. + * For example, this can be neighborhoods, boroughs, districts. + * + * Generated from protobuf field string sublocality = 8; + * @param string $var + * @return $this + */ + public function setSublocality($var) + { + GPBUtil::checkString($var, True); + $this->sublocality = $var; + + return $this; + } + + /** + * Unstructured address lines describing the lower levels of an address. + * Because values in address_lines do not have type information and may + * sometimes contain multiple values in a single field (e.g. + * "Austin, TX"), it is important that the line order is clear. The order of + * address lines should be "envelope order" for the country/region of the + * address. In places where this can vary (e.g. Japan), address_language is + * used to make it explicit (e.g. "ja" for large-to-small ordering and + * "ja-Latn" or "en" for small-to-large). This way, the most specific line of + * an address can be selected based on the language. + * The minimum permitted structural representation of an address consists + * of a region_code with all remaining information placed in the + * address_lines. It would be possible to format such an address very + * approximately without geocoding, but no semantic reasoning could be + * made about any of the address components until it was at least + * partially resolved. + * Creating an address only containing a region_code and address_lines, and + * then geocoding is the recommended way to handle completely unstructured + * addresses (as opposed to guessing which parts of the address should be + * localities or administrative areas). + * + * Generated from protobuf field repeated string address_lines = 9; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getAddressLines() + { + return $this->address_lines; + } + + /** + * Unstructured address lines describing the lower levels of an address. + * Because values in address_lines do not have type information and may + * sometimes contain multiple values in a single field (e.g. + * "Austin, TX"), it is important that the line order is clear. The order of + * address lines should be "envelope order" for the country/region of the + * address. In places where this can vary (e.g. Japan), address_language is + * used to make it explicit (e.g. "ja" for large-to-small ordering and + * "ja-Latn" or "en" for small-to-large). This way, the most specific line of + * an address can be selected based on the language. + * The minimum permitted structural representation of an address consists + * of a region_code with all remaining information placed in the + * address_lines. It would be possible to format such an address very + * approximately without geocoding, but no semantic reasoning could be + * made about any of the address components until it was at least + * partially resolved. + * Creating an address only containing a region_code and address_lines, and + * then geocoding is the recommended way to handle completely unstructured + * addresses (as opposed to guessing which parts of the address should be + * localities or administrative areas). + * + * Generated from protobuf field repeated string address_lines = 9; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setAddressLines($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->address_lines = $arr; + + return $this; + } + + /** + * Optional. The recipient at the address. + * This field may, under certain circumstances, contain multiline information. + * For example, it might contain "care of" information. + * + * Generated from protobuf field repeated string recipients = 10; + * @return \Google\Protobuf\Internal\RepeatedField + */ + public function getRecipients() + { + return $this->recipients; + } + + /** + * Optional. The recipient at the address. + * This field may, under certain circumstances, contain multiline information. + * For example, it might contain "care of" information. + * + * Generated from protobuf field repeated string recipients = 10; + * @param array|\Google\Protobuf\Internal\RepeatedField $var + * @return $this + */ + public function setRecipients($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->recipients = $arr; + + return $this; + } + + /** + * Optional. The name of the organization at the address. + * + * Generated from protobuf field string organization = 11; + * @return string + */ + public function getOrganization() + { + return $this->organization; + } + + /** + * Optional. The name of the organization at the address. + * + * Generated from protobuf field string organization = 11; + * @param string $var + * @return $this + */ + public function setOrganization($var) + { + GPBUtil::checkString($var, True); + $this->organization = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/Quaternion.php b/vendor/google/common-protos/src/Type/Quaternion.php new file mode 100644 index 0000000..f3c316d --- /dev/null +++ b/vendor/google/common-protos/src/Type/Quaternion.php @@ -0,0 +1,211 @@ +google.type.Quaternion + */ +class Quaternion extends \Google\Protobuf\Internal\Message +{ + /** + * The x component. + * + * Generated from protobuf field double x = 1; + */ + protected $x = 0.0; + /** + * The y component. + * + * Generated from protobuf field double y = 2; + */ + protected $y = 0.0; + /** + * The z component. + * + * Generated from protobuf field double z = 3; + */ + protected $z = 0.0; + /** + * The scalar component. + * + * Generated from protobuf field double w = 4; + */ + protected $w = 0.0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type float $x + * The x component. + * @type float $y + * The y component. + * @type float $z + * The z component. + * @type float $w + * The scalar component. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Quaternion::initOnce(); + parent::__construct($data); + } + + /** + * The x component. + * + * Generated from protobuf field double x = 1; + * @return float + */ + public function getX() + { + return $this->x; + } + + /** + * The x component. + * + * Generated from protobuf field double x = 1; + * @param float $var + * @return $this + */ + public function setX($var) + { + GPBUtil::checkDouble($var); + $this->x = $var; + + return $this; + } + + /** + * The y component. + * + * Generated from protobuf field double y = 2; + * @return float + */ + public function getY() + { + return $this->y; + } + + /** + * The y component. + * + * Generated from protobuf field double y = 2; + * @param float $var + * @return $this + */ + public function setY($var) + { + GPBUtil::checkDouble($var); + $this->y = $var; + + return $this; + } + + /** + * The z component. + * + * Generated from protobuf field double z = 3; + * @return float + */ + public function getZ() + { + return $this->z; + } + + /** + * The z component. + * + * Generated from protobuf field double z = 3; + * @param float $var + * @return $this + */ + public function setZ($var) + { + GPBUtil::checkDouble($var); + $this->z = $var; + + return $this; + } + + /** + * The scalar component. + * + * Generated from protobuf field double w = 4; + * @return float + */ + public function getW() + { + return $this->w; + } + + /** + * The scalar component. + * + * Generated from protobuf field double w = 4; + * @param float $var + * @return $this + */ + public function setW($var) + { + GPBUtil::checkDouble($var); + $this->w = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/TimeOfDay.php b/vendor/google/common-protos/src/Type/TimeOfDay.php new file mode 100644 index 0000000..4ab91e0 --- /dev/null +++ b/vendor/google/common-protos/src/Type/TimeOfDay.php @@ -0,0 +1,180 @@ +google.type.TimeOfDay + */ +class TimeOfDay extends \Google\Protobuf\Internal\Message +{ + /** + * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose + * to allow the value "24:00:00" for scenarios like business closing time. + * + * Generated from protobuf field int32 hours = 1; + */ + protected $hours = 0; + /** + * Minutes of hour of day. Must be from 0 to 59. + * + * Generated from protobuf field int32 minutes = 2; + */ + protected $minutes = 0; + /** + * Seconds of minutes of the time. Must normally be from 0 to 59. An API may + * allow the value 60 if it allows leap-seconds. + * + * Generated from protobuf field int32 seconds = 3; + */ + protected $seconds = 0; + /** + * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. + * + * Generated from protobuf field int32 nanos = 4; + */ + protected $nanos = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type int $hours + * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose + * to allow the value "24:00:00" for scenarios like business closing time. + * @type int $minutes + * Minutes of hour of day. Must be from 0 to 59. + * @type int $seconds + * Seconds of minutes of the time. Must normally be from 0 to 59. An API may + * allow the value 60 if it allows leap-seconds. + * @type int $nanos + * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Timeofday::initOnce(); + parent::__construct($data); + } + + /** + * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose + * to allow the value "24:00:00" for scenarios like business closing time. + * + * Generated from protobuf field int32 hours = 1; + * @return int + */ + public function getHours() + { + return $this->hours; + } + + /** + * Hours of day in 24 hour format. Should be from 0 to 23. An API may choose + * to allow the value "24:00:00" for scenarios like business closing time. + * + * Generated from protobuf field int32 hours = 1; + * @param int $var + * @return $this + */ + public function setHours($var) + { + GPBUtil::checkInt32($var); + $this->hours = $var; + + return $this; + } + + /** + * Minutes of hour of day. Must be from 0 to 59. + * + * Generated from protobuf field int32 minutes = 2; + * @return int + */ + public function getMinutes() + { + return $this->minutes; + } + + /** + * Minutes of hour of day. Must be from 0 to 59. + * + * Generated from protobuf field int32 minutes = 2; + * @param int $var + * @return $this + */ + public function setMinutes($var) + { + GPBUtil::checkInt32($var); + $this->minutes = $var; + + return $this; + } + + /** + * Seconds of minutes of the time. Must normally be from 0 to 59. An API may + * allow the value 60 if it allows leap-seconds. + * + * Generated from protobuf field int32 seconds = 3; + * @return int + */ + public function getSeconds() + { + return $this->seconds; + } + + /** + * Seconds of minutes of the time. Must normally be from 0 to 59. An API may + * allow the value 60 if it allows leap-seconds. + * + * Generated from protobuf field int32 seconds = 3; + * @param int $var + * @return $this + */ + public function setSeconds($var) + { + GPBUtil::checkInt32($var); + $this->seconds = $var; + + return $this; + } + + /** + * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. + * + * Generated from protobuf field int32 nanos = 4; + * @return int + */ + public function getNanos() + { + return $this->nanos; + } + + /** + * Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. + * + * Generated from protobuf field int32 nanos = 4; + * @param int $var + * @return $this + */ + public function setNanos($var) + { + GPBUtil::checkInt32($var); + $this->nanos = $var; + + return $this; + } + +} + diff --git a/vendor/google/common-protos/src/Type/TimeZone.php b/vendor/google/common-protos/src/Type/TimeZone.php new file mode 100644 index 0000000..064bc32 --- /dev/null +++ b/vendor/google/common-protos/src/Type/TimeZone.php @@ -0,0 +1,102 @@ +google.type.TimeZone + */ +class TimeZone extends \Google\Protobuf\Internal\Message +{ + /** + * IANA Time Zone Database time zone, e.g. "America/New_York". + * + * Generated from protobuf field string id = 1; + */ + protected $id = ''; + /** + * Optional. IANA Time Zone Database version number, e.g. "2019a". + * + * Generated from protobuf field string version = 2; + */ + protected $version = ''; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $id + * IANA Time Zone Database time zone, e.g. "America/New_York". + * @type string $version + * Optional. IANA Time Zone Database version number, e.g. "2019a". + * } + */ + public function __construct($data = NULL) { + \GPBMetadata\Google\Type\Datetime::initOnce(); + parent::__construct($data); + } + + /** + * IANA Time Zone Database time zone, e.g. "America/New_York". + * + * Generated from protobuf field string id = 1; + * @return string + */ + public function getId() + { + return $this->id; + } + + /** + * IANA Time Zone Database time zone, e.g. "America/New_York". + * + * Generated from protobuf field string id = 1; + * @param string $var + * @return $this + */ + public function setId($var) + { + GPBUtil::checkString($var, True); + $this->id = $var; + + return $this; + } + + /** + * Optional. IANA Time Zone Database version number, e.g. "2019a". + * + * Generated from protobuf field string version = 2; + * @return string + */ + public function getVersion() + { + return $this->version; + } + + /** + * Optional. IANA Time Zone Database version number, e.g. "2019a". + * + * Generated from protobuf field string version = 2; + * @param string $var + * @return $this + */ + public function setVersion($var) + { + GPBUtil::checkString($var, True); + $this->version = $var; + + return $this; + } + +} + diff --git a/vendor/google/gax/.repo-metadata.json b/vendor/google/gax/.repo-metadata.json new file mode 100644 index 0000000..2fe16da --- /dev/null +++ b/vendor/google/gax/.repo-metadata.json @@ -0,0 +1,7 @@ +{ + "language": "php", + "distribution_name": "google/gax", + "release_level": "stable", + "client_documentation": "https://cloud.google.com/php/docs/reference/gax/latest", + "library_type": "CORE" +} diff --git a/vendor/google/gax/CHANGELOG.md b/vendor/google/gax/CHANGELOG.md new file mode 100644 index 0000000..d296e0d --- /dev/null +++ b/vendor/google/gax/CHANGELOG.md @@ -0,0 +1,371 @@ +# Changelog + +## [1.38.0](https://github.com/googleapis/gax-php/compare/v1.37.0...v1.38.0) (2025-09-17) + + +### Features + +* Add the rpcName to the BIDI stream opening request ([#630](https://github.com/googleapis/gax-php/issues/630)) ([9c61d8f](https://github.com/googleapis/gax-php/commit/9c61d8f2bd09731d5f22c22eb81895eaf4db2031)) +* Make options classes fluid ([#618](https://github.com/googleapis/gax-php/issues/618)) ([427b46e](https://github.com/googleapis/gax-php/commit/427b46e91b3881fd0da361b5b351c6dda47e640a)) + + +### Bug Fixes + +* Update protobuf RepeatedField to new namespace ([#624](https://github.com/googleapis/gax-php/issues/624)) ([3558cc4](https://github.com/googleapis/gax-php/commit/3558cc49139861fa411c77b33f457467ec8daa97)) + +## [1.37.0](https://github.com/googleapis/gax-php/compare/v1.36.1...v1.37.0) (2025-09-10) + + +### Features + +* Support client options in ClientOptionsTrait::buildClientOptions ([#621](https://github.com/googleapis/gax-php/issues/621)) ([68e2336](https://github.com/googleapis/gax-php/commit/68e23369657b1740fffe480f96d9d7b04e3e38c2)) + + +### Bug Fixes + +* Ensure compute request build parameters have the operation ID last ([#625](https://github.com/googleapis/gax-php/issues/625)) ([f90ab28](https://github.com/googleapis/gax-php/commit/f90ab28cea6bbbd00f2a652a6d77babb69b2ada8)) + +## [1.36.1](https://github.com/googleapis/gax-php/compare/v1.36.0...v1.36.1) (2025-05-20) + + +### Bug Fixes + +* Protobuf 4.31 deprecations ([#616](https://github.com/googleapis/gax-php/issues/616)) ([b06048b](https://github.com/googleapis/gax-php/commit/b06048be5c29a2534ba1c908642c69798e145d99)) + +## [1.36.0](https://github.com/googleapis/gax-php/compare/v1.35.1...v1.36.0) (2024-12-11) + + +### Features + +* Add logging to the supported transports ([#585](https://github.com/googleapis/gax-php/issues/585)) ([819a677](https://github.com/googleapis/gax-php/commit/819a677e0d89d75662b30a1dbdd45f6a610d9f0c)) + +## [1.35.1](https://github.com/googleapis/gax-php/compare/v1.35.0...v1.35.1) (2024-12-04) + + +### Bug Fixes + +* Ensure hasEmulator client option is passed to createTransport ([#594](https://github.com/googleapis/gax-php/issues/594)) ([13bbe8a](https://github.com/googleapis/gax-php/commit/13bbe8a2e6df2bfd6c5febba735113f1abcba201)) +* Remove implicit null, add php 8.4 ([#599](https://github.com/googleapis/gax-php/issues/599)) ([af0a0e7](https://github.com/googleapis/gax-php/commit/af0a0e708dfbea46de627965db0f63114fcfb67f)) + +## [1.35.0](https://github.com/googleapis/gax-php/compare/v1.34.1...v1.35.0) (2024-11-06) + + +### Features + +* Add `InsecureRequestBuilder` for emulator ([#582](https://github.com/googleapis/gax-php/issues/582)) ([cc1d047](https://github.com/googleapis/gax-php/commit/cc1d0472a1caf31bb3ecd98da1d6b8588f95b63a)) +* **docs:** Use doctum shared workflow for reference docs ([#578](https://github.com/googleapis/gax-php/issues/578)) ([021763f](https://github.com/googleapis/gax-php/commit/021763f255acaffda6ebe34a9d1a01c2bd187326)) +* Support for API Key client option ([#351](https://github.com/googleapis/gax-php/issues/351)) ([ab7f04f](https://github.com/googleapis/gax-php/commit/ab7f04fd8c9f7ed33a58155ae6b9e740f365ac2a)) + + +### Bug Fixes + +* **tests:** Skip docs tests from forks ([#591](https://github.com/googleapis/gax-php/issues/591)) ([35ae9f7](https://github.com/googleapis/gax-php/commit/35ae9f708d3ef937308d266e3a012296ce8606fc)) + +## [1.34.1](https://github.com/googleapis/gax-php/compare/v1.34.0...v1.34.1) (2024-08-13) + + +### Bug Fixes + +* Disable universe domain check for MDS ([#575](https://github.com/googleapis/gax-php/issues/575)) ([a47a469](https://github.com/googleapis/gax-php/commit/a47a469d9ef76613c5d320539646323a5e7b978d)) + +## [1.34.0](https://github.com/googleapis/gax-php/compare/v1.33.0...v1.34.0) (2024-05-29) + + +### Features + +* Support new surface operations clients ([#569](https://github.com/googleapis/gax-php/issues/569)) ([fa06e73](https://github.com/googleapis/gax-php/commit/fa06e738fc63a3b9f70a26e6d20f30c582ef1870)) + +## [1.33.0](https://github.com/googleapis/gax-php/compare/v1.32.0...v1.33.0) (2024-05-10) + + +### Features + +* Support V2 OperationsClient in OperationResponse ([#564](https://github.com/googleapis/gax-php/issues/564)) ([7f8bb13](https://github.com/googleapis/gax-php/commit/7f8bb13f78463b1e7f2289ce5514763992806e5e)) + +## [1.32.0](https://github.com/googleapis/gax-php/compare/v1.31.0...v1.32.0) (2024-04-24) + + +### Features + +* Add a custom encoder in Serializer ([#554](https://github.com/googleapis/gax-php/issues/554)) ([be28b5a](https://github.com/googleapis/gax-php/commit/be28b5a859b674a3d398bdaab7ed86b93dd7a593)) + +## [1.31.0](https://github.com/googleapis/gax-php/compare/v1.30.1...v1.31.0) (2024-04-22) + + +### Features + +* Add the api header to the GapicClientTrait ([#553](https://github.com/googleapis/gax-php/issues/553)) ([cc102eb](https://github.com/googleapis/gax-php/commit/cc102ebdfd63019b1e6bcd51515be2a2cb13534d)) + + +### Bug Fixes + +* Add caching and micro optimizations in Serializer ([5a5d8a7](https://github.com/googleapis/gax-php/commit/5a5d8a763d8e2d470a6d960b788e7d2a938cd64f)) +* Pass auth http handler to update metadata call ([#557](https://github.com/googleapis/gax-php/issues/557)) ([6e04a50](https://github.com/googleapis/gax-php/commit/6e04a50d013f5686ec5e66c457b9b440b9bcde9e)) + +## [1.30.0](https://github.com/googleapis/gax-php/compare/v1.29.1...v1.30.0) (2024-02-28) + + +### Features + +* Auto Populate fields configured for auto population in Rpc Request Message ([#543](https://github.com/googleapis/gax-php/issues/543)) ([99d6b89](https://github.com/googleapis/gax-php/commit/99d6b899ddf55d51fab976844c1e0f8fe9918a52)) +* Make the default authHttpHandler in CredentialsWrapper null ([#544](https://github.com/googleapis/gax-php/issues/544)) ([2a25eea](https://github.com/googleapis/gax-php/commit/2a25eeacadf2f783f64b4eca4f94e067ddef3eaa)) + +## [1.29.1](https://github.com/googleapis/gax-php/compare/v1.29.0...v1.29.1) (2024-02-26) + + +### Bug Fixes + +* Allow InsecureCredentialsWrapper::getAuthorizationHeaderCallback to return null ([#541](https://github.com/googleapis/gax-php/issues/541)) ([676f4f7](https://github.com/googleapis/gax-php/commit/676f4f7e3d8925d8aba00285616fdf89440b45f9)) + +## [1.29.0](https://github.com/googleapis/gax-php/compare/v1.28.1...v1.29.0) (2024-02-26) + + +### Features + +* Add InsecureCredentialsWrapper for Emulator connection ([#538](https://github.com/googleapis/gax-php/issues/538)) ([b5dbeaf](https://github.com/googleapis/gax-php/commit/b5dbeaf33594b300a0c678ffc6a6946b09fce7dd)) + +## [1.28.1](https://github.com/googleapis/gax-php/compare/v1.28.0...v1.28.1) (2024-02-20) + + +### Bug Fixes + +* Universe domain check for grpc transport ([#534](https://github.com/googleapis/gax-php/issues/534)) ([1026d8a](https://github.com/googleapis/gax-php/commit/1026d8aec73e0aad8949a86ee7575e3edb3d56be)) + +## [1.28.0](https://github.com/googleapis/gax-php/compare/v1.27.2...v1.28.0) (2024-02-15) + + +### Features + +* Allow setting of universe domain in environment variable ([#520](https://github.com/googleapis/gax-php/issues/520)) ([6e6603b](https://github.com/googleapis/gax-php/commit/6e6603b03285f3f8d1072776cd206720e3990f50)) + +## [1.27.2](https://github.com/googleapis/gax-php/compare/v1.27.1...v1.27.2) (2024-02-14) + + +### Bug Fixes + +* Typo in TransportOptions option name ([#530](https://github.com/googleapis/gax-php/issues/530)) ([6914fe0](https://github.com/googleapis/gax-php/commit/6914fe04554867bd827be6596fafc751a3d7621a)) + +## [1.27.1](https://github.com/googleapis/gax-php/compare/v1.27.0...v1.27.1) (2024-02-14) + + +### Bug Fixes + +* Issues in Options classes ([#528](https://github.com/googleapis/gax-php/issues/528)) ([aa9ba3a](https://github.com/googleapis/gax-php/commit/aa9ba3a6bac9324ad894d9677da0e897497ebab2)) + +## [1.27.0](https://github.com/googleapis/gax-php/compare/v1.26.3...v1.27.0) (2024-02-07) + + +### Features + +* Create ClientOptionsTrait ([#527](https://github.com/googleapis/gax-php/issues/527)) ([cfe2c60](https://github.com/googleapis/gax-php/commit/cfe2c60a36233f74259c96a6799d8492ed7c45d0)) +* Implement ProjectIdProviderInterface in CredentialsWrapper ([#523](https://github.com/googleapis/gax-php/issues/523)) ([b56a463](https://github.com/googleapis/gax-php/commit/b56a4635abfeeec08895202da8218e9ba915413e)) +* Update ArrayTrait to be consistent with Core ([#526](https://github.com/googleapis/gax-php/issues/526)) ([8e44185](https://github.com/googleapis/gax-php/commit/8e44185dd6f8f8f9ef5b136776cba61ec7a8b8f6)) + + +### Bug Fixes + +* Correct exception type for Guzzle promise ([#521](https://github.com/googleapis/gax-php/issues/521)) ([7129373](https://github.com/googleapis/gax-php/commit/712937339c134e1d92cab5fa736cfe1bbcd7f343)) + +## [1.26.3](https://github.com/googleapis/gax-php/compare/v1.26.2...v1.26.3) (2024-01-18) + + +### Bug Fixes + +* CallOptions should use transportOptions ([#513](https://github.com/googleapis/gax-php/issues/513)) ([2d45ee1](https://github.com/googleapis/gax-php/commit/2d45ee187cdc3619b30c51b653b508718baf3af4)) + +## [1.26.2](https://github.com/googleapis/gax-php/compare/v1.26.1...v1.26.2) (2024-01-09) + + +### Bug Fixes + +* Ensure modifyClientOptions is called for new surface clients ([#515](https://github.com/googleapis/gax-php/issues/515)) ([68231b8](https://github.com/googleapis/gax-php/commit/68231b896dec8efb86f8986aefba3d247d2a2d1c)) + +## [1.26.1](https://github.com/googleapis/gax-php/compare/v1.26.0...v1.26.1) (2024-01-04) + + +### Bug Fixes + +* Widen google/longrunning version ([#511](https://github.com/googleapis/gax-php/issues/511)) ([b93096d](https://github.com/googleapis/gax-php/commit/b93096d0e10bde14c50480ea9f0423c292fbd5a6)) + +## [1.26.0](https://github.com/googleapis/gax-php/compare/v1.25.0...v1.26.0) (2024-01-03) + + +### Features + +* Add support for universe domain ([#502](https://github.com/googleapis/gax-php/issues/502)) ([5a26fac](https://github.com/googleapis/gax-php/commit/5a26facad5c2e5c30945987c422bb78a3fffb9b1)) +* Interface and methods for middleware stack ([#473](https://github.com/googleapis/gax-php/issues/473)) ([766da7b](https://github.com/googleapis/gax-php/commit/766da7b369409ec1b29376b533e7f22ee7f745f4)) + + +### Bug Fixes + +* Accept throwable for retry settings ([#509](https://github.com/googleapis/gax-php/issues/509)) ([5af9c3c](https://github.com/googleapis/gax-php/commit/5af9c3c650419c8f1a590783e954cd11dc1f0d56)) + +## [1.25.0](https://github.com/googleapis/gax-php/compare/v1.24.0...v1.25.0) (2023-11-02) + + +### Features + +* Add custom retries ([#489](https://github.com/googleapis/gax-php/issues/489)) ([ef0789b](https://github.com/googleapis/gax-php/commit/ef0789b73ef28d79a08c354d1361a9ccc6206088)) + +## [1.24.0](https://github.com/googleapis/gax-php/compare/v1.23.0...v1.24.0) (2023-10-10) + + +### Features + +* Ensure NewClientSurface works for consoldiated v2 clients ([#493](https://github.com/googleapis/gax-php/issues/493)) ([cb8706e](https://github.com/googleapis/gax-php/commit/cb8706ef9211a1e43f733d2c8f272a330c2fa792)) + +## [1.23.0](https://github.com/googleapis/gax-php/compare/v1.22.1...v1.23.0) (2023-09-14) + + +### Features + +* Typesafety for new surface client options ([#450](https://github.com/googleapis/gax-php/issues/450)) ([21550c5](https://github.com/googleapis/gax-php/commit/21550c5bf07f178f2043b0630f3ac34fcc3a05e0)) + +## [1.22.1](https://github.com/googleapis/gax-php/compare/v1.22.0...v1.22.1) (2023-08-04) + + +### Bug Fixes + +* Deprecation notice while GapicClientTrait->setClientOptions ([#483](https://github.com/googleapis/gax-php/issues/483)) ([1c66d34](https://github.com/googleapis/gax-php/commit/1c66d3445dca4d43831a2f4e26e59b9bd1cb76dd)) + +## [1.22.0](https://github.com/googleapis/gax-php/compare/v1.21.1...v1.22.0) (2023-07-31) + + +### Features + +* Sets api headers for "gcloud-php-new" and "gcloud-php-legacy" surface versions ([#470](https://github.com/googleapis/gax-php/issues/470)) ([2d8ccff](https://github.com/googleapis/gax-php/commit/2d8ccff419a076ee2fe9d3dc7ecd5509c74afb4c)) + +## [1.21.1](https://github.com/googleapis/gax-php/compare/v1.21.0...v1.21.1) (2023-06-28) + + +### Bug Fixes + +* Revert "chore: remove unnecessary api endpoint check" ([#476](https://github.com/googleapis/gax-php/issues/476)) ([13e773f](https://github.com/googleapis/gax-php/commit/13e773f5b09f9a99b8425835815746d37e9c1da3)) + +## [1.21.0](https://github.com/googleapis/gax-php/compare/v1.20.2...v1.21.0) (2023-06-09) + + +### Features + +* Support guzzle/promises:v2 ([753eae9](https://github.com/googleapis/gax-php/commit/753eae9acf638f3356f8149acf84444eb399a699)) + +## [1.20.2](https://github.com/googleapis/gax-php/compare/v1.20.1...v1.20.2) (2023-05-12) + + +### Bug Fixes + +* Ensure timeout set by RetryMiddleware is int not float ([#462](https://github.com/googleapis/gax-php/issues/462)) ([9d4c7fa](https://github.com/googleapis/gax-php/commit/9d4c7fa89445c63ec0bf4745ed9d98fd185ef51f)) + +## [1.20.1](https://github.com/googleapis/gax-php/compare/v1.20.0...v1.20.1) (2023-05-12) + + +### Bug Fixes + +* Default value for error message in createFromRequestException ([#463](https://github.com/googleapis/gax-php/issues/463)) ([7552d22](https://github.com/googleapis/gax-php/commit/7552d22241c2f488606e9546efdd6edea356ee9a)) + +## [1.20.0](https://github.com/googleapis/gax-php/compare/v1.19.1...v1.20.0) (2023-05-01) + + +### Features + +* **deps:** Support google/common-protos 4.0 ([af1db80](https://github.com/googleapis/gax-php/commit/af1db80c22307597f0dfcb9fafa86caf466588ba)) +* **deps:** Support google/grpc-gcp 0.3 ([18edc2c](https://github.com/googleapis/gax-php/commit/18edc2ce6a1a615e3ea7c00ede313c32cec4b799)) + +## [1.19.1](https://github.com/googleapis/gax-php/compare/v1.19.0...v1.19.1) (2023-03-16) + + +### Bug Fixes + +* Simplify ResourceHelperTrait registration ([#447](https://github.com/googleapis/gax-php/issues/447)) ([4949dc0](https://github.com/googleapis/gax-php/commit/4949dc0c4cd5e58af7933a1d2ecab90832c0b036)) + +## [1.19.0](https://github.com/googleapis/gax-php/compare/v1.18.2...v1.19.0) (2023-01-27) + + +### Features + +* Ensure cache is used in calls to ADC::onGCE ([#441](https://github.com/googleapis/gax-php/issues/441)) ([64a4184](https://github.com/googleapis/gax-php/commit/64a4184ab69d13104d269b15a55d4b8b2515b5a6)) + +## [1.18.2](https://github.com/googleapis/gax-php/compare/v1.18.1...v1.18.2) (2023-01-06) + + +### Bug Fixes + +* Ensure metadata return type is loaded into descriptor pool ([#439](https://github.com/googleapis/gax-php/issues/439)) ([a40cf8d](https://github.com/googleapis/gax-php/commit/a40cf8d87ac9aa45d18239456e2e4c96653f1a6c)) +* Implicit conversion from float to int warning ([#438](https://github.com/googleapis/gax-php/issues/438)) ([1cb62ad](https://github.com/googleapis/gax-php/commit/1cb62ad3d92ace0518017abc972e912b339f1b56)) + +## [1.18.1](https://github.com/googleapis/gax-php/compare/v1.18.0...v1.18.1) (2022-12-06) + + +### Bug Fixes + +* Message parameters in required querystring ([#430](https://github.com/googleapis/gax-php/issues/430)) ([77bc5e1](https://github.com/googleapis/gax-php/commit/77bc5e1cb8f347601d9237bf5164cf8b8ad8aa0f)) + +## [1.18.0](https://github.com/googleapis/gax-php/compare/v1.17.0...v1.18.0) (2022-12-05) + + +### Features + +* Add ResourceHelperTrait ([#428](https://github.com/googleapis/gax-php/issues/428)) ([0439efa](https://github.com/googleapis/gax-php/commit/0439efa926865be5fea25b699469b0c1f8c1c768)) + +## [1.17.0](https://github.com/googleapis/gax-php/compare/v1.16.4...v1.17.0) (2022-09-08) + + +### Features + +* Add startAsyncCall support ([#418](https://github.com/googleapis/gax-php/issues/418)) ([fc90693](https://github.com/googleapis/gax-php/commit/fc9069373c329183e07f8d174084c305b2308209)) + +## [1.16.4](https://github.com/googleapis/gax-php/compare/v1.16.3...v1.16.4) (2022-08-25) + + +### Bug Fixes + +* use interfaceOverride instead of param ([#419](https://github.com/googleapis/gax-php/issues/419)) ([9dd5bc9](https://github.com/googleapis/gax-php/commit/9dd5bc91c4becfd2a0832288ab2406c3d224618e)) + +## [1.16.3](https://github.com/googleapis/gax-php/compare/v1.16.2...v1.16.3) (2022-08-23) + + +### Bug Fixes + +* add eager threshold ([#416](https://github.com/googleapis/gax-php/issues/416)) ([99eb172](https://github.com/googleapis/gax-php/commit/99eb172280f301b117fde9dcc92079ca03aa28bd)) + +## [1.16.2](https://github.com/googleapis/gax-php/compare/v1.16.1...v1.16.2) (2022-08-16) + + +### Bug Fixes + +* use responseType for custom operations ([#413](https://github.com/googleapis/gax-php/issues/413)) ([b643adf](https://github.com/googleapis/gax-php/commit/b643adfc44dd9fe82b0919e5b34edd00c7cdbb1f)) + +## [1.16.1](https://github.com/googleapis/gax-php/compare/v1.16.0...v1.16.1) (2022-08-11) + + +### Bug Fixes + +* remove typehint from extended method ([#411](https://github.com/googleapis/gax-php/issues/411)) ([fb37f73](https://github.com/googleapis/gax-php/commit/fb37f7365e888465d84fca304ca83360ddbae6c3)) + +## [1.16.0](https://github.com/googleapis/gax-php/compare/v1.15.0...v1.16.0) (2022-08-10) + + +### Features + +* additional typehinting ([#403](https://github.com/googleapis/gax-php/issues/403)) ([6597a07](https://github.com/googleapis/gax-php/commit/6597a07019665d91e07ea0a016c7d99c8a099cd2)) +* drop support for PHP 5.6 ([#397](https://github.com/googleapis/gax-php/issues/397)) ([b888b24](https://github.com/googleapis/gax-php/commit/b888b24e0e223784e22dbbbe27fe0284cdcdfc35)) +* introduce startApiCall ([#406](https://github.com/googleapis/gax-php/issues/406)) ([1cfeb62](https://github.com/googleapis/gax-php/commit/1cfeb628070c9c6e57b2dde854b0a973a888a2bc)) + + +### Bug Fixes + +* **deps:** update dependency google/longrunning to ^0.2 ([#407](https://github.com/googleapis/gax-php/issues/407)) ([54d4f32](https://github.com/googleapis/gax-php/commit/54d4f32ba5464d1f5da33e1c99a020174cae367c)) + +## [1.15.0](https://github.com/googleapis/gax-php/compare/v1.14.0...v1.15.0) (2022-08-02) + + +### Features + +* move LongRunning classes to a standalone package ([#401](https://github.com/googleapis/gax-php/issues/401)) ([1747125](https://github.com/googleapis/gax-php/commit/1747125c84dcc6d42390de7e78d2e326884e1073)) + +## [1.14.0](https://github.com/googleapis/gax-php/compare/v1.13.0...v1.14.0) (2022-07-26) + + +### Features + +* support requesting numeric enum rest encoding ([#395](https://github.com/googleapis/gax-php/issues/395)) ([0d74a48](https://github.com/googleapis/gax-php/commit/0d74a4877c5198cfaf534c4e55d7e418b50bc6ab)) diff --git a/vendor/google/gax/CODE_OF_CONDUCT.md b/vendor/google/gax/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..46b2a08 --- /dev/null +++ b/vendor/google/gax/CODE_OF_CONDUCT.md @@ -0,0 +1,43 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, +and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, +posting feature requests, updating documentation, +submitting pull requests or patches, and other activities. + +We are committed to making participation in this project +a harassment-free experience for everyone, +regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, +body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, +such as physical or electronic +addresses, without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, +project maintainers commit themselves to fairly and consistently +applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct +may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior +may be reported by opening an issue +or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, +available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) diff --git a/vendor/google/gax/LICENSE b/vendor/google/gax/LICENSE new file mode 100644 index 0000000..1839ff9 --- /dev/null +++ b/vendor/google/gax/LICENSE @@ -0,0 +1,25 @@ +Copyright 2016, Google Inc. +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/google/gax/README.md b/vendor/google/gax/README.md new file mode 100644 index 0000000..6a6c017 --- /dev/null +++ b/vendor/google/gax/README.md @@ -0,0 +1,97 @@ +# Google API Core for PHP + +![Build Status](https://github.com/googleapis/gax-php/actions/workflows/tests.yml/badge.svg) + +- [Documentation](https://cloud.google.com/php/docs/reference/gax/latest) + +Google API Core for PHP (gax-php) is a set of modules which aids the development +of APIs for clients based on [gRPC][] and Google API conventions. + +Application code will rarely need to use most of the classes within this library +directly, but code generated automatically from the API definition files in +[Google APIs][] can use services such as page streaming and retry to provide a +more convenient and idiomatic API surface to callers. + +[gRPC]: http://grpc.io +[Google APIs]: https://github.com/googleapis/googleapis/ + +## PHP Versions + +gax-php currently requires PHP 8.1 or higher. + +## Contributing + +Contributions to this library are always welcome and highly encouraged. + +See the [CONTRIBUTING][] documentation for more information on how to get +started. + +[CONTRIBUTING]: https://github.com/googleapis/gax-php/blob/main/.github/CONTRIBUTING.md + +## Versioning + +This library follows [Semantic Versioning][]. + +This library is considered GA (generally available). As such, it will not +introduce backwards-incompatible changes in any minor or patch releases. We will +address issues and requests with the highest priority. + +[Semantic Versioning]: http://semver.org/ + +## Repository Structure + +All code lives under the src/ directory. Handwritten code lives in the +src/ApiCore directory and is contained in the `Google\ApiCore` namespace. + +Generated classes for protobuf common types and LongRunning client live under +the src/ directory, in the appropriate directory and namespace. + +Code in the metadata/ directory is provided to support generated protobuf +classes, and should not be used directly. + +## Development Set-Up + +These steps describe the dependencies to install for Linux, and equivalents can +be found for Mac or Windows. + +1. Install dependencies. + + ```sh + > cd ~/ + > sudo apt-get install php php-dev libcurl3-openssl-dev php-pear php-bcmath php-xml + > curl -sS https://getcomposer.org/installer | php + > sudo pecl install protobuf + ``` + +2. Set up this repo. + + ```sh + > cd /path/to/gax-php + > composer install + ``` + +3. Run tests. + + ```sh + > composer test + ``` + +4. Updating dependencies after changing `composer.json`: + + ```sh + > composer update + ` + ``` + +5. Formatting source: + + ```sh + > composer cs-lint + > composer cs-fix + ``` + +## License + +BSD - See [LICENSE][] for more information. + +[LICENSE]: https://github.com/googleapis/gax-php/blob/main/LICENSE diff --git a/vendor/google/gax/SECURITY.md b/vendor/google/gax/SECURITY.md new file mode 100644 index 0000000..8b58ae9 --- /dev/null +++ b/vendor/google/gax/SECURITY.md @@ -0,0 +1,7 @@ +# Security Policy + +To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). + +The Google Security Team will respond within 5 working days of your report on g.co/vulnz. + +We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. diff --git a/vendor/google/gax/VERSION b/vendor/google/gax/VERSION new file mode 100644 index 0000000..ebeef2f --- /dev/null +++ b/vendor/google/gax/VERSION @@ -0,0 +1 @@ +1.38.0 diff --git a/vendor/google/gax/composer.json b/vendor/google/gax/composer.json new file mode 100644 index 0000000..652f0cf --- /dev/null +++ b/vendor/google/gax/composer.json @@ -0,0 +1,48 @@ +{ + "name": "google/gax", + "type": "library", + "description": "Google API Core for PHP", + "keywords": ["google"], + "homepage": "https://github.com/googleapis/gax-php", + "license": "BSD-3-Clause", + "require": { + "php": "^8.1", + "google/auth": "^1.45", + "google/grpc-gcp": "^0.4", + "grpc/grpc": "^1.13", + "google/protobuf": "^4.31", + "guzzlehttp/promises": "^2.0", + "guzzlehttp/psr7": "^2.0", + "google/common-protos": "^4.4", + "google/longrunning": "~0.4", + "ramsey/uuid": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "4.*", + "phpspec/prophecy-phpunit": "^2.1", + "phpstan/phpstan": "^2.0" + }, + "conflict": { + "ext-protobuf": "<4.31.0" + }, + "autoload": { + "psr-4": { + "Google\\ApiCore\\": "src", + "GPBMetadata\\ApiCore\\": "metadata/ApiCore" + } + }, + "autoload-dev": { + "psr-4": { + "Google\\ApiCore\\Dev\\": "dev/src", + "Google\\ApiCore\\Tests\\": "tests", + "GPBMetadata\\Google\\": "metadata/Google" + } + }, + "scripts": { + "regenerate-test-protos": "dev/sh/regenerate-test-protos.sh", + "test": "./vendor/bin/phpunit", + "cs-lint": "vendor/bin/phpcs --standard=./ruleset.xml", + "cs-fix": "vendor/bin/phpcbf --standard=./ruleset.xml" + } +} diff --git a/vendor/google/gax/metadata/ApiCore/Testing/Mocks.php b/vendor/google/gax/metadata/ApiCore/Testing/Mocks.php new file mode 100644 index 0000000000000000000000000000000000000000..5dcb11f0c8c9ac1ccf4a99ae4fd82abdd745bc90 GIT binary patch literal 1988 zcmbW2ZEqVz5XZ@5>v7_cLrRadf+bXnE7}W9qJUgNRg*TYgh^B)cw@<0pV#gx=iTk? zUW-Bb2E67&@h#w!F#F((6~`4y-Z+|@-_Cz#XJ)^9s@^F0k{mO^a%xzQbVtOzVMOK9 z$W&&eTlD)ZC#f7Np0PY3wOPn#`fXpb7&ex~>jGH308JOM~Esx@g@6#f8$f2!zaJSEytgFpAV?r^~kry2hp zRUVQ)%``)D+P7bb)NmJNxN)B4_560hnh9GOf!~KFFSNyaYps>IUplfo*}syaD<%CZC!cfWPKcDVFQ&QFnol zzUSe(p7na=?YzJat(Wz*)!l}_D)7lQtr=|$-2Eq1@f3S8F}{5_Klk<>*TC2pJ7!!x z-_x6)U3KV%5{2*gu72094zuX@AzA-@Yagn13SP6f1qzBH07VC^W8^s#@f?|}SE6;O zIGe^vi09F?xb@E*tawZ-DKv{#V9}0VAZoBIieZ=K-aXoYTF(63>Q2VBi5JKMo_q(^ z1pCc&CPFT{kS$of1cp?_OXy$SJxH!EVlt^Ec|8u*qUyOY`Dk+w)~Ae76&B9fC@5Zq zrFS$de14V2{I_#ke=fn=L}{9`H~K$mDrVPOr*G#cr1=zT0*i}QoC}TRjcu0I-S+l} z^Kn<=;(iU)?g%@k<3%nx{O*_@w@%WuKEK#JqQ_7h_ep@39rWoGG@iI90dT52Lmd0~ zmUG{naxWJ{graaL4)(+Ow`YjLJ$JD0MPUSc`vIuTi0~u2c>i5k!DhxK9|&;7y(vvN z`RL@CM~=Zo5SXfC?p(*9Q?v(b<-i4EWrnVDtwmo!^_{J909GBaF%`lKT8CS{tdHXw zI#ynOgcB7^yYbpp(_Z|sH#JwGDg~2$-%HJJ{+{1B_HRh}pp9R&f9LN`F7v7H-DTG! ad)wu*dgz~uiI-*OtKvNU>c4;sfd2r@333$x literal 0 HcmV?d00001 diff --git a/vendor/google/gax/metadata/Google/ApiCore/Tests/Unit/Example.php b/vendor/google/gax/metadata/Google/ApiCore/Tests/Unit/Example.php new file mode 100644 index 0000000..d958e2b --- /dev/null +++ b/vendor/google/gax/metadata/Google/ApiCore/Tests/Unit/Example.php @@ -0,0 +1,28 @@ +internalAddGeneratedFile(hex2bin( + "0a85010a0d6578616d706c652e70726f746f1219676f6f676c652e617069" . + "636f72652e74657374732e756e6974220b0a094d794d6573736167654244" . + "ca0219476f6f676c655c417069436f72655c54657374735c556e6974e202" . + "254750424d657461646174615c476f6f676c655c417069436f72655c5465" . + "7374735c556e6974620670726f746f33" + )); + + static::$is_initialized = true; + } +} + diff --git a/vendor/google/gax/metadata/README.md b/vendor/google/gax/metadata/README.md new file mode 100644 index 0000000..1bd4155 --- /dev/null +++ b/vendor/google/gax/metadata/README.md @@ -0,0 +1,6 @@ +# Google Protobuf Metadata Classes + +## WARNING! + +These classes are not intended for direct use - they exist only to support +the generated protobuf classes in src/ diff --git a/vendor/google/gax/phpstan.neon.dist b/vendor/google/gax/phpstan.neon.dist new file mode 100644 index 0000000..dcef113 --- /dev/null +++ b/vendor/google/gax/phpstan.neon.dist @@ -0,0 +1,5 @@ +parameters: + treatPhpDocTypesAsCertain: false + level: 5 + paths: + - src diff --git a/vendor/google/gax/phpunit.xml.dist b/vendor/google/gax/phpunit.xml.dist new file mode 100644 index 0000000..825f7f7 --- /dev/null +++ b/vendor/google/gax/phpunit.xml.dist @@ -0,0 +1,16 @@ + + + + + + + + src/ApiCore + + + + + tests/Unit + + + diff --git a/vendor/google/gax/renovate.json b/vendor/google/gax/renovate.json new file mode 100644 index 0000000..6d81213 --- /dev/null +++ b/vendor/google/gax/renovate.json @@ -0,0 +1,7 @@ +{ + "extends": [ + "config:base", + ":preserveSemverRanges", + ":disableDependencyDashboard" + ] +} diff --git a/vendor/google/gax/src/AgentHeader.php b/vendor/google/gax/src/AgentHeader.php new file mode 100644 index 0000000..4fda2b0 --- /dev/null +++ b/vendor/google/gax/src/AgentHeader.php @@ -0,0 +1,132 @@ + $value) { + $metricsList[] = $key . '/' . $value; + } + return [self::AGENT_HEADER_KEY => [implode(' ', $metricsList)]]; + } + + /** + * Reads the gapic version string from a VERSION file. In order to determine the file + * location, this method follows this procedure: + * - accepts a class name $callingClass + * - identifies the file defining that class + * - searches up the directory structure for the 'src' directory + * - looks in the directory above 'src' for a file named VERSION + * + * @param string $callingClass + * @return string the gapic version + * @throws \ReflectionException + */ + public static function readGapicVersionFromFile(string $callingClass) + { + $callingClassFile = (new \ReflectionClass($callingClass))->getFileName(); + $versionFile = substr( + $callingClassFile, + 0, + strrpos($callingClassFile, DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR) + ) . DIRECTORY_SEPARATOR . 'VERSION'; + + return Version::readVersionFile($versionFile); + } +} diff --git a/vendor/google/gax/src/ApiException.php b/vendor/google/gax/src/ApiException.php new file mode 100644 index 0000000..5a3edd5 --- /dev/null +++ b/vendor/google/gax/src/ApiException.php @@ -0,0 +1,345 @@ + null, + 'metadata' => null, + 'basicMessage' => $message, + ]; + parent::__construct($message, $code, $optionalArgs['previous']); + $this->status = $status; + $this->metadata = $optionalArgs['metadata']; + $this->basicMessage = $optionalArgs['basicMessage']; + if ($this->metadata) { + $this->decodedMetadataErrorInfo = self::decodeMetadataErrorInfo($this->metadata); + } + } + + public function getStatus() + { + return $this->status; + } + + /** + * Returns null if metadata does not contain error info, or returns containsErrorInfo() array + * if the metadata does contain error info. + * @param array $metadata + * @return array $details { + * @type string|null $reason + * @type string|null $domain + * @type array|null $errorInfoMetadata + * } + */ + private static function decodeMetadataErrorInfo(array $metadata) + { + $details = []; + // ApiExceptions created from RPC status have metadata that is an array of objects. + if (is_object(reset($metadata))) { + $metadataRpcStatus = Serializer::decodeAnyMessages($metadata); + $details = self::containsErrorInfo($metadataRpcStatus); + } elseif (self::containsErrorInfo($metadata)) { + $details = self::containsErrorInfo($metadata); + } else { + // For GRPC-based responses, the $metadata needs to be decoded. + $metadataGrpc = Serializer::decodeMetadata($metadata); + $details = self::containsErrorInfo($metadataGrpc); + } + return $details; + } + + /** + * Returns the `reason` in ErrorInfo for an exception, or null if there is no ErrorInfo. + * @return string|null $reason + */ + public function getReason() + { + return ($this->decodedMetadataErrorInfo) ? $this->decodedMetadataErrorInfo['reason'] : null; + } + + /** + * Returns the `domain` in ErrorInfo for an exception, or null if there is no ErrorInfo. + * @return string|null $domain + */ + public function getDomain() + { + return ($this->decodedMetadataErrorInfo) ? $this->decodedMetadataErrorInfo['domain'] : null; + } + + /** + * Returns the `metadata` in ErrorInfo for an exception, or null if there is no ErrorInfo. + * @return array|null $errorInfoMetadata + */ + public function getErrorInfoMetadata() + { + return ($this->decodedMetadataErrorInfo) ? $this->decodedMetadataErrorInfo['errorInfoMetadata'] : null; + } + + /** + * @param stdClass $status + * @return ApiException + */ + public static function createFromStdClass(stdClass $status) + { + $metadata = property_exists($status, 'metadata') ? $status->metadata : null; + return self::create( + $status->details, + $status->code, + $metadata, + Serializer::decodeMetadata((array) $metadata) + ); + } + + /** + * @param string $basicMessage + * @param int $rpcCode + * @param array|null $metadata + * @param Exception $previous + * @return ApiException + */ + public static function createFromApiResponse( + $basicMessage, + $rpcCode, + ?array $metadata = null, + ?Exception $previous = null + ) { + return self::create( + $basicMessage, + $rpcCode, + $metadata, + Serializer::decodeMetadata((array) $metadata), + $previous + ); + } + + /** + * For REST-based responses, the metadata does not need to be decoded. + * + * @param string $basicMessage + * @param int $rpcCode + * @param array|null $metadata + * @param Exception $previous + * @return ApiException + */ + public static function createFromRestApiResponse( + $basicMessage, + $rpcCode, + ?array $metadata = null, + ?Exception $previous = null + ) { + return self::create( + $basicMessage, + $rpcCode, + $metadata, + is_null($metadata) ? [] : $metadata, + $previous + ); + } + + /** + * Checks if decoded metadata includes errorInfo message. + * If errorInfo is set, it will always contain `reason`, `domain`, and `metadata` keys. + * @param array $decodedMetadata + * @return array { + * @type string $reason + * @type string $domain + * @type array $errorInfoMetadata + * } + */ + private static function containsErrorInfo(array $decodedMetadata) + { + if (empty($decodedMetadata)) { + return []; + } + foreach ($decodedMetadata as $value) { + $isErrorInfoArray = isset($value['reason']) && isset($value['domain']) && isset($value['metadata']); + if ($isErrorInfoArray) { + return [ + 'reason' => $value['reason'], + 'domain' => $value['domain'], + 'errorInfoMetadata' => $value['metadata'], + ]; + } + } + return []; + } + + /** + * Construct an ApiException with a useful message, including decoded metadata. + * If the decoded metadata includes an errorInfo message, then the domain, reason, + * and metadata fields from that message are hoisted directly into the error. + * + * @param string $basicMessage + * @param int $rpcCode + * @param iterable|null $metadata + * @param array $decodedMetadata + * @param Exception|null $previous + * @return ApiException + */ + private static function create( + string $basicMessage, + int $rpcCode, + $metadata, + array $decodedMetadata, + ?Exception $previous = null + ) { + $containsErrorInfo = self::containsErrorInfo($decodedMetadata); + $rpcStatus = ApiStatus::statusFromRpcCode($rpcCode); + $messageData = [ + 'message' => $basicMessage, + 'code' => $rpcCode, + 'status' => $rpcStatus, + 'details' => $decodedMetadata + ]; + if ($containsErrorInfo) { + $messageData = array_merge($containsErrorInfo, $messageData); + } + + $message = json_encode($messageData, JSON_PRETTY_PRINT); + + if ($metadata instanceof RepeatedField) { + $metadata = iterator_to_array($metadata); + } + + return new ApiException($message, $rpcCode, $rpcStatus, [ + 'previous' => $previous, + 'metadata' => $metadata, + 'basicMessage' => $basicMessage, + ]); + } + + /** + * @param Status $status + * @return ApiException + */ + public static function createFromRpcStatus(Status $status) + { + return self::create( + $status->getMessage(), + $status->getCode(), + $status->getDetails(), + Serializer::decodeAnyMessages($status->getDetails()) + ); + } + + /** + * Creates an ApiException from a GuzzleHttp RequestException. + * + * @param RequestException $ex + * @param boolean $isStream + * @return ApiException + * @throws ValidationException + */ + public static function createFromRequestException(RequestException $ex, bool $isStream = false) + { + $res = $ex->getResponse(); + $body = (string) $res->getBody(); + $decoded = json_decode($body, true); + + // A streaming response body will return one error in an array. Parse + // that first (and only) error message, if provided. + if ($isStream && isset($decoded[0])) { + $decoded = $decoded[0]; + } + + if (isset($decoded['error']) && $decoded['error']) { + $error = $decoded['error']; + $basicMessage = $error['message'] ?? ''; + $code = isset($error['status']) + ? ApiStatus::rpcCodeFromStatus($error['status']) + : $ex->getCode(); + $metadata = $error['details'] ?? null; + return static::createFromRestApiResponse($basicMessage, $code, $metadata); + } + // Use the RPC code instead of the HTTP Status Code. + $code = ApiStatus::rpcCodeFromHttpStatusCode($res->getStatusCode()); + return static::createFromApiResponse($body, $code); + } + + /** + * @return null|string + */ + public function getBasicMessage() + { + return $this->basicMessage; + } + + /** + * @return mixed[] + */ + public function getMetadata() + { + return $this->metadata; + } + + /** + * String representation of ApiException + * @return string + */ + public function __toString() + { + return __CLASS__ . ": $this->message\n"; + } +} diff --git a/vendor/google/gax/src/ApiKeyHeaderCredentials.php b/vendor/google/gax/src/ApiKeyHeaderCredentials.php new file mode 100644 index 0000000..f4471d6 --- /dev/null +++ b/vendor/google/gax/src/ApiKeyHeaderCredentials.php @@ -0,0 +1,95 @@ +apiKey = $apiKey; + $this->quotaProject = $quotaProject; + } + + /** + * @return string|null The quota project associated with the credentials. + */ + public function getQuotaProject(): ?string + { + return $this->quotaProject; + } + + /** + * @param string|null $unusedAudience audiences are not supported for API keys. + * + * @return callable|null Callable function that returns the API key header. + */ + public function getAuthorizationHeaderCallback(?string $unusedAudience = null): ?callable + { + $apiKey = $this->apiKey; + + // NOTE: changes to this function should be treated carefully and tested thoroughly. It will + // be passed into the gRPC c extension, and changes have the potential to trigger very + // difficult-to-diagnose segmentation faults. + return function () use ($apiKey) { + return ['x-goog-api-key' => [$apiKey]]; + }; + } + + /** + * Verify that the expected universe domain matches the universe domain from the credentials. + * + * @throws ValidationException if the universe domain does not match. + */ + public function checkUniverseDomain(): void + { + // This is a no-op, as API keys are not tied to a universe domain. As a result, the + // potential for leaking API keys to the GDU is higher, and it's recommended to specify + // the "universeDomain" option with the GAPIC client. + } +} diff --git a/vendor/google/gax/src/ApiStatus.php b/vendor/google/gax/src/ApiStatus.php new file mode 100644 index 0000000..aa6adcf --- /dev/null +++ b/vendor/google/gax/src/ApiStatus.php @@ -0,0 +1,171 @@ + Code::OK, + ApiStatus::CANCELLED => Code::CANCELLED, + ApiStatus::UNKNOWN => Code::UNKNOWN, + ApiStatus::INVALID_ARGUMENT => Code::INVALID_ARGUMENT, + ApiStatus::DEADLINE_EXCEEDED => Code::DEADLINE_EXCEEDED, + ApiStatus::NOT_FOUND => Code::NOT_FOUND, + ApiStatus::ALREADY_EXISTS => Code::ALREADY_EXISTS, + ApiStatus::PERMISSION_DENIED => Code::PERMISSION_DENIED, + ApiStatus::RESOURCE_EXHAUSTED => Code::RESOURCE_EXHAUSTED, + ApiStatus::FAILED_PRECONDITION => Code::FAILED_PRECONDITION, + ApiStatus::ABORTED => Code::ABORTED, + ApiStatus::OUT_OF_RANGE => Code::OUT_OF_RANGE, + ApiStatus::UNIMPLEMENTED => Code::UNIMPLEMENTED, + ApiStatus::INTERNAL => Code::INTERNAL, + ApiStatus::UNAVAILABLE => Code::UNAVAILABLE, + ApiStatus::DATA_LOSS => Code::DATA_LOSS, + ApiStatus::UNAUTHENTICATED => Code::UNAUTHENTICATED, + ]; + private static $codeToApiStatusMap = [ + Code::OK => ApiStatus::OK, + Code::CANCELLED => ApiStatus::CANCELLED, + Code::UNKNOWN => ApiStatus::UNKNOWN, + Code::INVALID_ARGUMENT => ApiStatus::INVALID_ARGUMENT, + Code::DEADLINE_EXCEEDED => ApiStatus::DEADLINE_EXCEEDED, + Code::NOT_FOUND => ApiStatus::NOT_FOUND, + Code::ALREADY_EXISTS => ApiStatus::ALREADY_EXISTS, + Code::PERMISSION_DENIED => ApiStatus::PERMISSION_DENIED, + Code::RESOURCE_EXHAUSTED => ApiStatus::RESOURCE_EXHAUSTED, + Code::FAILED_PRECONDITION => ApiStatus::FAILED_PRECONDITION, + Code::ABORTED => ApiStatus::ABORTED, + Code::OUT_OF_RANGE => ApiStatus::OUT_OF_RANGE, + Code::UNIMPLEMENTED => ApiStatus::UNIMPLEMENTED, + Code::INTERNAL => ApiStatus::INTERNAL, + Code::UNAVAILABLE => ApiStatus::UNAVAILABLE, + Code::DATA_LOSS => ApiStatus::DATA_LOSS, + Code::UNAUTHENTICATED => ApiStatus::UNAUTHENTICATED, + ]; + private static $httpStatusCodeToRpcCodeMap = [ + 400 => Code::INVALID_ARGUMENT, + 401 => Code::UNAUTHENTICATED, + 403 => Code::PERMISSION_DENIED, + 404 => Code::NOT_FOUND, + 409 => Code::ABORTED, + 416 => Code::OUT_OF_RANGE, + 429 => Code::RESOURCE_EXHAUSTED, + 499 => Code::CANCELLED, + 501 => Code::UNIMPLEMENTED, + 503 => Code::UNAVAILABLE, + 504 => Code::DEADLINE_EXCEEDED, + ]; + + /** + * @param string $status + * @return bool + */ + public static function isValidStatus(string $status) + { + return array_key_exists($status, self::$apiStatusToCodeMap); + } + + /** + * @param int $code + * @return string + */ + public static function statusFromRpcCode(int $code) + { + if (array_key_exists($code, self::$codeToApiStatusMap)) { + return self::$codeToApiStatusMap[$code]; + } + return ApiStatus::UNRECOGNIZED_STATUS; + } + + /** + * @param string $status + * @return int + */ + public static function rpcCodeFromStatus(string $status) + { + if (array_key_exists($status, self::$apiStatusToCodeMap)) { + return self::$apiStatusToCodeMap[$status]; + } + return ApiStatus::UNRECOGNIZED_CODE; + } + + /** + * Maps HTTP status codes to Google\Rpc\Code codes. + * Some codes are left out because they map to multiple gRPC codes (e.g. 500). + * + * @param int $httpStatusCode + * @return int + */ + public static function rpcCodeFromHttpStatusCode(int $httpStatusCode) + { + if (array_key_exists($httpStatusCode, self::$httpStatusCodeToRpcCodeMap)) { + return self::$httpStatusCodeToRpcCodeMap[$httpStatusCode]; + } + // All 2xx + if ($httpStatusCode >= 200 && $httpStatusCode < 300) { + return Code::OK; + } + // All 4xx + if ($httpStatusCode >= 400 && $httpStatusCode < 500) { + return Code::FAILED_PRECONDITION; + } + // All 5xx + if ($httpStatusCode >= 500 && $httpStatusCode < 600) { + return Code::INTERNAL; + } + // Everything else (We cannot change this to Code::UNKNOWN because it would break BC) + return ApiStatus::UNRECOGNIZED_CODE; + } +} diff --git a/vendor/google/gax/src/ArrayTrait.php b/vendor/google/gax/src/ArrayTrait.php new file mode 100644 index 0000000..02638be --- /dev/null +++ b/vendor/google/gax/src/ArrayTrait.php @@ -0,0 +1,156 @@ +pluck($key, $arr, false); + } + } + + return $values; + } + + /** + * Determine whether given array is associative. + * + * @param array $arr + * @return bool + */ + private function isAssoc(array $arr) + { + return array_keys($arr) !== range(0, count($arr) - 1); + } + + /** + * Just like array_filter(), but preserves falsey values except null. + * + * @param array $arr + * @return array + */ + private function arrayFilterRemoveNull(array $arr) + { + return array_filter($arr, function ($element) { + if (!is_null($element)) { + return true; + } + + return false; + }); + } + + /** + * Return a subset of an array, like pluckArray, without modifying the original array. + * + * @param array $keys + * @param array $arr + * @return array + */ + private function subsetArray(array $keys, array $arr) + { + return array_intersect_key( + $arr, + array_flip($keys) + ); + } + + /** + * A method, similar to PHP's `array_merge_recursive`, with two differences. + * + * 1. Keys in $array2 take precedence over keys in $array1. + * 2. Non-array keys found in both inputs are not transformed into an array + * and appended. Rather, the value in $array2 is used. + * + * @param array $array1 + * @param array $array2 + * @return array + */ + private function arrayMergeRecursive(array $array1, array $array2) + { + foreach ($array2 as $key => $value) { + if (array_key_exists($key, $array1) && is_array($array1[$key]) && is_array($value)) { + $array1[$key] = ($this->isAssoc($array1[$key]) && $this->isAssoc($value)) + ? $this->arrayMergeRecursive($array1[$key], $value) + : array_merge($array1[$key], $value); + } else { + $array1[$key] = $value; + } + } + + return $array1; + } +} diff --git a/vendor/google/gax/src/BidiStream.php b/vendor/google/gax/src/BidiStream.php new file mode 100644 index 0000000..e4d6718 --- /dev/null +++ b/vendor/google/gax/src/BidiStream.php @@ -0,0 +1,217 @@ +call = $bidiStreamingCall; + if (array_key_exists('resourcesGetMethod', $streamingDescriptor)) { + $this->resourcesGetMethod = $streamingDescriptor['resourcesGetMethod']; + } + $this->logger = $logger; + } + + /** + * Write request to the server. + * + * @param mixed $request The request to write + * @throws ValidationException + */ + public function write($request) + { + if ($this->isComplete) { + throw new ValidationException('Cannot call write() after streaming call is complete.'); + } + if ($this->writesClosed) { + throw new ValidationException('Cannot call write() after calling closeWrite().'); + } + + if ($this->logger && $request instanceof Message) { + $logEvent = new RpcLogEvent(); + + $logEvent->headers = null; + $logEvent->payload = $request->serializeToJsonString(); + $logEvent->processId = (int) getmypid(); + $logEvent->requestId = crc32((string) spl_object_id($this) . getmypid()); + + $this->logRequest($logEvent); + } + + $this->call->write($request); + } + + /** + * Write all requests in $requests. + * + * @param iterable $requests An Iterable of request objects to write to the server + * + * @throws ValidationException + */ + public function writeAll($requests = []) + { + foreach ($requests as $request) { + $this->write($request); + } + } + + /** + * Inform the server that no more requests will be written. The write() function cannot be + * called after closeWrite() is called. + * @throws ValidationException + */ + public function closeWrite() + { + if ($this->isComplete) { + throw new ValidationException( + 'Cannot call closeWrite() after streaming call is complete.' + ); + } + if (!$this->writesClosed) { + $this->call->writesDone(); + $this->writesClosed = true; + } + } + + /** + * Read the next response from the server. Returns null if the streaming call completed + * successfully. Throws an ApiException if the streaming call failed. + * + * @throws ValidationException + * @throws ApiException + * @return mixed + */ + public function read() + { + if ($this->isComplete) { + throw new ValidationException('Cannot call read() after streaming call is complete.'); + } + $resourcesGetMethod = $this->resourcesGetMethod; + if (!is_null($resourcesGetMethod)) { + if (count($this->pendingResources) === 0) { + $response = $this->call->read(); + if (!is_null($response)) { + $pendingResources = []; + foreach ($response->$resourcesGetMethod() as $resource) { + $pendingResources[] = $resource; + } + $this->pendingResources = array_reverse($pendingResources); + } + } + $result = array_pop($this->pendingResources); + } else { + $result = $this->call->read(); + } + if (is_null($result)) { + $status = $this->call->getStatus(); + $this->isComplete = true; + if (!($status->code == Code::OK)) { + throw ApiException::createFromStdClass($status); + } + } + + if ($this->logger) { + $responseEvent = new RpcLogEvent(); + + $responseEvent->headers = $this->call->getMetadata(); + $responseEvent->status = $status->code ?? null; + $responseEvent->processId = (int) getmypid(); + $responseEvent->requestId = crc32((string) spl_object_id($this) . getmypid()); + + if ($result instanceof Message) { + $responseEvent->payload = $result->serializeToJsonString(); + } + + $this->logResponse($responseEvent); + } + + return $result; + } + + /** + * Call closeWrite(), and read all responses from the server, until the streaming call is + * completed. Throws an ApiException if the streaming call failed. + * + * @throws ValidationException + * @throws ApiException + * @return \Generator|mixed[] + */ + public function closeWriteAndReadAll() + { + $this->closeWrite(); + $response = $this->read(); + while (!is_null($response)) { + yield $response; + $response = $this->read(); + } + } + + /** + * Return the underlying gRPC call object + * + * @return \Grpc\BidiStreamingCall|mixed + */ + public function getBidiStreamingCall() + { + return $this->call; + } +} diff --git a/vendor/google/gax/src/Call.php b/vendor/google/gax/src/Call.php new file mode 100644 index 0000000..53c5d32 --- /dev/null +++ b/vendor/google/gax/src/Call.php @@ -0,0 +1,131 @@ +method = $method; + $this->decodeType = $decodeType; + $this->message = $message; + $this->descriptor = $descriptor; + $this->callType = $callType; + } + + /** + * @return string + */ + public function getMethod() + { + return $this->method; + } + + /** + * @return int + */ + public function getCallType() + { + return $this->callType; + } + + /** + * @return string + */ + public function getDecodeType() + { + return $this->decodeType; + } + + /** + * @return mixed|Message + */ + public function getMessage() + { + return $this->message; + } + + /** + * @return array|null + */ + public function getDescriptor() + { + return $this->descriptor; + } + + /** + * @param mixed|Message $message + * @return Call + */ + public function withMessage($message) + { + // @phpstan-ignore-next-line + return new static( + $this->method, + $this->decodeType, + $message, + $this->descriptor, + $this->callType + ); + } +} diff --git a/vendor/google/gax/src/ClientOptionsTrait.php b/vendor/google/gax/src/ClientOptionsTrait.php new file mode 100644 index 0000000..5def36e --- /dev/null +++ b/vendor/google/gax/src/ClientOptionsTrait.php @@ -0,0 +1,400 @@ +mergeFromJsonString(file_get_contents($confPath)); + $config = new Config($hostName, $apiConfig); + return $config; + } + + /** + * Get default options. This function should be "overridden" by clients using late static + * binding to provide default options to the client. + * + * @return array + * @access private + */ + private static function getClientDefaults() + { + return []; + } + + /** + * Resolve client options based on the client's default + * ({@see ClientOptionsTrait::getClientDefault}) and the default for all + * Google APIs. + * + * 1. Set default client option values + * 2. Set default logger (and log user-supplied configuration options) + * 3. Set default transport configuration + * 4. Call "modifyClientOptions" (for backwards compatibility) + * 5. Use "defaultScopes" when custom endpoint is supplied + * 6. Load mTLS from the environment if configured + * 7. Resolve endpoint based on universe domain template when possible + * 8. Load sysvshm grpc config when possible + */ + private function buildClientOptions(array|ClientOptions $options) + { + if ($options instanceof ClientOptions) { + $options = $options->toArray(); + } + + // Build $defaultOptions starting from top level + // variables, then going into deeper nesting, so that + // we will not encounter missing keys + $defaultOptions = self::getClientDefaults(); + $defaultOptions += [ + 'disableRetries' => false, + 'credentials' => null, + 'credentialsConfig' => [], + 'transport' => null, + 'transportConfig' => [], + 'gapicVersion' => self::getGapicVersion($options), + 'libName' => null, + 'libVersion' => null, + 'apiEndpoint' => null, + 'clientCertSource' => null, + 'universeDomain' => null, + 'logger' => null, + ]; + + $supportedTransports = $this->supportedTransports(); + foreach ($supportedTransports as $transportName) { + if (!array_key_exists($transportName, $defaultOptions['transportConfig'])) { + $defaultOptions['transportConfig'][$transportName] = []; + } + } + if (in_array('grpc', $supportedTransports)) { + $defaultOptions['transportConfig']['grpc'] = [ + 'stubOpts' => ['grpc.service_config_disable_resolution' => 1] + ]; + } + + // Keep track of the API Endpoint + $apiEndpoint = $options['apiEndpoint'] ?? null; + + // Keep track of the original user supplied options for logging the configuration + $clientSuppliedOptions = $options; + + // Merge defaults into $options starting from top level + // variables, then going into deeper nesting, so that + // we will not encounter missing keys + $options += $defaultOptions; + + // If logger is explicitly set to false, logging is disabled + if (is_null($options['logger'])) { + $options['logger'] = ApplicationDefaultCredentials::getDefaultLogger(); + } + + if ( + $options['logger'] !== null + && $options['logger'] !== false + && !$options['logger'] instanceof LoggerInterface + ) { + throw new ValidationException( + 'The "logger" option in the options array should be PSR-3 LoggerInterface compatible' + ); + } + + // Log the user supplied configuration. + $this->logConfiguration($options['logger'], $clientSuppliedOptions); + + if (isset($options['logger'])) { + $options['credentialsConfig']['authHttpHandler'] = HttpHandlerFactory::build( + logger: $options['logger'] + ); + } + + $options['credentialsConfig'] += $defaultOptions['credentialsConfig']; + $options['transportConfig'] += $defaultOptions['transportConfig']; // @phpstan-ignore-line + if (isset($options['transportConfig']['grpc'])) { + $options['transportConfig']['grpc'] += $defaultOptions['transportConfig']['grpc']; + $options['transportConfig']['grpc']['stubOpts'] += $defaultOptions['transportConfig']['grpc']['stubOpts']; + $options['transportConfig']['grpc']['logger'] = $options['logger'] ?? null; + } + if (isset($options['transportConfig']['rest'])) { + $options['transportConfig']['rest'] += $defaultOptions['transportConfig']['rest']; + $options['transportConfig']['rest']['logger'] = $options['logger'] ?? null; + } + if (isset($options['transportConfig']['grpc-fallback'])) { + $options['transportConfig']['grpc-fallback']['logger'] = $options['logger'] ?? null; + } + + // These calls do not apply to "New Surface" clients. + if ($this->isBackwardsCompatibilityMode()) { + $preModifiedOptions = $options; + $this->modifyClientOptions($options); + // NOTE: this is required to ensure backwards compatiblity with $options['apiEndpoint'] + if ($options['apiEndpoint'] !== $preModifiedOptions['apiEndpoint']) { + $apiEndpoint = $options['apiEndpoint']; + } + + // serviceAddress is now deprecated and acts as an alias for apiEndpoint + if (isset($options['serviceAddress'])) { + $apiEndpoint = $this->pluck('serviceAddress', $options, false); + } + } else { + // Ads is using this method in their new surface clients, so we need to call it. + // However, this method is not used anywhere else for the new surface clients + // @TODO: Remove this in GAX V2 + $this->modifyClientOptions($options); + } + // If an API endpoint is different form the default, ensure the "audience" does not conflict + // with the custom endpoint by setting "user defined" scopes. + if ($apiEndpoint + && $apiEndpoint != $defaultOptions['apiEndpoint'] + && empty($options['credentialsConfig']['scopes']) + && !empty($options['credentialsConfig']['defaultScopes']) + ) { + $options['credentialsConfig']['scopes'] = $options['credentialsConfig']['defaultScopes']; + } + + // mTLS: detect and load the default clientCertSource if the environment variable + // "GOOGLE_API_USE_CLIENT_CERTIFICATE" is true, and the cert source is available + if (empty($options['clientCertSource']) && CredentialsLoader::shouldLoadClientCertSource()) { + if ($defaultCertSource = CredentialsLoader::getDefaultClientCertSource()) { + $options['clientCertSource'] = function () use ($defaultCertSource) { + $cert = call_user_func($defaultCertSource); + + // the key and the cert are returned in one string + return [$cert, $cert]; + }; + } + } + + // mTLS: If no apiEndpoint has been supplied by the user, and either + // GOOGLE_API_USE_MTLS_ENDPOINT tells us to, or mTLS is available, use the mTLS endpoint. + if (is_null($apiEndpoint) && $this->shouldUseMtlsEndpoint($options)) { + $apiEndpoint = self::determineMtlsEndpoint($options['apiEndpoint']); + } + + // If the user has not supplied a universe domain, use the environment variable if set. + // Otherwise, use the default ("googleapis.com"). + $options['universeDomain'] ??= getenv('GOOGLE_CLOUD_UNIVERSE_DOMAIN') + ?: GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN; + + // mTLS: It is not valid to configure mTLS outside of "googleapis.com" (yet) + if (isset($options['clientCertSource']) + && $options['universeDomain'] !== GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN + ) { + throw new ValidationException( + 'mTLS is not supported outside the "googleapis.com" universe' + ); + } + + if (is_null($apiEndpoint)) { + if (defined('self::SERVICE_ADDRESS_TEMPLATE')) { + // Derive the endpoint from the service address template and the universe domain + $apiEndpoint = str_replace( + 'UNIVERSE_DOMAIN', + $options['universeDomain'], + self::SERVICE_ADDRESS_TEMPLATE + ); + } else { + // For older clients, the service address template does not exist. Use the default + // endpoint instead. + $apiEndpoint = $defaultOptions['apiEndpoint']; + } + } + + if (extension_loaded('sysvshm') + && isset($options['gcpApiConfigPath']) + && file_exists($options['gcpApiConfigPath']) + && !empty($apiEndpoint) + ) { + $grpcGcpConfig = self::initGrpcGcpConfig( + $apiEndpoint, + $options['gcpApiConfigPath'] + ); + + if (!array_key_exists('stubOpts', $options['transportConfig']['grpc'])) { + $options['transportConfig']['grpc']['stubOpts'] = []; + } + + $options['transportConfig']['grpc']['stubOpts'] += [ + 'grpc_call_invoker' => $grpcGcpConfig->callInvoker() + ]; + } + + $options['apiEndpoint'] = $apiEndpoint; + + return $options; + } + + private function shouldUseMtlsEndpoint(array $options) + { + $mtlsEndpointEnvVar = getenv('GOOGLE_API_USE_MTLS_ENDPOINT'); + if ('always' === $mtlsEndpointEnvVar) { + return true; + } + if ('never' === $mtlsEndpointEnvVar) { + return false; + } + // For all other cases, assume "auto" and return true if clientCertSource exists + return !empty($options['clientCertSource']); + } + + private static function determineMtlsEndpoint(string $apiEndpoint) + { + $parts = explode('.', $apiEndpoint); + if (count($parts) < 3) { + return $apiEndpoint; // invalid endpoint! + } + return sprintf('%s.mtls.%s', array_shift($parts), implode('.', $parts)); + } + + /** + * @param mixed $credentials + * @param array $credentialsConfig + * @return CredentialsWrapper + * @throws ValidationException + */ + private function createCredentialsWrapper($credentials, array $credentialsConfig, string $universeDomain) + { + if (is_null($credentials)) { + // If the user has explicitly set the apiKey option, use Api Key credentials + return CredentialsWrapper::build($credentialsConfig, $universeDomain); + } + + if (is_string($credentials) || is_array($credentials)) { + return CredentialsWrapper::build(['keyFile' => $credentials] + $credentialsConfig, $universeDomain); + } + + if ($credentials instanceof FetchAuthTokenInterface) { + $authHttpHandler = $credentialsConfig['authHttpHandler'] ?? null; + return new CredentialsWrapper($credentials, $authHttpHandler, $universeDomain); + } + + if ($credentials instanceof CredentialsWrapper) { + return $credentials; + } + + throw new ValidationException(sprintf( + 'Unexpected value in $auth option, got: %s', + print_r($credentials, true) + )); + } + + /** + * This defaults to all three transports, which One-Platform supports. + * Discovery clients should define this function and only return ['rest']. + */ + private static function supportedTransports() + { + return ['grpc', 'grpc-fallback', 'rest']; + } + + // Gapic Client Extension Points + // The methods below provide extension points that can be used to customize client + // functionality. These extension points are currently considered + // private and may change at any time. + + /** + * Modify options passed to the client before calling setClientOptions. + * + * @param array $options + * @access private + * @internal + */ + protected function modifyClientOptions(array &$options) + { + // Do nothing - this method exists to allow option modification by partial veneers. + } + + /** + * @internal + */ + private function isBackwardsCompatibilityMode(): bool + { + return false; + } + + /** + * @param null|false|LoggerInterface $logger + * @param string $options + */ + private function logConfiguration(null|false|LoggerInterface $logger, array $options): void + { + if (!$logger) { + return; + } + + $configurationLog = [ + 'timestamp' => date(DATE_RFC3339), + 'severity' => strtoupper(LogLevel::DEBUG), + 'processId' => getmypid(), + 'jsonPayload' => [ + 'serviceName' => self::SERVICE_NAME, // @phpstan-ignore-line + 'clientConfiguration' => $options, + ] + ]; + + $logger->debug(json_encode($configurationLog)); + } +} diff --git a/vendor/google/gax/src/ClientStream.php b/vendor/google/gax/src/ClientStream.php new file mode 100644 index 0000000..6c24955 --- /dev/null +++ b/vendor/google/gax/src/ClientStream.php @@ -0,0 +1,143 @@ +call = $clientStreamingCall; + $this->logger = $logger; + } + + /** + * Write request to the server. + * + * @param mixed $request The request to write + */ + public function write($request) + { + // In some cases, $request can be a string + if ($this->logger && $request instanceof Message) { + $requestEvent = new RpcLogEvent(); + + $requestEvent->payload = $request->serializeToJsonString(); + $requestEvent->processId = (int) getmypid(); + $requestEvent->requestId = crc32((string) spl_object_id($this) . getmypid()); + + $this->logRequest($requestEvent); + } + + $this->call->write($request); + } + + /** + * Read the response from the server, completing the streaming call. + * + * @throws ApiException + * @return mixed The response object from the server + */ + public function readResponse() + { + list($response, $status) = $this->call->wait(); + if ($status->code == Code::OK) { + if ($this->logger) { + $responseEvent = new RpcLogEvent(); + + $responseEvent->headers = $status->metadata; + $responseEvent->status = $status->code; + $responseEvent->processId = (int) getmypid(); + $responseEvent->requestId = crc32((string) spl_object_id($this) . getmypid()); + + if ($response instanceof Message) { + $response->serializeToJsonString(); + } + + $this->logResponse($responseEvent); + } + + return $response; + } else { + throw ApiException::createFromStdClass($status); + } + } + + /** + * Write all data in $dataArray and read the response from the server, completing the streaming + * call. + * + * @param mixed[] $requests An iterator of request objects to write to the server + * @return mixed The response object from the server + */ + public function writeAllAndReadResponse(array $requests) + { + foreach ($requests as $request) { + $this->write($request); + } + return $this->readResponse(); + } + + /** + * Return the underlying gRPC call object + * + * @return \Grpc\ClientStreamingCall|mixed + */ + public function getClientStreamingCall() + { + return $this->call; + } +} diff --git a/vendor/google/gax/src/CredentialsWrapper.php b/vendor/google/gax/src/CredentialsWrapper.php new file mode 100644 index 0000000..d6e9089 --- /dev/null +++ b/vendor/google/gax/src/CredentialsWrapper.php @@ -0,0 +1,359 @@ +credentialsFetcher = $credentialsFetcher; + $this->authHttpHandler = $authHttpHandler; + if (empty($universeDomain)) { + throw new ValidationException('The universe domain cannot be empty'); + } + $this->universeDomain = $universeDomain; + } + + /** + * Factory method to create a CredentialsWrapper from an array of options. + * + * @param array $args { + * An array of optional arguments. + * + * @type string|array $keyFile + * Credentials to be used. Accepts either a path to a credentials file, or a decoded + * credentials file as a PHP array. If this is not specified, application default + * credentials will be used. + * @type string[] $scopes + * A string array of scopes to use when acquiring credentials. + * @type callable $authHttpHandler + * A handler used to deliver PSR-7 requests specifically + * for authentication. Should match a signature of + * `function (RequestInterface $request, array $options) : ResponseInterface`. + * @type bool $enableCaching + * Enable caching of access tokens. Defaults to true. + * @type CacheItemPoolInterface $authCache + * A cache for storing access tokens. Defaults to a simple in memory implementation. + * @type array $authCacheOptions + * Cache configuration options. + * @type string $quotaProject + * Specifies a user project to bill for access charges associated with the request. + * @type string[] $defaultScopes + * A string array of default scopes to use when acquiring + * credentials. + * @type bool $useJwtAccessWithScope + * Ensures service account credentials use JWT Access (also known as self-signed + * JWTs), even when user-defined scopes are supplied. + * } + * @param string $universeDomain The expected universe of the credentials. Defaults to + * "googleapis.com" + * @return CredentialsWrapper + * @throws ValidationException + */ + public static function build( + array $args = [], + string $universeDomain = GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN + ) { + $args += [ + 'keyFile' => null, + 'scopes' => null, + 'authHttpHandler' => null, + 'enableCaching' => true, + 'authCache' => null, + 'authCacheOptions' => [], + 'quotaProject' => null, + 'defaultScopes' => null, + 'useJwtAccessWithScope' => true, + ]; + + $keyFile = $args['keyFile']; + + if (is_null($keyFile)) { + $loader = self::buildApplicationDefaultCredentials( + $args['scopes'], + $args['authHttpHandler'], + $args['authCacheOptions'], + $args['authCache'], + $args['quotaProject'], + $args['defaultScopes'] + ); + if ($loader instanceof FetchAuthTokenCache) { + $loader = $loader->getFetcher(); + } + } else { + if (is_string($keyFile)) { + if (!file_exists($keyFile)) { + throw new ValidationException("Could not find keyfile: $keyFile"); + } + $keyFile = json_decode(file_get_contents($keyFile), true); + } + + if (isset($args['quotaProject'])) { + $keyFile['quota_project_id'] = $args['quotaProject']; + } + + $loader = CredentialsLoader::makeCredentials( + $args['scopes'], + $keyFile, + $args['defaultScopes'] + ); + } + + if ($loader instanceof ServiceAccountCredentials && $args['useJwtAccessWithScope']) { + // Ensures the ServiceAccountCredentials uses JWT Access, also known + // as self-signed JWTs, even when user-defined scopes are supplied. + $loader->useJwtAccessWithScope(); + } + + if ($args['enableCaching']) { + $authCache = $args['authCache'] ?: new MemoryCacheItemPool(); + $loader = new FetchAuthTokenCache( + $loader, + $args['authCacheOptions'], + $authCache + ); + } + + return new CredentialsWrapper($loader, $args['authHttpHandler'], $universeDomain); + } + + /** + * @return string|null The quota project associated with the credentials. + */ + public function getQuotaProject(): ?string + { + if ($this->credentialsFetcher instanceof GetQuotaProjectInterface) { + return $this->credentialsFetcher->getQuotaProject(); + } + return null; + } + + public function getProjectId(?callable $httpHandler = null): ?string + { + // Ensure that FetchAuthTokenCache does not throw an exception + if ($this->credentialsFetcher instanceof FetchAuthTokenCache + && !$this->credentialsFetcher->getFetcher() instanceof ProjectIdProviderInterface) { + return null; + } + + if ($this->credentialsFetcher instanceof ProjectIdProviderInterface) { + return $this->credentialsFetcher->getProjectId($httpHandler); + } + return null; + } + + /** + * @deprecated + * @return string Bearer string containing access token. + */ + public function getBearerString() + { + $token = $this->credentialsFetcher->getLastReceivedToken(); + if (self::isExpired($token)) { + $this->checkUniverseDomain(); + + $token = $this->credentialsFetcher->fetchAuthToken($this->authHttpHandler); + if (!self::isValid($token)) { + return ''; + } + } + return empty($token['access_token']) ? '' : 'Bearer ' . $token['access_token']; + } + + /** + * @param string $audience optional audience for self-signed JWTs. + * @return callable Callable function that returns an authorization header. + */ + public function getAuthorizationHeaderCallback($audience = null): ?callable + { + // NOTE: changes to this function should be treated carefully and tested thoroughly. It will + // be passed into the gRPC c extension, and changes have the potential to trigger very + // difficult-to-diagnose segmentation faults. + return function () use ($audience) { + $token = $this->credentialsFetcher->getLastReceivedToken(); + if (self::isExpired($token)) { + $this->checkUniverseDomain(); + + // Call updateMetadata to take advantage of self-signed JWTs + if ($this->credentialsFetcher instanceof UpdateMetadataInterface) { + return $this->credentialsFetcher->updateMetadata([], $audience, $this->authHttpHandler); + } + + // In case a custom fetcher is provided (unlikely) which doesn't + // implement UpdateMetadataInterface + $token = $this->credentialsFetcher->fetchAuthToken($this->authHttpHandler); + if (!self::isValid($token)) { + return []; + } + } + $tokenString = $token['access_token']; + if (!empty($tokenString)) { + return ['authorization' => ["Bearer $tokenString"]]; + } + return []; + }; + } + + /** + * Verify that the expected universe domain matches the universe domain from the credentials. + * + * @throws ValidationException if the universe domain does not match. + */ + public function checkUniverseDomain(): void + { + if (false === $this->hasCheckedUniverse && $this->shouldCheckUniverseDomain()) { + $credentialsUniverse = $this->credentialsFetcher instanceof GetUniverseDomainInterface + ? $this->credentialsFetcher->getUniverseDomain() + : GetUniverseDomainInterface::DEFAULT_UNIVERSE_DOMAIN; + if ($credentialsUniverse !== $this->universeDomain) { + throw new ValidationException(sprintf( + 'The configured universe domain (%s) does not match the credential universe domain (%s)', + $this->universeDomain, + $credentialsUniverse + )); + } + $this->hasCheckedUniverse = true; + } + } + + /** + * Skip universe domain check for Metadata server (e.g. GCE) credentials. + * + * @return bool + */ + private function shouldCheckUniverseDomain(): bool + { + $fetcher = $this->credentialsFetcher instanceof FetchAuthTokenCache + ? $this->credentialsFetcher->getFetcher() + : $this->credentialsFetcher; + + if ($fetcher instanceof GCECredentials) { + return false; + } + + return true; + } + + /** + * @param array $scopes + * @param callable $authHttpHandler + * @param array $authCacheOptions + * @param CacheItemPoolInterface $authCache + * @param string $quotaProject + * @param array $defaultScopes + * @return FetchAuthTokenInterface + * @throws ValidationException + */ + private static function buildApplicationDefaultCredentials( + ?array $scopes = null, + ?callable $authHttpHandler = null, + ?array $authCacheOptions = null, + ?CacheItemPoolInterface $authCache = null, + $quotaProject = null, + ?array $defaultScopes = null + ) { + try { + return ApplicationDefaultCredentials::getCredentials( + $scopes, + $authHttpHandler, + $authCacheOptions, + $authCache, + $quotaProject, + $defaultScopes + ); + } catch (DomainException $ex) { + throw new ValidationException('Could not construct ApplicationDefaultCredentials', $ex->getCode(), $ex); + } + } + + /** + * @param mixed $token + */ + private static function isValid($token) + { + return is_array($token) + && array_key_exists('access_token', $token); + } + + /** + * @param mixed $token + */ + private static function isExpired($token) + { + return !(self::isValid($token) + && array_key_exists('expires_at', $token) + && $token['expires_at'] > time() + self::$eagerRefreshThresholdSeconds); + } +} diff --git a/vendor/google/gax/src/FixedSizeCollection.php b/vendor/google/gax/src/FixedSizeCollection.php new file mode 100644 index 0000000..03ec835 --- /dev/null +++ b/vendor/google/gax/src/FixedSizeCollection.php @@ -0,0 +1,190 @@ + 0. collectionSize: $collectionSize" + ); + } + if ($collectionSize < $initialPage->getPageElementCount()) { + $ipc = $initialPage->getPageElementCount(); + throw new InvalidArgumentException( + 'collectionSize must be greater than or equal to the number of ' . + "elements in initialPage. collectionSize: $collectionSize, " . + "initialPage size: $ipc" + ); + } + $this->collectionSize = $collectionSize; + + $this->pageList = FixedSizeCollection::createPageArray($initialPage, $collectionSize); + } + + /** + * Returns the number of elements in the collection. This will be + * equal to the collectionSize parameter used at construction + * unless there are no elements remaining to be retrieved. + * + * @return int + */ + public function getCollectionSize() + { + $size = 0; + foreach ($this->pageList as $page) { + $size += $page->getPageElementCount(); + } + return $size; + } + + /** + * Returns true if there are more elements that can be retrieved + * from the API. + * + * @return bool + */ + public function hasNextCollection() + { + return $this->getLastPage()->hasNextPage(); + } + + /** + * Returns a page token that can be passed into the API list + * method to retrieve additional elements. + * + * @return string + */ + public function getNextPageToken() + { + return $this->getLastPage()->getNextPageToken(); + } + + /** + * Retrieves the next FixedSizeCollection using one or more API calls. + * + * @return FixedSizeCollection + */ + public function getNextCollection() + { + $lastPage = $this->getLastPage(); + $nextPage = $lastPage->getNextPage($this->collectionSize); + return new FixedSizeCollection($nextPage, $this->collectionSize); + } + + /** + * Returns an iterator over the elements of the collection. + * + * @return Generator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + foreach ($this->pageList as $page) { + foreach ($page as $element) { + yield $element; + } + } + } + + /** + * Returns an iterator over FixedSizeCollections, starting with this + * and making API calls as required until all of the elements have + * been retrieved. + * + * @return Generator|FixedSizeCollection[] + */ + public function iterateCollections() + { + $currentCollection = $this; + yield $this; + while ($currentCollection->hasNextCollection()) { + $currentCollection = $currentCollection->getNextCollection(); + yield $currentCollection; + } + } + + private function getLastPage() + { + $pageList = $this->pageList; + // Get last element in array... + $lastPage = end($pageList); + reset($pageList); + return $lastPage; + } + + /** + * @param Page $initialPage + * @param int $collectionSize + * @return Page[] + */ + private static function createPageArray(Page $initialPage, int $collectionSize) + { + $pageList = [$initialPage]; + $currentPage = $initialPage; + $itemCount = $currentPage->getPageElementCount(); + while ($itemCount < $collectionSize && $currentPage->hasNextPage()) { + $remainingCount = $collectionSize - $itemCount; + $currentPage = $currentPage->getNextPage($remainingCount); + $rxElementCount = $currentPage->getPageElementCount(); + if ($rxElementCount > $remainingCount) { + throw new LengthException('API returned a number of elements ' . + 'exceeding the specified page size limit. page size: ' . + "$remainingCount, elements received: $rxElementCount"); + } + array_push($pageList, $currentPage); + $itemCount += $rxElementCount; + } + return $pageList; + } +} diff --git a/vendor/google/gax/src/GPBLabel.php b/vendor/google/gax/src/GPBLabel.php new file mode 100644 index 0000000..18208cd --- /dev/null +++ b/vendor/google/gax/src/GPBLabel.php @@ -0,0 +1,43 @@ + $middlewareCallables */ + private array $middlewareCallables = []; + private array $transportCallMethods = [ + Call::UNARY_CALL => 'startUnaryCall', + Call::BIDI_STREAMING_CALL => 'startBidiStreamingCall', + Call::CLIENT_STREAMING_CALL => 'startClientStreamingCall', + Call::SERVER_STREAMING_CALL => 'startServerStreamingCall', + ]; + private bool $backwardsCompatibilityMode; + + /** + * Add a middleware to the call stack by providing a callable which will be + * invoked at the start of each call, and will return an instance of + * {@see MiddlewareInterface} when invoked. + * + * The callable must have the following method signature: + * + * callable(MiddlewareInterface): MiddlewareInterface + * + * An implementation may look something like this: + * ``` + * $client->addMiddleware(function (MiddlewareInterface $handler) { + * return new class ($handler) implements MiddlewareInterface { + * public function __construct(private MiddlewareInterface $handler) { + * } + * + * public function __invoke(Call $call, array $options) { + * // modify call and options (pre-request) + * $response = ($this->handler)($call, $options); + * // modify the response (post-request) + * return $response; + * } + * }; + * }); + * ``` + * + * @param callable $middlewareCallable A callable which returns an instance + * of {@see MiddlewareInterface} when invoked with a + * MiddlewareInterface instance as its first argument. + * @return void + */ + public function addMiddleware(callable $middlewareCallable): void + { + $this->middlewareCallables[] = $middlewareCallable; + } + + /** + * Initiates an orderly shutdown in which preexisting calls continue but new + * calls are immediately cancelled. + * + * @experimental + */ + public function close() + { + $this->transport->close(); + } + + /** + * Get the transport for the client. This method is protected to support + * use by customized clients. + * + * @access private + * @return TransportInterface + */ + protected function getTransport() + { + return $this->transport; + } + + /** + * Get the credentials for the client. This method is protected to support + * use by customized clients. + * + * @access private + * @return CredentialsWrapper + */ + protected function getCredentialsWrapper() + { + return $this->credentialsWrapper; + } + + /** + * Configures the GAPIC client based on an array of options. + * + * @param array $options { + * An array of required and optional arguments. + * + * @type string $apiEndpoint + * The address of the API remote host, for example "example.googleapis.com. May also + * include the port, for example "example.googleapis.com:443" + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either a + * path to a JSON file, or a PHP array containing the decoded JSON data. + * By default this settings points to the default client config file, which is provided + * in the resources folder. + * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials + * The credentials to be used by the client to authorize API calls. This option + * accepts either a path to a credentials file, or a decoded credentials file as a + * PHP array. + * *Advanced usage*: In addition, this option can also accept a pre-constructed + * \Google\Auth\FetchAuthTokenInterface object or \Google\ApiCore\CredentialsWrapper + * object. Note that when one of these objects are provided, any settings in + * $authConfig will be ignored. + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the client. + * For a full list of supporting configuration options, see + * \Google\ApiCore\CredentialsWrapper::build. + * @type string|TransportInterface $transport + * The transport used for executing network requests. May be either the string `rest`, + * `grpc`, or 'grpc-fallback'. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already instantiated + * TransportInterface object. Note that when this objects is provided, any settings in + * $transportConfig, and any `$apiEndpoint` setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * 'grpc-fallback' => [...], + * ]; + * See the GrpcTransport::build and RestTransport::build + * methods for the supported options. + * @type string $versionFile + * The path to a file which contains the current version of the client. + * @type string $descriptorsConfigPath + * The path to a descriptor configuration file. + * @type string $serviceName + * The name of the service. + * @type string $libName + * The name of the client application. + * @type string $libVersion + * The version of the client application. + * @type string $gapicVersion + * The code generator version of the GAPIC library. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. + * } + * @throws ValidationException + */ + private function setClientOptions(array $options) + { + // serviceAddress is now deprecated and acts as an alias for apiEndpoint + if (isset($options['serviceAddress'])) { + $options['apiEndpoint'] = $this->pluck('serviceAddress', $options, false); + } + $this->validateNotNull($options, [ + 'apiEndpoint', + 'serviceName', + 'descriptorsConfigPath', + 'clientConfig', + 'disableRetries', + 'credentialsConfig', + 'transportConfig', + ]); + $this->traitValidate($options, [ + 'credentials', + 'transport', + 'gapicVersion', + 'libName', + 'libVersion', + ]); + + // "hasEmulator" is not a supported Client Option, but is used + // internally to determine if the client is running in emulator mode. + // Therefore, we need to remove it from the $options array before + // creating the ClientOptions. + $hasEmulator = $this->pluck('hasEmulator', $options, false) ?? false; + if ($this->isBackwardsCompatibilityMode()) { + if (is_string($options['clientConfig'])) { + // perform validation for V1 surfaces which is done in the + // ClientOptions class for v2 surfaces. + $options['clientConfig'] = json_decode( + file_get_contents($options['clientConfig']), + true + ); + self::validateFileExists($options['descriptorsConfigPath']); + } + } else { + // cast to ClientOptions for new surfaces only + $options = new ClientOptions($options); + } + $this->serviceName = $options['serviceName']; + $this->retrySettings = RetrySettings::load( + $this->serviceName, + $options['clientConfig'], + $options['disableRetries'] + ); + + $headerInfo = [ + 'libName' => $options['libName'], + 'libVersion' => $options['libVersion'], + 'gapicVersion' => $options['gapicVersion'], + ]; + // Edge case: If the client has the gRPC extension installed, but is + // a REST-only library, then the grpcVersion header should not be set. + if ($this->transport instanceof GrpcTransport) { + $headerInfo['grpcVersion'] = phpversion('grpc'); + } elseif ($this->transport instanceof RestTransport + || $this->transport instanceof GrpcFallbackTransport) { + $headerInfo['restVersion'] = Version::getApiCoreVersion(); + } + $this->agentHeader = AgentHeader::buildAgentHeader($headerInfo); + + // Set "client_library_name" depending on client library surface being used + $userAgentHeader = sprintf( + 'gcloud-php-%s/%s', + $this->isBackwardsCompatibilityMode() ? 'legacy' : 'new', + $options['gapicVersion'] + ); + $this->agentHeader['User-Agent'] = [$userAgentHeader]; + + self::validateFileExists($options['descriptorsConfigPath']); + + $descriptors = require($options['descriptorsConfigPath']); + $this->descriptors = $descriptors['interfaces'][$this->serviceName]; + + if (isset($options['apiKey'], $options['credentials'])) { + throw new ValidationException( + 'API Keys and Credentials are mutually exclusive authentication methods and cannot be used together.' + ); + } + // Set the credentialsWrapper + if (isset($options['apiKey'])) { + $this->credentialsWrapper = new ApiKeyHeaderCredentials( + $options['apiKey'], + $options['credentialsConfig']['quotaProject'] ?? null + ); + } else { + $this->credentialsWrapper = $this->createCredentialsWrapper( + $options['credentials'], + $options['credentialsConfig'], + $options['universeDomain'] + ); + } + + $transport = $options['transport'] ?: self::defaultTransport(); + $this->transport = $transport instanceof TransportInterface + ? $transport + : $this->createTransport( + $options['apiEndpoint'], + $transport, + $options['transportConfig'], + $options['clientCertSource'], + $hasEmulator + ); + } + + /** + * @param string $apiEndpoint + * @param string $transport + * @param TransportOptions|array $transportConfig + * @param callable $clientCertSource + * @param bool $hasEmulator + * @return TransportInterface + * @throws ValidationException + */ + private function createTransport( + string $apiEndpoint, + $transport, + $transportConfig, + ?callable $clientCertSource = null, + bool $hasEmulator = false + ) { + if (!is_string($transport)) { + throw new ValidationException( + "'transport' must be a string, instead got:" . + print_r($transport, true) + ); + } + $supportedTransports = self::supportedTransports(); + if (!in_array($transport, $supportedTransports)) { + throw new ValidationException(sprintf( + 'Unexpected transport option "%s". Supported transports: %s', + $transport, + implode(', ', $supportedTransports) + )); + } + $configForSpecifiedTransport = $transportConfig[$transport] ?? []; + if (is_array($configForSpecifiedTransport)) { + $configForSpecifiedTransport['clientCertSource'] = $clientCertSource; + } else { + $configForSpecifiedTransport->setClientCertSource($clientCertSource); + $configForSpecifiedTransport = $configForSpecifiedTransport->toArray(); + } + switch ($transport) { + case 'grpc': + // Setting the user agent for gRPC requires special handling + if (isset($this->agentHeader['User-Agent'])) { + if ($configForSpecifiedTransport['stubOpts']['grpc.primary_user_agent'] ??= '') { + $configForSpecifiedTransport['stubOpts']['grpc.primary_user_agent'] .= ' '; + } + $configForSpecifiedTransport['stubOpts']['grpc.primary_user_agent'] .= + $this->agentHeader['User-Agent'][0]; + } + return GrpcTransport::build($apiEndpoint, $configForSpecifiedTransport); + case 'grpc-fallback': + return GrpcFallbackTransport::build($apiEndpoint, $configForSpecifiedTransport); + case 'rest': + if (!isset($configForSpecifiedTransport['restClientConfigPath'])) { + throw new ValidationException( + "The 'restClientConfigPath' config is required for 'rest' transport." + ); + } + $restConfigPath = $configForSpecifiedTransport['restClientConfigPath']; + $configForSpecifiedTransport['hasEmulator'] = $hasEmulator; + + return RestTransport::build($apiEndpoint, $restConfigPath, $configForSpecifiedTransport); + default: + throw new ValidationException( + "Unexpected 'transport' option: $transport. " . + "Supported values: ['grpc', 'rest', 'grpc-fallback']" + ); + } + } + + /** + * @param array $options + * @return OperationsClient + */ + private function createOperationsClient(array $options) + { + $this->pluckArray([ + 'serviceName', + 'clientConfig', + 'descriptorsConfigPath', + ], $options); + + // User-supplied operations client + if ($operationsClient = $this->pluck('operationsClient', $options, false)) { + return $operationsClient; + } + + // operationsClientClass option + $operationsClientClass = $this->pluck('operationsClientClass', $options, false) + ?: OperationsCLient::class; + return new $operationsClientClass($options); + } + + /** + * @return string + */ + private static function defaultTransport() + { + return self::getGrpcDependencyStatus() + ? 'grpc' + : 'rest'; + } + + private function validateCallConfig(string $methodName) + { + // Ensure a method descriptor exists for the target method. + if (!isset($this->descriptors[$methodName])) { + throw new ValidationException("Requested method '$methodName' does not exist in descriptor configuration."); + } + $methodDescriptors = $this->descriptors[$methodName]; + + // Ensure required descriptor configuration exists. + if (!isset($methodDescriptors['callType'])) { + throw new ValidationException("Requested method '$methodName' does not have a callType " . + 'in descriptor configuration.'); + } + $callType = $methodDescriptors['callType']; + + // Validate various callType specific configurations. + if ($callType == Call::LONGRUNNING_CALL) { + if (!isset($methodDescriptors['longRunning'])) { + throw new ValidationException("Requested method '$methodName' does not have a longRunning config " . + 'in descriptor configuration.'); + } + // @TODO: check if the client implements `OperationsClientInterface` instead + if (!method_exists($this, 'getOperationsClient')) { + throw new ValidationException('Client missing required getOperationsClient ' . + "for longrunning call '$methodName'"); + } + } elseif ($callType == Call::PAGINATED_CALL) { + if (!isset($methodDescriptors['pageStreaming'])) { + throw new ValidationException("Requested method '$methodName' with callType PAGINATED_CALL does not " . + 'have a pageStreaming in descriptor configuration.'); + } + } + + // LRO are either Standard LRO response type or custom, which are handled by + // startOperationCall, so no need to validate responseType for those callType. + if ($callType != Call::LONGRUNNING_CALL) { + if (!isset($methodDescriptors['responseType'])) { + throw new ValidationException("Requested method '$methodName' does not have a responseType " . + 'in descriptor configuration.'); + } + } + + return $methodDescriptors; + } + + /** + * @param string $methodName + * @param Message $request + * @param array $optionalArgs { + * Call Options + * + * @type array $headers [optional] key-value array containing headers + * @type int $timeoutMillis [optional] the timeout in milliseconds for the call + * @type array $transportOptions [optional] transport-specific call options + * @type RetrySettings|array $retrySettings [optional] A retry settings override for the call. + * } + * + * @experimental + * + * @return PromiseInterface + */ + private function startAsyncCall( + string $methodName, + Message $request, + array $optionalArgs = [] + ) { + // Convert method name to the UpperCamelCase of RPC names from lowerCamelCase of GAPIC method names + // in order to find the method in the descriptor config. + $methodName = ucfirst($methodName); + $methodDescriptors = $this->validateCallConfig($methodName); + + $callType = $methodDescriptors['callType']; + + switch ($callType) { + case Call::PAGINATED_CALL: + return $this->getPagedListResponseAsync( + $methodName, + $optionalArgs, + $methodDescriptors['responseType'], + $request, + $methodDescriptors['interfaceOverride'] ?? $this->serviceName + ); + case Call::SERVER_STREAMING_CALL: + case Call::CLIENT_STREAMING_CALL: + case Call::BIDI_STREAMING_CALL: + throw new ValidationException("Call type '$callType' of requested method " . + "'$methodName' is not supported for async execution."); + } + + return $this->startApiCall($methodName, $request, $optionalArgs); + } + + /** + * @param string $methodName + * @param Message $request + * @param array $optionalArgs { + * Call Options + * + * @type array $headers [optional] key-value array containing headers + * @type int $timeoutMillis [optional] the timeout in milliseconds for the call + * @type array $transportOptions [optional] transport-specific call options + * @type RetrySettings|array $retrySettings [optional] A retry settings + * override for the call. + * } + * + * @experimental + * + * @return PromiseInterface|PagedListResponse|BidiStream|ClientStream|ServerStream + */ + private function startApiCall( + string $methodName, + ?Message $request = null, + array $optionalArgs = [] + ) { + $methodDescriptors = $this->validateCallConfig($methodName); + $callType = $methodDescriptors['callType']; + + // Prepare request-based headers, merge with user-provided headers, + // which take precedence. + $headerParams = $methodDescriptors['headerParams'] ?? []; + $requestHeaders = $this->buildRequestParamsHeader($headerParams, $request); + $optionalArgs['headers'] = array_merge($requestHeaders, $optionalArgs['headers'] ?? []); + + // Default the interface name, if not set, to the client's protobuf service name. + $interfaceName = $methodDescriptors['interfaceOverride'] ?? $this->serviceName; + + // Handle call based on call type configured in the method descriptor config. + if ($callType == Call::LONGRUNNING_CALL) { + return $this->startOperationsCall( + $methodName, + $optionalArgs, + $request, + $this->getOperationsClient(), + $interfaceName, + // Custom operations will define their own operation response type, whereas standard + // LRO defaults to the same type. + $methodDescriptors['responseType'] ?? null + ); + } + + // Fully-qualified name of the response message PHP class. + $decodeType = $methodDescriptors['responseType']; + + if ($callType == Call::PAGINATED_CALL) { + return $this->getPagedListResponse($methodName, $optionalArgs, $decodeType, $request, $interfaceName); + } + + // Unary, and all Streaming types handled by startCall. + return $this->startCall($methodName, $decodeType, $optionalArgs, $request, $callType, $interfaceName); + } + + /** + * @param string $methodName + * @param string $decodeType + * @param array $optionalArgs { + * Call Options + * + * @type array $headers [optional] key-value array containing headers + * @type int $timeoutMillis [optional] the timeout in milliseconds for the call + * @type array $transportOptions [optional] transport-specific call options + * @type RetrySettings|array $retrySettings [optional] A retry settings + * override for the call. + * } + * @param Message $request + * @param int $callType + * @param string $interfaceName + * + * @return PromiseInterface|BidiStream|ClientStream|ServerStream + */ + private function startCall( + string $methodName, + string $decodeType, + array $optionalArgs = [], + ?Message $request = null, + int $callType = Call::UNARY_CALL, + ?string $interfaceName = null + ) { + $optionalArgs = $this->configureCallOptions($optionalArgs); + $callStack = $this->createCallStack( + $this->configureCallConstructionOptions($methodName, $optionalArgs) + ); + + $descriptor = $this->descriptors[$methodName]['grpcStreaming'] ?? null; + + $call = new Call( + $this->buildMethod($interfaceName, $methodName), + $decodeType, + $request, + $descriptor, + $callType + ); + switch ($callType) { + case Call::UNARY_CALL: + $this->modifyUnaryCallable($callStack); + break; + case Call::BIDI_STREAMING_CALL: + case Call::CLIENT_STREAMING_CALL: + case Call::SERVER_STREAMING_CALL: + $this->modifyStreamingCallable($callStack); + break; + } + + return $callStack($call, $optionalArgs + array_filter([ + 'audience' => self::getDefaultAudience() + ])); + } + + /** + * @param array $callConstructionOptions { + * Call Construction Options + * + * @type RetrySettings $retrySettings [optional] A retry settings override + * For the call. + * @type array $autoPopulationSettings Settings for + * auto population of particular request fields if unset. + * } + * + * @return callable + */ + private function createCallStack(array $callConstructionOptions) + { + $fixedHeaders = $this->agentHeader; + if ($quotaProject = $this->credentialsWrapper->getQuotaProject()) { + $fixedHeaders += [ + 'X-Goog-User-Project' => [$quotaProject] + ]; + } + + if (isset($this->apiVersion)) { + $fixedHeaders += [ + 'X-Goog-Api-Version' => [$this->apiVersion] + ]; + } + + $callStack = function (Call $call, array $options) { + $startCallMethod = $this->transportCallMethods[$call->getCallType()]; + return $this->transport->$startCallMethod($call, $options); + }; + $callStack = new CredentialsWrapperMiddleware($callStack, $this->credentialsWrapper); + $callStack = new FixedHeaderMiddleware($callStack, $fixedHeaders, true); + $callStack = new RetryMiddleware($callStack, $callConstructionOptions['retrySettings']); + $callStack = new RequestAutoPopulationMiddleware( + $callStack, + $callConstructionOptions['autoPopulationSettings'], + ); + $callStack = new OptionsFilterMiddleware($callStack, [ + 'headers', + 'timeoutMillis', + 'transportOptions', + 'metadataCallback', + 'audience', + 'metadataReturnType' + ]); + + foreach (\array_reverse($this->middlewareCallables) as $fn) { + /** @var MiddlewareInterface $callStack */ + $callStack = $fn($callStack); + } + + return $callStack; + } + + /** + * @param string $methodName + * @param array $optionalArgs { + * Optional arguments + * + * @type RetrySettings|array $retrySettings [optional] A retry settings + * override for the call. + * } + * + * @return array + */ + private function configureCallConstructionOptions(string $methodName, array $optionalArgs) + { + $retrySettings = $this->retrySettings[$methodName]; + $autoPopulatedFields = $this->descriptors[$methodName]['autoPopulatedFields'] ?? []; + // Allow for retry settings to be changed at call time + if (isset($optionalArgs['retrySettings'])) { + if ($optionalArgs['retrySettings'] instanceof RetrySettings) { + $retrySettings = $optionalArgs['retrySettings']; + } else { + $retrySettings = $retrySettings->with( + $optionalArgs['retrySettings'] + ); + } + } + return [ + 'retrySettings' => $retrySettings, + 'autoPopulationSettings' => $autoPopulatedFields, + ]; + } + + /** + * @return array + */ + private function configureCallOptions(array $optionalArgs): array + { + if ($this->isBackwardsCompatibilityMode()) { + return $optionalArgs; + } + // cast to CallOptions for new surfaces only + return (new CallOptions($optionalArgs))->toArray(); + } + + /** + * @param string $methodName + * @param array $optionalArgs { + * Call Options + * + * @type array $headers [optional] key-value array containing headers + * @type int $timeoutMillis [optional] the timeout in milliseconds for the call + * @type array $transportOptions [optional] transport-specific call options + * } + * @param Message $request + * @param OperationsClient|object $client + * @param string $interfaceName + * @param string $operationClass If provided, will be used instead of the default + * operation response class of {@see \Google\LongRunning\Operation}. + * + * @return PromiseInterface + */ + private function startOperationsCall( + string $methodName, + array $optionalArgs, + Message $request, + $client, + ?string $interfaceName = null, + ?string $operationClass = null + ) { + $optionalArgs = $this->configureCallOptions($optionalArgs); + $callStack = $this->createCallStack( + $this->configureCallConstructionOptions($methodName, $optionalArgs) + ); + $descriptor = $this->descriptors[$methodName]['longRunning']; + $metadataReturnType = null; + + // Call the methods supplied in "additionalArgumentMethods" on the request Message object + // to build the "additionalOperationArguments" option for the operation response. + if (isset($descriptor['additionalArgumentMethods'])) { + $additionalArgs = []; + foreach ($descriptor['additionalArgumentMethods'] as $additionalArgsMethodName) { + $additionalArgs[] = $request->$additionalArgsMethodName(); + } + $descriptor['additionalOperationArguments'] = $additionalArgs; + unset($descriptor['additionalArgumentMethods']); + } + + if (isset($descriptor['metadataReturnType'])) { + $metadataReturnType = $descriptor['metadataReturnType']; + } + + $callStack = new OperationsMiddleware($callStack, $client, $descriptor); + + $call = new Call( + $this->buildMethod($interfaceName, $methodName), + $operationClass ?: Operation::class, + $request, + [], + Call::UNARY_CALL + ); + + $this->modifyUnaryCallable($callStack); + return $callStack($call, $optionalArgs + array_filter([ + 'metadataReturnType' => $metadataReturnType, + 'audience' => self::getDefaultAudience() + ])); + } + + /** + * @param string $methodName + * @param array $optionalArgs + * @param string $decodeType + * @param Message $request + * @param string $interfaceName + * + * @return PagedListResponse + */ + private function getPagedListResponse( + string $methodName, + array $optionalArgs, + string $decodeType, + Message $request, + ?string $interfaceName = null + ) { + return $this->getPagedListResponseAsync( + $methodName, + $optionalArgs, + $decodeType, + $request, + $interfaceName + )->wait(); + } + + /** + * @param string $methodName + * @param array $optionalArgs + * @param string $decodeType + * @param Message $request + * @param string $interfaceName + * + * @return PromiseInterface + */ + private function getPagedListResponseAsync( + string $methodName, + array $optionalArgs, + string $decodeType, + Message $request, + ?string $interfaceName = null + ) { + $optionalArgs = $this->configureCallOptions($optionalArgs); + $callStack = $this->createCallStack( + $this->configureCallConstructionOptions($methodName, $optionalArgs) + ); + $descriptor = new PageStreamingDescriptor( + $this->descriptors[$methodName]['pageStreaming'] + ); + $callStack = new PagedMiddleware($callStack, $descriptor); + + $call = new Call( + $this->buildMethod($interfaceName, $methodName), + $decodeType, + $request, + [], + Call::UNARY_CALL + ); + + $this->modifyUnaryCallable($callStack); + return $callStack($call, $optionalArgs + array_filter([ + 'audience' => self::getDefaultAudience() + ])); + } + + /** + * @param string $interfaceName + * @param string $methodName + * + * @return string + */ + private function buildMethod(?string $interfaceName = null, ?string $methodName = null) + { + return sprintf( + '%s/%s', + $interfaceName ?: $this->serviceName, + $methodName + ); + } + + /** + * @param array $headerParams + * @param Message|null $request + * + * @return array + */ + private function buildRequestParamsHeader(array $headerParams, ?Message $request = null) + { + $headers = []; + + // No request message means no request-based headers. + if (!$request) { + return $headers; + } + + foreach ($headerParams as $headerParam) { + $msg = $request; + $value = null; + foreach ($headerParam['fieldAccessors'] as $accessor) { + $value = $msg->$accessor(); + + // In case the field in question is nested in another message, + // skip the header param when the nested message field is unset. + $msg = $value; + if (is_null($msg)) { + break; + } + } + + $keyName = $headerParam['keyName']; + + // If there are value pattern matchers configured and the target + // field was set, evaluate the matchers in the order that they were + // annotated in with last one matching wins. + $original = $value; + $matchers = isset($headerParam['matchers']) && !is_null($value) ? + $headerParam['matchers'] : + []; + foreach ($matchers as $matcher) { + $matches = []; + if (preg_match($matcher, $original, $matches)) { + $value = $matches[$keyName]; + } + } + + // If there are no matches or the target field was unset, skip this + // header param. + if (!$value) { + continue; + } + + $headers[$keyName] = $value; + } + + $requestParams = new RequestParamsHeaderDescriptor($headers); + + return $requestParams->getHeader(); + } + + /** + * The SERVICE_ADDRESS constant is set by GAPIC clients + */ + private static function getDefaultAudience() + { + if (!defined('self::SERVICE_ADDRESS')) { + return null; + } + return 'https://' . self::SERVICE_ADDRESS . '/'; // @phpstan-ignore-line + } + + /** + * Modify the unary callable. + * + * @param callable $callable + * @access private + */ + protected function modifyUnaryCallable(callable &$callable) + { + // Do nothing - this method exists to allow callable modification by partial veneers. + } + + /** + * Modify the streaming callable. + * + * @param callable $callable + * @access private + */ + protected function modifyStreamingCallable(callable &$callable) + { + // Do nothing - this method exists to allow callable modification by partial veneers. + } + + /** + * @internal + */ + private function isBackwardsCompatibilityMode(): bool + { + return $this->backwardsCompatibilityMode + ?? $this->backwardsCompatibilityMode = substr(__CLASS__, -11) === 'GapicClient'; + } +} diff --git a/vendor/google/gax/src/GrpcSupportTrait.php b/vendor/google/gax/src/GrpcSupportTrait.php new file mode 100644 index 0000000..85251ee --- /dev/null +++ b/vendor/google/gax/src/GrpcSupportTrait.php @@ -0,0 +1,63 @@ +baseUri, + $path + )); + if ($queryParams) { + $uri = $this->buildUriWithQuery( + $uri, + $queryParams + ); + } + return $uri; + } +} diff --git a/vendor/google/gax/src/Middleware/CredentialsWrapperMiddleware.php b/vendor/google/gax/src/Middleware/CredentialsWrapperMiddleware.php new file mode 100644 index 0000000..7d89098 --- /dev/null +++ b/vendor/google/gax/src/Middleware/CredentialsWrapperMiddleware.php @@ -0,0 +1,65 @@ +nextHandler = $nextHandler; + $this->credentialsWrapper = $credentialsWrapper; + } + + public function __invoke(Call $call, array $options) + { + $next = $this->nextHandler; + return $next( + $call, + $options + ['credentialsWrapper' => $this->credentialsWrapper] + ); + } +} diff --git a/vendor/google/gax/src/Middleware/FixedHeaderMiddleware.php b/vendor/google/gax/src/Middleware/FixedHeaderMiddleware.php new file mode 100644 index 0000000..43fbb50 --- /dev/null +++ b/vendor/google/gax/src/Middleware/FixedHeaderMiddleware.php @@ -0,0 +1,72 @@ +nextHandler = $nextHandler; + $this->headers = $headers; + $this->overrideUserHeaders = $overrideUserHeaders; + } + + public function __invoke(Call $call, array $options) + { + $userHeaders = $options['headers'] ?? []; + if ($this->overrideUserHeaders) { + $options['headers'] = $this->headers + $userHeaders; + } else { + $options['headers'] = $userHeaders + $this->headers; + } + + $next = $this->nextHandler; + return $next( + $call, + $options + ); + } +} diff --git a/vendor/google/gax/src/Middleware/MiddlewareInterface.php b/vendor/google/gax/src/Middleware/MiddlewareInterface.php new file mode 100644 index 0000000..224006f --- /dev/null +++ b/vendor/google/gax/src/Middleware/MiddlewareInterface.php @@ -0,0 +1,91 @@ +handler = $handler; + * } + * public function __invoke(Call $call, array $options) + * { + * echo "Logging info about the call: " . $call->getMethod(); + * return ($this->handler)($call, $options); + * } + * } + * ``` + * + * Next, add the middleware to any class implementing `GapicClientTrait` by passing in a + * callable which returns the new middleware: + * + * ``` + * $client = new ExampleGoogleApiServiceClient(); + * $client->addMiddleware(function (MiddlewareInterface $handler) { + * return new MyTestMiddleware($handler); + * }); + * ``` + */ +interface MiddlewareInterface +{ + /** + * Modify or observe the API call request and response. + * The returned value must include the result of the next MiddlewareInterface invocation in the + * chain. + * + * @param Call $call + * @param array $options + * @return PromiseInterface|ClientStream|ServerStream|BidiStream + */ + public function __invoke(Call $call, array $options); +} diff --git a/vendor/google/gax/src/Middleware/OperationsMiddleware.php b/vendor/google/gax/src/Middleware/OperationsMiddleware.php new file mode 100644 index 0000000..2da3ed3 --- /dev/null +++ b/vendor/google/gax/src/Middleware/OperationsMiddleware.php @@ -0,0 +1,73 @@ +nextHandler = $nextHandler; + $this->operationsClient = $operationsClient; + $this->descriptor = $descriptor; + } + + public function __invoke(Call $call, array $options) + { + $next = $this->nextHandler; + return $next( + $call, + $options + )->then(function (Message $response) { + $options = $this->descriptor + [ + 'lastProtoResponse' => $response + ]; + $operationNameMethod = $options['operationNameMethod'] ?? 'getName'; + $operationName = call_user_func([$response, $operationNameMethod]); + return new OperationResponse($operationName, $this->operationsClient, $options); + }); + } +} diff --git a/vendor/google/gax/src/Middleware/OptionsFilterMiddleware.php b/vendor/google/gax/src/Middleware/OptionsFilterMiddleware.php new file mode 100644 index 0000000..bcc4052 --- /dev/null +++ b/vendor/google/gax/src/Middleware/OptionsFilterMiddleware.php @@ -0,0 +1,65 @@ +nextHandler = $nextHandler; + $this->permittedOptions = $permittedOptions; + } + + public function __invoke(Call $call, array $options) + { + $next = $this->nextHandler; + $filteredOptions = $this->pluckArray($this->permittedOptions, $options); + return $next( + $call, + $filteredOptions + ); + } +} diff --git a/vendor/google/gax/src/Middleware/PagedMiddleware.php b/vendor/google/gax/src/Middleware/PagedMiddleware.php new file mode 100644 index 0000000..e518763 --- /dev/null +++ b/vendor/google/gax/src/Middleware/PagedMiddleware.php @@ -0,0 +1,78 @@ +nextHandler = $nextHandler; + $this->descriptor = $descriptor; + } + + public function __invoke(Call $call, array $options) + { + $next = $this->nextHandler; + $descriptor = $this->descriptor; + return $next($call, $options)->then( + function (Message $response) use ($call, $next, $options, $descriptor) { + $page = new Page( + $call, + $options, + $next, + $descriptor, + $response + ); + return new PagedListResponse($page); + } + ); + } +} diff --git a/vendor/google/gax/src/Middleware/RequestAutoPopulationMiddleware.php b/vendor/google/gax/src/Middleware/RequestAutoPopulationMiddleware.php new file mode 100644 index 0000000..4811664 --- /dev/null +++ b/vendor/google/gax/src/Middleware/RequestAutoPopulationMiddleware.php @@ -0,0 +1,104 @@ + */ + private $autoPopulationSettings; + + public function __construct( + callable $nextHandler, + array $autoPopulationSettings + ) { + $this->nextHandler = $nextHandler; + $this->autoPopulationSettings = $autoPopulationSettings; + } + + /** + * @param Call $call + * @param array $options + * + * @return PromiseInterface + */ + public function __invoke(Call $call, array $options) + { + $next = $this->nextHandler; + + if (empty($this->autoPopulationSettings)) { + return $next($call, $options); + } + + $request = $call->getMessage(); + foreach ($this->autoPopulationSettings as $fieldName => $valueType) { + $getFieldName = 'get' . ucwords($fieldName); + // We use a getter instead of a hazzer here because there's no need to + // differentiate between isset and an empty default value. Even if a + // field is explicitly set to an empty string, we want to autopopulate it. + if (empty($request->$getFieldName())) { + $setFieldName = 'set' . ucwords($fieldName); + switch ($valueType) { + case Format::UUID4: + $request->$setFieldName(Uuid::uuid4()->toString()); + break; + default: + throw new \UnexpectedValueException(sprintf( + 'Value type %s::%s not supported for auto population of the field %s', + Format::class, + Format::name($valueType), + $fieldName + )); + } + } + } + $call = $call->withMessage($request); + return $next( + $call, + $options + ); + } +} diff --git a/vendor/google/gax/src/Middleware/ResponseMetadataMiddleware.php b/vendor/google/gax/src/Middleware/ResponseMetadataMiddleware.php new file mode 100644 index 0000000..c8f1608 --- /dev/null +++ b/vendor/google/gax/src/Middleware/ResponseMetadataMiddleware.php @@ -0,0 +1,71 @@ +nextHandler = $nextHandler; + } + + public function __invoke(Call $call, array $options) + { + $metadataReceiver = new Promise(); + $options['metadataCallback'] = function ($metadata) use ($metadataReceiver) { + $metadataReceiver->resolve($metadata); + }; + $next = $this->nextHandler; + return $next($call, $options)->then( + function ($response) use ($metadataReceiver) { + if ($metadataReceiver->getState() === PromiseInterface::FULFILLED) { + return [$response, $metadataReceiver->wait()]; + } else { + return [$response, []]; + } + } + ); + } +} diff --git a/vendor/google/gax/src/Middleware/RetryMiddleware.php b/vendor/google/gax/src/Middleware/RetryMiddleware.php new file mode 100644 index 0000000..4e8f6e7 --- /dev/null +++ b/vendor/google/gax/src/Middleware/RetryMiddleware.php @@ -0,0 +1,199 @@ +nextHandler = $nextHandler; + $this->retrySettings = $retrySettings; + $this->deadlineMs = $deadlineMs; + $this->retryAttempts = $retryAttempts; + } + + /** + * @param Call $call + * @param array $options + * + * @return PromiseInterface + */ + public function __invoke(Call $call, array $options) + { + $nextHandler = $this->nextHandler; + + if (!isset($options['timeoutMillis'])) { + // default to "noRetriesRpcTimeoutMillis" when retries are disabled, otherwise use "initialRpcTimeoutMillis" + if (!$this->retrySettings->retriesEnabled() && $this->retrySettings->getNoRetriesRpcTimeoutMillis() > 0) { + $options['timeoutMillis'] = $this->retrySettings->getNoRetriesRpcTimeoutMillis(); + } elseif ($this->retrySettings->getInitialRpcTimeoutMillis() > 0) { + $options['timeoutMillis'] = $this->retrySettings->getInitialRpcTimeoutMillis(); + } + } + + // Setting the retry attempt for logging + if ($this->retryAttempts > 0) { + $options['retryAttempt'] = $this->retryAttempts; + } + + // Call the handler immediately if retry settings are disabled. + if (!$this->retrySettings->retriesEnabled()) { + return $nextHandler($call, $options); + } + + return $nextHandler($call, $options)->then(null, function ($e) use ($call, $options) { + $retryFunction = $this->getRetryFunction(); + + // If the number of retries has surpassed the max allowed retries + // then throw the exception as we normally would. + // If the maxRetries is set to 0, then we don't check this condition. + if (0 !== $this->retrySettings->getMaxRetries() + && $this->retryAttempts >= $this->retrySettings->getMaxRetries() + ) { + throw $e; + } + // If the retry function returns false then throw the + // exception as we normally would. + if (!$retryFunction($e, $options)) { + throw $e; + } + + // Retry function returned true, so we attempt another retry + return $this->retry($call, $options, $e->getStatus()); + }); + } + + /** + * @param Call $call + * @param array $options + * @param string $status + * + * @return PromiseInterface + * @throws ApiException + */ + private function retry(Call $call, array $options, string $status) + { + $delayMult = $this->retrySettings->getRetryDelayMultiplier(); + $maxDelayMs = $this->retrySettings->getMaxRetryDelayMillis(); + $timeoutMult = $this->retrySettings->getRpcTimeoutMultiplier(); + $maxTimeoutMs = $this->retrySettings->getMaxRpcTimeoutMillis(); + $totalTimeoutMs = $this->retrySettings->getTotalTimeoutMillis(); + + $delayMs = $this->retrySettings->getInitialRetryDelayMillis(); + $timeoutMs = $options['timeoutMillis']; + $currentTimeMs = $this->getCurrentTimeMs(); + $deadlineMs = $this->deadlineMs ?: $currentTimeMs + $totalTimeoutMs; + + if ($currentTimeMs >= $deadlineMs) { + throw new ApiException( + 'Retry total timeout exceeded.', + \Google\Rpc\Code::DEADLINE_EXCEEDED, + ApiStatus::DEADLINE_EXCEEDED + ); + } + + $delayMs = min($delayMs * $delayMult, $maxDelayMs); + $timeoutMs = (int) min( + $timeoutMs * $timeoutMult, + $maxTimeoutMs, + $deadlineMs - $this->getCurrentTimeMs() + ); + + $nextHandler = new RetryMiddleware( + $this->nextHandler, + $this->retrySettings->with([ + 'initialRetryDelayMillis' => $delayMs, + ]), + $deadlineMs, + $this->retryAttempts + 1 + ); + + // Set the timeout for the call + $options['timeoutMillis'] = $timeoutMs; + + return $nextHandler( + $call, + $options + ); + } + + protected function getCurrentTimeMs() + { + return microtime(true) * 1000.0; + } + + /** + * This is the default retry behaviour. + */ + private function getRetryFunction() + { + return $this->retrySettings->getRetryFunction() ?? + function (\Throwable $e, array $options): bool { + // This is the default retry behaviour, i.e. we don't retry an ApiException + // and for other exception types, we only retry when the error code is in + // the list of retryable error codes. + if (!$e instanceof ApiException) { + return false; + } + + if (!in_array($e->getStatus(), $this->retrySettings->getRetryableCodes())) { + return false; + } + + return true; + }; + } +} diff --git a/vendor/google/gax/src/OperationResponse.php b/vendor/google/gax/src/OperationResponse.php new file mode 100644 index 0000000..8e58c81 --- /dev/null +++ b/vendor/google/gax/src/OperationResponse.php @@ -0,0 +1,539 @@ + self::DEFAULT_POLLING_INTERVAL, + 'pollDelayMultiplier' => self::DEFAULT_POLLING_MULTIPLIER, + 'maxPollDelayMillis' => self::DEFAULT_MAX_POLLING_INTERVAL, + 'totalPollTimeoutMillis' => self::DEFAULT_MAX_POLLING_DURATION, + ]; + + private ?object $lastProtoResponse; + private bool $deleted = false; + + private array $additionalArgs; + private string $getOperationMethod; + private ?string $cancelOperationMethod; + private ?string $deleteOperationMethod; + private string $getOperationRequest; + private ?string $cancelOperationRequest; + private ?string $deleteOperationRequest; + private string $operationStatusMethod; + /** @var mixed */ + private $operationStatusDoneValue; + private ?string $operationErrorCodeMethod; + private ?string $operationErrorMessageMethod; + + /** + * OperationResponse constructor. + * + * @param string $operationName + * @param object $operationsClient + * @param array $options { + * Optional. Options for configuring the operation response object. + * + * @type string $operationReturnType The return type of the longrunning operation. + * @type string $metadataReturnType The type of the metadata returned in the operation response. + * @type int $initialPollDelayMillis The initial polling interval to use, in milliseconds. + * @type int $pollDelayMultiplier Multiplier applied to the polling interval on each retry. + * @type int $maxPollDelayMillis The maximum polling interval to use, in milliseconds. + * @type int $totalPollTimeoutMillis The maximum amount of time to continue polling. + * @type object $lastProtoResponse A response already received from the server. + * @type string $getOperationMethod The method on $operationsClient to get the operation. + * @type string $cancelOperationMethod The method on $operationsClient to cancel the operation. + * @type string $deleteOperationMethod The method on $operationsClient to delete the operation. + * @type string $operationStatusMethod The method on the operation to get the status. + * @type string $operationStatusDoneValue The method on the operation to determine if the status is done. + * @type array $additionalOperationArguments Additional arguments to pass to $operationsClient methods. + * @type string $operationErrorCodeMethod The method on the operation to get the error code + * @type string $operationErrorMessageMethod The method on the operation to get the error status + * } + */ + public function __construct(string $operationName, $operationsClient, array $options = []) + { + $this->operationName = $operationName; + $this->operationsClient = $operationsClient; + $options += [ + 'operationReturnType' => null, + 'metadataReturnType' => null, + 'lastProtoResponse' => null, + 'getOperationMethod' => 'getOperation', + 'cancelOperationMethod' => 'cancelOperation', + 'deleteOperationMethod' => 'deleteOperation', + 'operationStatusMethod' => 'getDone', + 'operationStatusDoneValue' => true, + 'additionalOperationArguments' => [], + 'operationErrorCodeMethod' => null, + 'operationErrorMessageMethod' => null, + 'getOperationRequest' => GetOperationRequest::class, + 'cancelOperationRequest' => CancelOperationRequest::class, + 'deleteOperationRequest' => DeleteOperationRequest::class, + ]; + $this->operationReturnType = $options['operationReturnType']; + $this->metadataReturnType = $options['metadataReturnType']; + $this->lastProtoResponse = $options['lastProtoResponse']; + $this->getOperationMethod = $options['getOperationMethod']; + $this->cancelOperationMethod = $options['cancelOperationMethod']; + $this->deleteOperationMethod = $options['deleteOperationMethod']; + $this->additionalArgs = $options['additionalOperationArguments']; + $this->operationStatusMethod = $options['operationStatusMethod']; + $this->operationStatusDoneValue = $options['operationStatusDoneValue']; + $this->operationErrorCodeMethod = $options['operationErrorCodeMethod']; + $this->operationErrorMessageMethod = $options['operationErrorMessageMethod']; + $this->getOperationRequest = $options['getOperationRequest']; + $this->cancelOperationRequest = $options['cancelOperationRequest']; + $this->deleteOperationRequest = $options['deleteOperationRequest']; + + if (isset($options['initialPollDelayMillis'])) { + $this->defaultPollSettings['initialPollDelayMillis'] = $options['initialPollDelayMillis']; + } + if (isset($options['pollDelayMultiplier'])) { + $this->defaultPollSettings['pollDelayMultiplier'] = $options['pollDelayMultiplier']; + } + if (isset($options['maxPollDelayMillis'])) { + $this->defaultPollSettings['maxPollDelayMillis'] = $options['maxPollDelayMillis']; + } + if (isset($options['totalPollTimeoutMillis'])) { + $this->defaultPollSettings['totalPollTimeoutMillis'] = $options['totalPollTimeoutMillis']; + } + } + + /** + * Check whether the operation has completed. + * + * @return bool + */ + public function isDone() + { + if (!$this->hasProtoResponse()) { + return false; + } + + $status = call_user_func([$this->lastProtoResponse, $this->operationStatusMethod]); + if (is_null($status)) { + return false; + } + + return $status === $this->operationStatusDoneValue; + } + + /** + * Check whether the operation completed successfully. If the operation is not complete, or if the operation + * failed, return false. + * + * @return bool + */ + public function operationSucceeded() + { + if (!$this->hasProtoResponse()) { + return false; + } + + if (!$this->canHaveResult()) { + // For Operations which do not have a result, we consider a successful + // operation when the operation has completed without errors. + return $this->isDone() && !$this->hasErrors(); + } + + return !is_null($this->getResult()); + } + + /** + * Check whether the operation failed. If the operation is not complete, or if the operation + * succeeded, return false. + * + * @return bool + */ + public function operationFailed() + { + return $this->hasErrors(); + } + + /** + * Get the formatted name of the operation + * + * @return string The formatted name of the operation + */ + public function getName() + { + return $this->operationName; + } + + /** + * Poll the server in a loop until the operation is complete. + * + * Return true if the operation completed, otherwise return false. If the + * $options['totalPollTimeoutMillis'] setting is not set (or set <= 0) then + * pollUntilComplete will continue polling until the operation completes, + * and therefore will always return true. + * + * @param array $options { + * Options for configuring the polling behaviour. + * + * @type int $initialPollDelayMillis The initial polling interval to use, in milliseconds. + * @type int $pollDelayMultiplier Multiplier applied to the polling interval on each retry. + * @type int $maxPollDelayMillis The maximum polling interval to use, in milliseconds. + * @type int $totalPollTimeoutMillis The maximum amount of time to continue polling, in milliseconds. + * } + * @throws ApiException If an API call fails. + * @throws ValidationException + * @return bool Indicates if the operation completed. + */ + public function pollUntilComplete(array $options = []) + { + if ($this->isDone()) { + return true; + } + + $pollSettings = array_merge($this->defaultPollSettings, $options); + return $this->poll(function () { + $this->reload(); + return $this->isDone(); + }, $pollSettings); + } + + /** + * Reload the status of the operation with a request to the service. + * + * @throws ApiException If the API call fails. + * @throws ValidationException If called on a deleted operation. + */ + public function reload() + { + if ($this->deleted) { + throw new ValidationException('Cannot call reload() on a deleted operation'); + } + + $requestClass = $this->isNewSurfaceOperationsClient() ? $this->getOperationRequest : null; + $this->lastProtoResponse = $this->operationsCall($this->getOperationMethod, $requestClass); + } + + /** + * Return the result of the operation. If operationSucceeded() is false, + * return null. + * + * @return T|null + */ + public function getResult() + { + if (!$this->hasProtoResponse()) { + return null; + } + + if (!$this->canHaveResult()) { + return null; + } + + if (!$this->isDone()) { + return null; + } + + /** @var Any|null $anyResponse */ + $anyResponse = $this->lastProtoResponse->getResponse(); + if (is_null($anyResponse)) { + return null; + } + if (is_null($this->operationReturnType)) { + return $anyResponse; + } + $operationReturnType = $this->operationReturnType; + /** @var Message $response */ + $response = new $operationReturnType(); + $response->mergeFromString($anyResponse->getValue()); + return $response; + } + + /** + * If the operation failed, return the status. If operationFailed() is false, return null. + * + * @return Status|null The status of the operation in case of failure, or null if + * operationFailed() is false. + */ + public function getError() + { + if (!$this->hasProtoResponse() || !$this->isDone()) { + return null; + } + + if ($this->operationErrorCodeMethod || $this->operationErrorMessageMethod) { + $errorCode = $this->operationErrorCodeMethod + ? call_user_func([$this->lastProtoResponse, $this->operationErrorCodeMethod]) + : null; + $errorMessage = $this->operationErrorMessageMethod + ? call_user_func([$this->lastProtoResponse, $this->operationErrorMessageMethod]) + : null; + return (new Status()) + ->setCode(ApiStatus::rpcCodeFromHttpStatusCode($errorCode)) + ->setMessage($errorMessage); + } + + if (method_exists($this->lastProtoResponse, 'getError')) { + return $this->lastProtoResponse->getError(); + } + + return null; + } + + /** + * Get an array containing the values of 'operationReturnType', 'metadataReturnType', and + * the polling options `initialPollDelayMillis`, `pollDelayMultiplier`, `maxPollDelayMillis`, + * and `totalPollTimeoutMillis`. The array can be passed as the $options argument to the + * constructor when creating another OperationResponse object. + * + * @return array + */ + public function getDescriptorOptions() + { + return [ + 'operationReturnType' => $this->operationReturnType, + 'metadataReturnType' => $this->metadataReturnType, + ] + $this->defaultPollSettings; + } + + /** + * @return Operation|mixed|null The last Operation object received from the server. + */ + public function getLastProtoResponse() + { + return $this->lastProtoResponse; + } + + /** + * @return object The OperationsClient object used to make + * requests to the operations API. + */ + public function getOperationsClient() + { + return $this->operationsClient; + } + + /** + * Cancel the long-running operation. + * + * For operations of type Google\LongRunning\Operation, this method starts + * asynchronous cancellation on a long-running operation. The server + * makes a best effort to cancel the operation, but success is not + * guaranteed. If the server doesn't support this method, it will throw an + * ApiException with code \Google\Rpc\Code::UNIMPLEMENTED. Clients can continue + * to use reload and pollUntilComplete methods to check whether the cancellation + * succeeded or whether the operation completed despite cancellation. + * On successful cancellation, the operation is not deleted; instead, it becomes + * an operation with a getError() value with a \Google\Rpc\Status code of 1, + * corresponding to \Google\Rpc\Code::CANCELLED. + * + * @throws ApiException If the API call fails. + * @throws LogicException If the API call method has not been configured + */ + public function cancel() + { + if (is_null($this->cancelOperationMethod)) { + throw new LogicException('The cancel operation is not supported by this API'); + } + + $requestClass = $this->isNewSurfaceOperationsClient() ? $this->cancelOperationRequest : null; + $this->operationsCall($this->cancelOperationMethod, $requestClass); + } + + /** + * Delete the long-running operation. + * + * For operations of type Google\LongRunning\Operation, this method + * indicates that the client is no longer interested in the operation result. + * It does not cancel the operation. If the server doesn't support this method, + * it will throw an ApiException with code \Google\Rpc\Code::UNIMPLEMENTED. + * + * @throws ApiException If the API call fails. + * @throws LogicException If the API call method has not been configured + */ + public function delete() + { + if (is_null($this->deleteOperationMethod)) { + throw new LogicException('The delete operation is not supported by this API'); + } + + $requestClass = $this->isNewSurfaceOperationsClient() ? $this->deleteOperationRequest : null; + $this->operationsCall($this->deleteOperationMethod, $requestClass); + $this->deleted = true; + } + + /** + * Get the metadata returned with the last proto response. If a metadata type was provided, then + * the return value will be of that type - otherwise, the return value will be of type Any. If + * no metadata object is available, returns null. + * + * @return mixed The metadata returned from the server in the last response. + */ + public function getMetadata() + { + if (!$this->hasProtoResponse()) { + return null; + } + + if (!method_exists($this->lastProtoResponse, 'getMetadata')) { + // The call to getMetadata is only for OnePlatform LROs, and is not + // supported by other LRO GAPIC clients (e.g. Compute) + return null; + } + + /** @var Any|null $any */ + $any = $this->lastProtoResponse->getMetadata(); + if (is_null($this->metadataReturnType)) { + return $any; + } + if (is_null($any)) { + return null; + } + // @TODO: This is probably not doing anything and can be removed in the next release. + if (is_null($any->getValue())) { + return null; + } + $metadataReturnType = $this->metadataReturnType; + /** @var Message $metadata */ + $metadata = new $metadataReturnType(); + $metadata->mergeFromString($any->getValue()); + return $metadata; + } + + /** + * Call the operations client to perform an operation. + * + * @param string $method The method to call on the operations client. + * @param string|null $requestClass The request class to use for the call. + * Will be null for legacy operations clients. + */ + private function operationsCall(string $method, ?string $requestClass) + { + // V1 GAPIC clients have an empty $requestClass + if (empty($requestClass)) { + if ($this->additionalArgs) { + return $this->operationsClient->$method( + $this->getName(), + ...array_values($this->additionalArgs) + ); + } + return $this->operationsClient->$method($this->getName()); + } + + if (!method_exists($requestClass, 'build')) { + throw new LogicException('Request class must support the static build method'); + } + // In V2 of Compute, the Request "build" methods contain the operation ID last instead + // of first. Compute is the only API which uses $additionalArgs, so switching the order + // will not break anything. + $request = $requestClass::build(...array_merge( + array_values($this->additionalArgs), + [$this->getName()] + )); + return $this->operationsClient->$method($request); + } + + private function canHaveResult() + { + // The call to getResponse is only for OnePlatform LROs, and is not + // supported by other LRO GAPIC clients (e.g. Compute) + return method_exists($this->lastProtoResponse, 'getResponse'); + } + + private function hasErrors() + { + if (!$this->hasProtoResponse()) { + return false; + } + + if (method_exists($this->lastProtoResponse, 'getError')) { + return !empty($this->lastProtoResponse->getError()); + } + + if ($this->operationErrorCodeMethod) { + $errorCode = call_user_func([$this->lastProtoResponse, $this->operationErrorCodeMethod]); + return !empty($errorCode); + } + + // This should never happen unless an API is misconfigured + throw new LogicException('Unable to determine operation error status for this service'); + } + + private function hasProtoResponse() + { + return !is_null($this->lastProtoResponse); + } + + private function isNewSurfaceOperationsClient(): bool + { + return !$this->operationsClient instanceof LegacyOperationsClient + && false !== strpos(get_class($this->operationsClient), self::NEW_CLIENT_NAMESPACE); + } +} diff --git a/vendor/google/gax/src/Options/CallOptions.php b/vendor/google/gax/src/Options/CallOptions.php new file mode 100644 index 0000000..bae69dd --- /dev/null +++ b/vendor/google/gax/src/Options/CallOptions.php @@ -0,0 +1,160 @@ +> $headers + * Key-value array containing headers. + * @type int $timeoutMillis + * The timeout in milliseconds for the call. + * @type array $transportOptions + * Transport-specific call options. See {@see CallOptions::setTransportOptions}. + * @type RetrySettings|array $retrySettings + * A retry settings override for the call. If $retrySettings is an + * array, the settings will be merged with the method's default + * retry settings. If $retrySettings is a RetrySettings object, + * that object will be used instead of the method defaults. + * } + */ + public function __construct(array $options) + { + $this->fromArray($options); + } + + /** + * Sets the array of options as class properites. + * + * @param array $arr See the constructor for the list of supported options. + */ + private function fromArray(array $arr): void + { + $this->setHeaders($arr['headers'] ?? []); + $this->setTimeoutMillis($arr['timeoutMillis'] ?? null); + $this->setTransportOptions($arr['transportOptions'] ?? []); + $this->setRetrySettings($arr['retrySettings'] ?? null); + } + + /** + * @param array $headers + */ + public function setHeaders(array $headers): self + { + $this->headers = $headers; + + return $this; + } + + /** + * @param int|null $timeoutMillis + */ + public function setTimeoutMillis(?int $timeoutMillis): self + { + $this->timeoutMillis = $timeoutMillis; + + return $this; + } + + /** + * @param array $transportOptions { + * Transport-specific call-time options. + * + * @type array $grpcOptions + * Key-value pairs for gRPC-specific options passed as the `$options` argument to {@see \Grpc\BaseStub} + * request methods. Current options are `call_credentials_callback` and `timeout`. + * **NOTE**: This library sets `call_credentials_callback` using {@see CredentialsWrapper}, and `timeout` + * using the `timeoutMillis` call option, so these options are not very useful. + * @type array $grpcFallbackOptions + * Key-value pairs for gRPC fallback specific options passed as the `$options` argument to the + * `$httpHandler` callable. By default these are passed to {@see \GuzzleHttp\Client} as request options. + * See {@link https://docs.guzzlephp.org/en/stable/request-options.html}. + * @type array $restOptions + * Key-value pairs for REST-specific options passed as the `$options` argument to the `$httpHandler` + * callable. By default these are passed to {@see \GuzzleHttp\Client} as request options. + * See {@link https://docs.guzzlephp.org/en/stable/request-options.html}. + * } + */ + public function setTransportOptions(array $transportOptions): self + { + $this->transportOptions = $transportOptions; + + return $this; + } + + /** + * @deprecated use CallOptions::setTransportOptions + */ + public function setTransportSpecificOptions(array $transportSpecificOptions): self + { + $this->setTransportOptions($transportSpecificOptions); + + return $this; + } + + /** + * @param RetrySettings|array|null $retrySettings + * + * @return $this + */ + public function setRetrySettings($retrySettings): self + { + $this->retrySettings = $retrySettings; + + return $this; + } +} diff --git a/vendor/google/gax/src/Options/ClientOptions.php b/vendor/google/gax/src/Options/ClientOptions.php new file mode 100644 index 0000000..c121cc1 --- /dev/null +++ b/vendor/google/gax/src/Options/ClientOptions.php @@ -0,0 +1,419 @@ + '/path/to/my/credentials.json' + * ]); + * $secretManager = new SecretManagerClient($options->toArray()); + * ``` + * + * Note: It's possible to pass an associative array to the API clients as well, + * as ClientOptions will still be used internally for validation. + */ +class ClientOptions implements ArrayAccess, OptionsInterface +{ + use OptionsTrait; + + private ?string $apiEndpoint; + + private bool $disableRetries; + + private array $clientConfig; + + /** @var string|array|FetchAuthTokenInterface|CredentialsWrapper|null */ + private $credentials; + + private array $credentialsConfig; + + /** @var string|TransportInterface|null $transport */ + private $transport; + + private TransportOptions $transportConfig; + + private ?string $versionFile; + + private ?string $descriptorsConfigPath; + + private ?string $serviceName; + + private ?string $libName; + + private ?string $libVersion; + + private ?string $gapicVersion; + + private ?Closure $clientCertSource; + + private ?string $universeDomain; + + private ?string $apiKey; + + private null|false|LoggerInterface $logger; + + /** + * @param array $options { + * @type string $apiEndpoint + * The address of the API remote host, for example "example.googleapis.com. May also + * include the port, for example "example.googleapis.com:443" + * @type bool $disableRetries + * Determines whether or not retries defined by the client configuration should be + * disabled. Defaults to `false`. + * @type string|array $clientConfig + * Client method configuration, including retry settings. This option can be either a + * path to a JSON file, or a PHP array containing the decoded JSON data. + * By default this settings points to the default client config file, which is provided + * in the resources folder. + * @type string|array|FetchAuthTokenInterface|CredentialsWrapper $credentials + * The credentials to be used by the client to authorize API calls. This option + * accepts either a path to a credentials file, or a decoded credentials file as a + * PHP array. + * *Advanced usage*: In addition, this option can also accept a pre-constructed + * \Google\Auth\FetchAuthTokenInterface object or \Google\ApiCore\CredentialsWrapper + * object. Note that when one of these objects are provided, any settings in + * $authConfig will be ignored. + * *Important*: If you accept a credential configuration (credential JSON/File/Stream) + * from an external source for authentication to Google Cloud Platform, you must + * validate it before providing it to any Google API or library. Providing an + * unvalidated credential configuration to Google APIs can compromise the security of + * your systems and data. For more information + * {@see https://cloud.google.com/docs/authentication/external/externally-sourced-credentials} + * @type array $credentialsConfig + * Options used to configure credentials, including auth token caching, for the client. + * For a full list of supporting configuration options, see + * \Google\ApiCore\CredentialsWrapper::build. + * @type string|TransportInterface|null $transport + * The transport used for executing network requests. May be either the string `rest`, + * `grpc`, or 'grpc-fallback'. Defaults to `grpc` if gRPC support is detected on the system. + * *Advanced usage*: Additionally, it is possible to pass in an already instantiated + * TransportInterface object. Note that when this objects is provided, any settings in + * $transportConfig, and any `$apiEndpoint` setting, will be ignored. + * @type array $transportConfig + * Configuration options that will be used to construct the transport. Options for + * each supported transport type should be passed in a key for that transport. For + * example: + * $transportConfig = [ + * 'grpc' => [...], + * 'rest' => [...], + * 'grpc-fallback' => [...], + * ]; + * See the GrpcTransport::build and RestTransport::build + * methods for the supported options. + * @type string $versionFile + * The path to a file which contains the current version of the client. + * @type string $descriptorsConfigPath + * The path to a descriptor configuration file. + * @type string $serviceName + * The name of the service. + * @type string $libName + * The name of the client application. + * @type string $libVersion + * The version of the client application. + * @type string $gapicVersion + * The code generator version of the GAPIC library. + * @type callable $clientCertSource + * A callable which returns the client cert as a string. + * @type string $universeDomain + * The default service domain for a given Cloud universe. + * @type string $apiKey + * The API key to be used for the client. + * @type null|false|LoggerInterface + * A PSR-3 compliant logger. + * } + */ + public function __construct(array $options) + { + $this->fromArray($options); + } + + /** + * Sets the array of options as class properites. + * + * @param array $arr See the constructor for the list of supported options. + */ + private function fromArray(array $arr): void + { + $this->setApiEndpoint($arr['apiEndpoint'] ?? null); + $this->setDisableRetries($arr['disableRetries'] ?? false); + $this->setClientConfig($arr['clientConfig'] ?? []); + $this->setCredentials($arr['credentials'] ?? null); + $this->setCredentialsConfig($arr['credentialsConfig'] ?? []); + $this->setTransport($arr['transport'] ?? null); + $this->setTransportConfig(new TransportOptions($arr['transportConfig'] ?? [])); + $this->setVersionFile($arr['versionFile'] ?? null); + $this->setDescriptorsConfigPath($arr['descriptorsConfigPath'] ?? null); + $this->setServiceName($arr['serviceName'] ?? null); + $this->setLibName($arr['libName'] ?? null); + $this->setLibVersion($arr['libVersion'] ?? null); + $this->setGapicVersion($arr['gapicVersion'] ?? null); + $this->setClientCertSource($arr['clientCertSource'] ?? null); + $this->setUniverseDomain($arr['universeDomain'] ?? null); + $this->setApiKey($arr['apiKey'] ?? null); + $this->setLogger($arr['logger'] ?? null); + } + + /** + * @param ?string $apiEndpoint + * + * @return $this + */ + public function setApiEndpoint(?string $apiEndpoint): self + { + $this->apiEndpoint = $apiEndpoint; + + return $this; + } + + /** + * @param bool $disableRetries + * + * @return $this + */ + public function setDisableRetries(bool $disableRetries): self + { + $this->disableRetries = $disableRetries; + + return $this; + } + + /** + * @param string|array $clientConfig + * + * @return $this + * @throws InvalidArgumentException + */ + public function setClientConfig($clientConfig): self + { + if (is_string($clientConfig)) { + $this->clientConfig = json_decode(file_get_contents($clientConfig), true); + } elseif (is_array($clientConfig)) { + $this->clientConfig = $clientConfig; + } else { + throw new InvalidArgumentException('Invalid client config'); + } + + return $this; + } + + /** + * @param string|array|FetchAuthTokenInterface|CredentialsWrapper|null $credentials + * + * @return $this + */ + public function setCredentials($credentials): self + { + $this->credentials = $credentials; + + return $this; + } + + /** + * @param array $credentialsConfig + * + * @return $this + */ + public function setCredentialsConfig(array $credentialsConfig): self + { + $this->credentialsConfig = $credentialsConfig; + + return $this; + } + + /** + * @param string|TransportInterface|null $transport + * + * @return $this + */ + public function setTransport($transport): self + { + $this->transport = $transport; + + return $this; + } + + /** + * @param TransportOptions $transportConfig + * + * @return $this + */ + public function setTransportConfig(TransportOptions $transportConfig): self + { + $this->transportConfig = $transportConfig; + + return $this; + } + + /** + * @param ?string $versionFile + * + * @return $this + */ + public function setVersionFile(?string $versionFile): self + { + $this->versionFile = $versionFile; + + return $this; + } + + /** + * @param ?string $descriptorsConfigPath + * + * @return $this + */ + private function setDescriptorsConfigPath(?string $descriptorsConfigPath): self + { + if (!is_null($descriptorsConfigPath)) { + self::validateFileExists($descriptorsConfigPath); + } + $this->descriptorsConfigPath = $descriptorsConfigPath; + + return $this; + } + + /** + * @param ?string $serviceName + * + * @return $this + */ + public function setServiceName(?string $serviceName): self + { + $this->serviceName = $serviceName; + + return $this; + } + + /** + * @param ?string $libName + * + * @return $this + */ + public function setLibName(?string $libName): self + { + $this->libName = $libName; + + return $this; + } + + /** + * @param ?string $libVersion + * + * @return $this + */ + public function setLibVersion(?string $libVersion): self + { + $this->libVersion = $libVersion; + + return $this; + } + + /** + * @param ?string $gapicVersion + * + * @return $this + */ + public function setGapicVersion(?string $gapicVersion): self + { + $this->gapicVersion = $gapicVersion; + + return $this; + } + + /** + * @param ?callable $clientCertSource + * + * @return $this + */ + public function setClientCertSource(?callable $clientCertSource): self + { + if (!is_null($clientCertSource)) { + $clientCertSource = Closure::fromCallable($clientCertSource); + } + $this->clientCertSource = $clientCertSource; + + return $this; + } + + /** + * @param string $universeDomain + * + * @return $this + */ + public function setUniverseDomain(?string $universeDomain): self + { + $this->universeDomain = $universeDomain; + + return $this; + } + + /** + * @param string $apiKey + * + * @return $this + */ + public function setApiKey(?string $apiKey): self + { + $this->apiKey = $apiKey; + + return $this; + } + + /** + * @param null|false|LoggerInterface $logger + * + * @return $this + */ + public function setLogger(null|false|LoggerInterface $logger): self + { + $this->logger = $logger; + + return $this; + } +} diff --git a/vendor/google/gax/src/Options/OptionsInterface.php b/vendor/google/gax/src/Options/OptionsInterface.php new file mode 100644 index 0000000..684d27e --- /dev/null +++ b/vendor/google/gax/src/Options/OptionsInterface.php @@ -0,0 +1,38 @@ +$offset); + } + + #[\ReturnTypeWillChange] + public function offsetGet($offset) + { + return $this->$offset; + } + + /** + * @throws BadMethodCallException + */ + public function offsetSet($offset, $value): void + { + throw new BadMethodCallException('Cannot set options through array access. Use the setters instead'); + } + + /** + * @throws BadMethodCallException + */ + public function offsetUnset($offset): void + { + throw new BadMethodCallException('Cannot unset options through array access. Use the setters instead'); + } + + public function toArray(): array + { + $arr = []; + foreach (get_object_vars($this) as $key => $value) { + $arr[$key] = $value instanceof OptionsInterface + ? $value->toArray() + : $value; + } + return $arr; + } +} diff --git a/vendor/google/gax/src/Options/TransportOptions.php b/vendor/google/gax/src/Options/TransportOptions.php new file mode 100644 index 0000000..3334d6f --- /dev/null +++ b/vendor/google/gax/src/Options/TransportOptions.php @@ -0,0 +1,111 @@ +fromArray($options); + } + + /** + * Sets the array of options as class properites. + * + * @param array $arr See the constructor for the list of supported options. + */ + private function fromArray(array $arr): void + { + $this->setGrpc(new GrpcTransportOptions($arr['grpc'] ?? [])); + $this->setGrpcFallback(new GrpcFallbackTransportOptions($arr['grpc-fallback'] ?? [])); + $this->setRest(new RestTransportOptions($arr['rest'] ?? [])); + } + + /** + * @param GrpcTransportOptions $grpc + * + * @return $this + */ + public function setGrpc(GrpcTransportOptions $grpc): self + { + $this->grpc = $grpc; + + return $this; + } + + /** + * @param GrpcFallbackTransportOptions $grpcFallback + * + * @return $this + */ + public function setGrpcFallback(GrpcFallbackTransportOptions $grpcFallback): self + { + $this->grpcFallback = $grpcFallback; + + return $this; + } + + /** + * @param RestTransportOptions $rest + * + * @return $this + */ + public function setRest(RestTransportOptions $rest): self + { + $this->rest = $rest; + + return $this; + } +} diff --git a/vendor/google/gax/src/Options/TransportOptions/GrpcFallbackTransportOptions.php b/vendor/google/gax/src/Options/TransportOptions/GrpcFallbackTransportOptions.php new file mode 100644 index 0000000..9f94b23 --- /dev/null +++ b/vendor/google/gax/src/Options/TransportOptions/GrpcFallbackTransportOptions.php @@ -0,0 +1,125 @@ +fromArray($options); + } + + /** + * Sets the array of options as class properites. + * + * @param array $arr See the constructor for the list of supported options. + */ + private function fromArray(array $arr): void + { + $this->setClientCertSource($arr['clientCertSource'] ?? null); + $this->setHttpHandler($arr['httpHandler'] ?? null); + $this->setLogger($arr['logger'] ?? null); + } + + /** + * @param ?callable $httpHandler + * + * @return $this + */ + public function setHttpHandler(?callable $httpHandler): self + { + if (!is_null($httpHandler)) { + $httpHandler = Closure::fromCallable($httpHandler); + } + $this->httpHandler = $httpHandler; + + return $this; + } + + /** + * @param ?callable $clientCertSource + * + * @return $this + */ + public function setClientCertSource(?callable $clientCertSource): self + { + if (!is_null($clientCertSource)) { + $clientCertSource = Closure::fromCallable($clientCertSource); + } + $this->clientCertSource = $clientCertSource; + + return $this; + } + + /** + * @param null|false|LoggerInterface $logger + * + * @return $this + */ + public function setLogger(null|false|LoggerInterface $logger): self + { + $this->logger = $logger; + + return $this; + } +} diff --git a/vendor/google/gax/src/Options/TransportOptions/GrpcTransportOptions.php b/vendor/google/gax/src/Options/TransportOptions/GrpcTransportOptions.php new file mode 100644 index 0000000..051b57b --- /dev/null +++ b/vendor/google/gax/src/Options/TransportOptions/GrpcTransportOptions.php @@ -0,0 +1,165 @@ +fromArray($options); + } + + /** + * Sets the array of options as class properites. + * + * @param array $arr See the constructor for the list of supported options. + */ + private function fromArray(array $arr): void + { + $this->setStubOpts($arr['stubOpts'] ?? []); + $this->setChannel($arr['channel'] ?? null); + $this->setInterceptors($arr['interceptors'] ?? []); + $this->setClientCertSource($arr['clientCertSource'] ?? null); + $this->setLogger($arr['logger'] ?? null); + } + + /** + * @param array $stubOpts + * + * @return $this + */ + public function setStubOpts(array $stubOpts): self + { + $this->stubOpts = $stubOpts; + + return $this; + } + + /** + * @param ?Channel $channel + * + * @return $this + */ + public function setChannel(?Channel $channel): self + { + $this->channel = $channel; + + return $this; + } + + /** + * @param Interceptor[]|UnaryInterceptorInterface[] $interceptors + * + * @return $this + */ + public function setInterceptors(array $interceptors): self + { + $this->interceptors = $interceptors; + + return $this; + } + + /** + * @param ?callable $clientCertSource + * + * @return $this + */ + public function setClientCertSource(?callable $clientCertSource): self + { + if (!is_null($clientCertSource)) { + $clientCertSource = Closure::fromCallable($clientCertSource); + } + $this->clientCertSource = $clientCertSource; + + return $this; + } + + /** + * @param null|false|LoggerInterface $logger + * + * @return $this + */ + public function setLogger(null|false|LoggerInterface $logger): self + { + $this->logger = $logger; + + return $this; + } +} diff --git a/vendor/google/gax/src/Options/TransportOptions/RestTransportOptions.php b/vendor/google/gax/src/Options/TransportOptions/RestTransportOptions.php new file mode 100644 index 0000000..ea55e2e --- /dev/null +++ b/vendor/google/gax/src/Options/TransportOptions/RestTransportOptions.php @@ -0,0 +1,142 @@ +fromArray($options); + } + + /** + * Sets the array of options as class properites. + * + * @param array $arr See the constructor for the list of supported options. + */ + private function fromArray(array $arr): void + { + $this->setHttpHandler($arr['httpHandler'] ?? null); + $this->setClientCertSource($arr['clientCertSource'] ?? null); + $this->setRestClientConfigPath($arr['restClientConfigPath'] ?? null); + $this->setLogger($arr['logger'] ?? null); + } + + /** + * @param ?callable $httpHandler + * + * @return $this + */ + public function setHttpHandler(?callable $httpHandler): self + { + if (!is_null($httpHandler)) { + $httpHandler = Closure::fromCallable($httpHandler); + } + $this->httpHandler = $httpHandler; + + return $this; + } + + /** + * @param ?callable $clientCertSource + * + * @return $this + */ + public function setClientCertSource(?callable $clientCertSource): self + { + if (!is_null($clientCertSource)) { + $clientCertSource = Closure::fromCallable($clientCertSource); + } + $this->clientCertSource = $clientCertSource; + + return $this; + } + + /** + * @param ?string $restClientConfigPath + * + * @return $this + */ + public function setRestClientConfigPath(?string $restClientConfigPath): self + { + $this->restClientConfigPath = $restClientConfigPath; + + return $this; + } + + /** + * @param null|false|LoggerInterface $logger + * + * @return $this + */ + public function setLogger(null|false|LoggerInterface $logger): self + { + $this->logger = $logger; + + return $this; + } +} diff --git a/vendor/google/gax/src/Page.php b/vendor/google/gax/src/Page.php new file mode 100644 index 0000000..996cadf --- /dev/null +++ b/vendor/google/gax/src/Page.php @@ -0,0 +1,271 @@ +call = $call; + $this->options = $options; + $this->callable = $callable; + $this->pageStreamingDescriptor = $pageStreamingDescriptor; + $this->response = $response; + + $requestPageTokenGetMethod = $this->pageStreamingDescriptor->getRequestPageTokenGetMethod(); + $this->pageToken = $this->call->getMessage()->$requestPageTokenGetMethod(); + } + + /** + * Returns true if there are more pages that can be retrieved from the + * API. + * + * @return bool + */ + public function hasNextPage() + { + return strcmp($this->getNextPageToken(), Page::FINAL_PAGE_TOKEN) != 0; + } + + /** + * Returns the next page token from the response. + * + * @return string + */ + public function getNextPageToken() + { + $responsePageTokenGetMethod = $this->pageStreamingDescriptor->getResponsePageTokenGetMethod(); + return $this->getResponseObject()->$responsePageTokenGetMethod(); + } + + /** + * Retrieves the next Page object using the next page token. + * + * @param int|null $pageSize + * @throws ValidationException if there are no pages remaining, or if pageSize is supplied but + * is not supported by the API + * @throws ApiException if the call to fetch the next page fails. + * @return Page + */ + public function getNextPage(?int $pageSize = null) + { + if (!$this->hasNextPage()) { + throw new ValidationException( + 'Could not complete getNextPage operation: ' . + 'there are no more pages to retrieve.' + ); + } + + $oldRequest = $this->getRequestObject(); + $requestClass = get_class($oldRequest); + $newRequest = new $requestClass(); + $newRequest->mergeFrom($oldRequest); + + $requestPageTokenSetMethod = $this->pageStreamingDescriptor->getRequestPageTokenSetMethod(); + $newRequest->$requestPageTokenSetMethod($this->getNextPageToken()); + + if (isset($pageSize)) { + if (!$this->pageStreamingDescriptor->requestHasPageSizeField()) { + throw new ValidationException( + 'pageSize argument was defined, but the method does not ' . + 'support a page size parameter in the optional array argument' + ); + } + $requestPageSizeSetMethod = $this->pageStreamingDescriptor->getRequestPageSizeSetMethod(); + $newRequest->$requestPageSizeSetMethod($pageSize); + } + $this->call = $this->call->withMessage($newRequest); + + $callable = $this->callable; + $response = $callable( + $this->call, + $this->options + )->wait(); + + return new Page( + $this->call, + $this->options, + $this->callable, + $this->pageStreamingDescriptor, + $response + ); + } + + /** + * Return the number of elements in the response. + * + * @return int + */ + public function getPageElementCount() + { + $resourcesGetMethod = $this->pageStreamingDescriptor->getResourcesGetMethod(); + return count($this->getResponseObject()->$resourcesGetMethod()); + } + + /** + * Return an iterator over the elements in the response. + * + * @return Generator + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + $resourcesGetMethod = $this->pageStreamingDescriptor->getResourcesGetMethod(); + $items = $this->getResponseObject()->$resourcesGetMethod(); + foreach ($items as $key => $element) { + if ($items instanceof MapField) { + yield $key => $element; + } else { + yield $element; + } + } + } + + /** + * Return an iterator over Page objects, beginning with this object. + * Additional Page objects are retrieved lazily via API calls until + * all elements have been retrieved. + * + * @return Generator|array + * @throws ValidationException + * @throws ApiException + */ + public function iteratePages() + { + $currentPage = $this; + yield $this; + while ($currentPage->hasNextPage()) { + $currentPage = $currentPage->getNextPage(); + yield $currentPage; + } + } + + /** + * Gets the request object used to generate the Page. + * + * @return mixed|Message + */ + public function getRequestObject() + { + return $this->call->getMessage(); + } + + /** + * Gets the API response object. + * + * @return mixed|Message + */ + public function getResponseObject() + { + return $this->response; + } + + /** + * Returns a collection of elements with a fixed size set by + * the collectionSize parameter. The collection will only contain + * fewer than collectionSize elements if there are no more + * pages to be retrieved from the server. + * + * NOTE: it is an error to call this method if an optional parameter + * to set the page size is not supported or has not been set in the + * API call that was used to create this page. It is also an error + * if the collectionSize parameter is less than the page size that + * has been set. + * + * @param int $collectionSize + * @throws ValidationException if a FixedSizeCollection of the specified size cannot be constructed + * @return FixedSizeCollection + */ + public function expandToFixedSizeCollection($collectionSize) + { + if (!$this->pageStreamingDescriptor->requestHasPageSizeField()) { + throw new ValidationException( + 'FixedSizeCollection is not supported for this method, because ' . + 'the method does not support an optional argument to set the ' . + 'page size.' + ); + } + $request = $this->getRequestObject(); + $pageSizeGetMethod = $this->pageStreamingDescriptor->getRequestPageSizeGetMethod(); + $pageSize = $request->$pageSizeGetMethod(); + if (is_null($pageSize)) { + throw new ValidationException( + 'Error while expanding Page to FixedSizeCollection: No page size ' . + 'parameter found. The page size parameter must be set in the API ' . + 'optional arguments array, and must be less than the collectionSize ' . + 'parameter, in order to create a FixedSizeCollection object.' + ); + } + if ($pageSize > $collectionSize) { + throw new ValidationException( + 'Error while expanding Page to FixedSizeCollection: collectionSize ' . + 'parameter is less than the page size optional argument specified in ' . + "the API call. collectionSize: $collectionSize, page size: $pageSize" + ); + } + return new FixedSizeCollection($this, $collectionSize); + } +} diff --git a/vendor/google/gax/src/PageStreamingDescriptor.php b/vendor/google/gax/src/PageStreamingDescriptor.php new file mode 100644 index 0000000..351eaf7 --- /dev/null +++ b/vendor/google/gax/src/PageStreamingDescriptor.php @@ -0,0 +1,178 @@ +descriptor = $descriptor; + } + + /** + * @param array $fields { + * Required. + * + * @type string $requestPageTokenField the page token field in the request object. + * @type string $responsePageTokenField the page token field in the response object. + * @type string $resourceField the resource field in the response object. + * + * Optional. + * @type string $requestPageSizeField the page size field in the request object. + * } + * @return PageStreamingDescriptor + */ + public static function createFromFields(array $fields) + { + $requestPageToken = $fields['requestPageTokenField']; + $responsePageToken = $fields['responsePageTokenField']; + $resources = $fields['resourceField']; + + $descriptor = [ + 'requestPageTokenGetMethod' => PageStreamingDescriptor::getMethod($requestPageToken), + 'requestPageTokenSetMethod' => PageStreamingDescriptor::setMethod($requestPageToken), + 'responsePageTokenGetMethod' => PageStreamingDescriptor::getMethod($responsePageToken), + 'resourcesGetMethod' => PageStreamingDescriptor::getMethod($resources), + ]; + + if (isset($fields['requestPageSizeField'])) { + $requestPageSize = $fields['requestPageSizeField']; + $descriptor['requestPageSizeGetMethod'] = PageStreamingDescriptor::getMethod($requestPageSize); + $descriptor['requestPageSizeSetMethod'] = PageStreamingDescriptor::setMethod($requestPageSize); + } + + return new PageStreamingDescriptor($descriptor); + } + + private static function getMethod(string $field) + { + return 'get' . ucfirst($field); + } + + private static function setMethod(string $field) + { + return 'set' . ucfirst($field); + } + + /** + * @return string The page token get method on the request object + */ + public function getRequestPageTokenGetMethod() + { + return $this->descriptor['requestPageTokenGetMethod']; + } + + /** + * @return string The page size get method on the request object + */ + public function getRequestPageSizeGetMethod() + { + return $this->descriptor['requestPageSizeGetMethod']; + } + + /** + * @return bool True if the request object has a page size field + */ + public function requestHasPageSizeField() + { + return array_key_exists('requestPageSizeGetMethod', $this->descriptor); + } + + /** + * @return string The page token get method on the response object + */ + public function getResponsePageTokenGetMethod() + { + return $this->descriptor['responsePageTokenGetMethod']; + } + + /** + * @return string The resources get method on the response object + */ + public function getResourcesGetMethod() + { + return $this->descriptor['resourcesGetMethod']; + } + + /** + * @return string The page token set method on the request object + */ + public function getRequestPageTokenSetMethod() + { + return $this->descriptor['requestPageTokenSetMethod']; + } + + /** + * @return string The page size set method on the request object + */ + public function getRequestPageSizeSetMethod() + { + return $this->descriptor['requestPageSizeSetMethod']; + } + + private static function validate(array $descriptor) + { + $requiredFields = [ + 'requestPageTokenGetMethod', + 'requestPageTokenSetMethod', + 'responsePageTokenGetMethod', + 'resourcesGetMethod', + ]; + foreach ($requiredFields as $field) { + if (empty($descriptor[$field])) { + throw new InvalidArgumentException( + "$field is required for PageStreamingDescriptor" + ); + } + } + } +} diff --git a/vendor/google/gax/src/PagedListResponse.php b/vendor/google/gax/src/PagedListResponse.php new file mode 100644 index 0000000..62e6511 --- /dev/null +++ b/vendor/google/gax/src/PagedListResponse.php @@ -0,0 +1,197 @@ +getList(...); + * foreach ($pagedListResponse as $element) { + * // doSomethingWith($element); + * } + * ``` + * + * Example of iterating over each page of elements: + * ``` + * $pagedListResponse = $client->getList(...); + * foreach ($pagedListResponse->iteratePages() as $page) { + * foreach ($page as $element) { + * // doSomethingWith($element); + * } + * } + * ``` + * + * Example of accessing the current page, and manually iterating + * over pages: + * ``` + * $pagedListResponse = $client->getList(...); + * $page = $pagedListResponse->getPage(); + * // doSomethingWith($page); + * while ($page->hasNextPage()) { + * $page = $page->getNextPage(); + * // doSomethingWith($page); + * } + * ``` + */ +class PagedListResponse implements IteratorAggregate +{ + private $firstPage; + + /** + * PagedListResponse constructor. + * + * @param Page $firstPage A page containing response details. + */ + public function __construct( + Page $firstPage + ) { + $this->firstPage = $firstPage; + } + + /** + * Returns an iterator over the full list of elements. If the + * API response contains a (non-empty) next page token, then + * the PagedListResponse object will make calls to the underlying + * API to retrieve additional elements as required. + * + * NOTE: The result of this method is the same as getIterator(). + * Prefer using getIterator(), or iterate directly on the + * PagedListResponse object. + * + * @return Generator + * @throws ValidationException + */ + public function iterateAllElements() + { + return $this->getIterator(); + } + + /** + * Returns an iterator over the full list of elements. If the + * API response contains a (non-empty) next page token, then + * the PagedListResponse object will make calls to the underlying + * API to retrieve additional elements as required. + * + * @return Generator + * @throws ValidationException + */ + #[\ReturnTypeWillChange] + public function getIterator() + { + foreach ($this->iteratePages() as $page) { + foreach ($page as $key => $element) { + yield $key => $element; + } + } + } + + /** + * Return the current page of results. + * + * @return Page + */ + public function getPage() + { + return $this->firstPage; + } + + /** + * Returns an iterator over pages of results. The pages are + * retrieved lazily from the underlying API. + * + * @return Page[] + * @throws ValidationException + */ + public function iteratePages() + { + return $this->getPage()->iteratePages(); + } + + /** + * Returns a collection of elements with a fixed size set by + * the collectionSize parameter. The collection will only contain + * fewer than collectionSize elements if there are no more + * pages to be retrieved from the server. + * + * NOTE: it is an error to call this method if an optional parameter + * to set the page size is not supported or has not been set in the + * original API call. It is also an error if the collectionSize parameter + * is less than the page size that has been set. + * + * @param int $collectionSize + * @throws ValidationException if a FixedSizeCollection of the specified size cannot be constructed + * @return FixedSizeCollection + */ + public function expandToFixedSizeCollection(int $collectionSize) + { + return $this->getPage()->expandToFixedSizeCollection($collectionSize); + } + + /** + * Returns an iterator over fixed size collections of results. + * The collections are retrieved lazily from the underlying API. + * + * Each collection will have collectionSize elements, with the + * exception of the final collection which may contain fewer + * elements. + * + * NOTE: it is an error to call this method if an optional parameter + * to set the page size is not supported or has not been set in the + * original API call. It is also an error if the collectionSize parameter + * is less than the page size that has been set. + * + * @param int $collectionSize + * @throws ValidationException if a FixedSizeCollection of the specified size cannot be constructed + * @return Generator|FixedSizeCollection[] + */ + public function iterateFixedSizeCollections(int $collectionSize) + { + return $this->expandToFixedSizeCollection($collectionSize)->iterateCollections(); + } +} diff --git a/vendor/google/gax/src/PathTemplate.php b/vendor/google/gax/src/PathTemplate.php new file mode 100644 index 0000000..4556acf --- /dev/null +++ b/vendor/google/gax/src/PathTemplate.php @@ -0,0 +1,113 @@ +resourceTemplate = new AbsoluteResourceTemplate($path); + } else { + $this->resourceTemplate = new RelativeResourceTemplate($path); + } + } + + /** + * @return string A string representation of the path template + */ + public function __toString() + { + return $this->resourceTemplate->__toString(); + } + + /** + * Renders a path template using the provided bindings. + * + * @param array $bindings An array matching var names to binding strings. + * @throws ValidationException if a key isn't provided or if a sub-template + * can't be parsed. + * @return string A rendered representation of this path template. + */ + public function render(array $bindings) + { + return $this->resourceTemplate->render($bindings); + } + + /** + * Check if $path matches a resource string. + * + * @param string $path A resource string. + * @return bool + */ + public function matches(string $path) + { + return $this->resourceTemplate->matches($path); + } + + /** + * Matches a fully qualified path template string. + * + * @param string $path A fully qualified path template string. + * @throws ValidationException if path can't be matched to the template. + * @return array Array matching var names to binding values. + */ + public function match(string $path) + { + return $this->resourceTemplate->match($path); + } +} diff --git a/vendor/google/gax/src/PollingTrait.php b/vendor/google/gax/src/PollingTrait.php new file mode 100644 index 0000000..526b012 --- /dev/null +++ b/vendor/google/gax/src/PollingTrait.php @@ -0,0 +1,97 @@ + 0.0; + $endTime = $this->getCurrentTimeMillis() + $totalPollTimeoutMillis; + + while (true) { + if ($hasTotalPollTimeout && $this->getCurrentTimeMillis() > $endTime) { + return false; + } + $this->sleepMillis($currentPollDelayMillis); + if ($pollCallable()) { + return true; + } + $currentPollDelayMillis = (int) min([ + $currentPollDelayMillis * $pollDelayMultiplier, + $maxPollDelayMillis + ]); + } + } + + /** + * Protected to allow overriding for tests + * + * @return float Current time in milliseconds + */ + protected function getCurrentTimeMillis() + { + return microtime(true) * 1000.0; + } + + /** + * Protected to allow overriding for tests + * + * @param int $millis + */ + protected function sleepMillis(int $millis) + { + usleep($millis * 1000); + } +} diff --git a/vendor/google/gax/src/RequestBuilder.php b/vendor/google/gax/src/RequestBuilder.php new file mode 100644 index 0000000..b0d589d --- /dev/null +++ b/vendor/google/gax/src/RequestBuilder.php @@ -0,0 +1,290 @@ +baseUri = $baseUri; + $this->restConfig = require($restConfigPath); + } + + /** + * @param string $path + * @return bool + */ + public function pathExists(string $path) + { + list($interface, $method) = explode('/', $path); + return isset($this->restConfig['interfaces'][$interface][$method]); + } + + /** + * @param string $path + * @param Message $message + * @param array $headers + * @return RequestInterface + * @throws ValidationException + */ + public function build(string $path, Message $message, array $headers = []) + { + list($interface, $method) = explode('/', $path); + + if (!isset($this->restConfig['interfaces'][$interface][$method])) { + throw new ValidationException( + "Failed to build request, as the provided path ($path) was not found in the configuration." + ); + } + + $numericEnums = isset($this->restConfig['numericEnums']) && $this->restConfig['numericEnums']; + $methodConfig = $this->restConfig['interfaces'][$interface][$method] + [ + 'placeholders' => [], + 'body' => null, + 'additionalBindings' => null, + ]; + $bindings = $this->buildBindings($methodConfig['placeholders'], $message); + $uriTemplateConfigs = $this->getConfigsForUriTemplates($methodConfig); + + foreach ($uriTemplateConfigs as $config) { + $pathTemplate = $this->tryRenderPathTemplate($config['uriTemplate'], $bindings); + + if ($pathTemplate) { + // We found a valid uriTemplate - now build and return the Request + + list($body, $queryParams) = $this->constructBodyAndQueryParameters($message, $config); + + // Request enum fields will be encoded as numbers rather than strings (in the response). + if ($numericEnums) { + $queryParams['$alt'] = 'json;enum-encoding=int'; + } + + $uri = $this->buildUri($pathTemplate, $queryParams); + + return new Request( + $config['method'], + $uri, + ['Content-Type' => 'application/json'] + $headers, + $body + ); + } + } + + // No valid uriTemplate found - construct an exception + $uriTemplates = []; + foreach ($uriTemplateConfigs as $config) { + $uriTemplates[] = $config['uriTemplate']; + } + + throw new ValidationException("Could not map bindings for $path to any Uri template.\n" . + 'Bindings: ' . print_r($bindings, true) . + 'UriTemplates: ' . print_r($uriTemplates, true)); + } + + /** + * Create a list of all possible configs using the additionalBindings + * + * @param array $config + * @return array[] An array of configs + */ + private function getConfigsForUriTemplates(array $config) + { + $configs = [$config]; + + if ($config['additionalBindings']) { + foreach ($config['additionalBindings'] as $additionalBinding) { + $configs[] = $additionalBinding + $config; + } + } + + return $configs; + } + + /** + * @param Message $message + * @param array $config + * @return array Tuple [$body, $queryParams] + */ + private function constructBodyAndQueryParameters(Message $message, array $config) + { + $messageDataJson = $message->serializeToJsonString(); + + if ($config['body'] === '*') { + return [$messageDataJson, []]; + } + + $body = null; + $queryParams = []; + $messageData = json_decode($messageDataJson, true); + foreach ($messageData as $name => $value) { + if (array_key_exists($name, $config['placeholders'])) { + continue; + } + + if (Serializer::toSnakeCase($name) === $config['body']) { + if (($bodyMessage = $message->{"get$name"}()) instanceof Message) { + $body = $bodyMessage->serializeToJsonString(); + } else { + $body = json_encode($value); + } + continue; + } + + if (is_array($value) && $this->isAssoc($value)) { + foreach ($value as $key => $value2) { + $queryParams[$name . '.' . $key] = $value2; + } + } else { + $queryParams[$name] = $value; + } + } + + // Ensures required query params with default values are always sent + // over the wire. + if (isset($config['queryParams'])) { + foreach ($config['queryParams'] as $requiredQueryParam) { + $requiredQueryParam = Serializer::toCamelCase($requiredQueryParam); + if (!array_key_exists($requiredQueryParam, $queryParams)) { + $getter = Serializer::getGetter($requiredQueryParam); + $queryParamValue = $message->$getter(); + if ($queryParamValue instanceof Message) { + // Decode message for the query parameter. + $queryParamValue = json_decode($queryParamValue->serializeToJsonString(), true); + } + if (is_array($queryParamValue)) { + // If the message has properties, add them as nested querystring values. + // NOTE: This only supports nesting at one level of depth. + foreach ($queryParamValue as $key => $value) { + $queryParams[$requiredQueryParam . '.' . $key] = $value; + } + } else { + $queryParams[$requiredQueryParam] = $queryParamValue; + } + } + } + } + + return [$body, $queryParams]; + } + + /** + * @param array $placeholders + * @param Message $message + * @return array Bindings from path template fields to values from message + */ + private function buildBindings(array $placeholders, Message $message) + { + $bindings = []; + foreach ($placeholders as $placeholder => $metadata) { + $value = array_reduce( + $metadata['getters'], + function (?Message $result = null, $getter = null) { + if ($result && $getter) { + return $result->$getter(); + } + }, + $message + ); + + $bindings[$placeholder] = $value; + } + return $bindings; + } + + /** + * Try to render the resource name. The rendered resource name will always contain a leading '/' + * + * @param string $uriTemplate + * @param array $bindings + * @return null|string + * @throws ValidationException + */ + private function tryRenderPathTemplate(string $uriTemplate, array $bindings) + { + $template = new AbsoluteResourceTemplate($uriTemplate); + + try { + return $template->render($bindings); + } catch (ValidationException $e) { + return null; + } + } + + /** + * @param string $path + * @param array $queryParams + * @return UriInterface + */ + protected function buildUri(string $path, array $queryParams) + { + $uri = Utils::uriFor( + sprintf( + 'https://%s%s', + $this->baseUri, + $path + ) + ); + if ($queryParams) { + $uri = $this->buildUriWithQuery( + $uri, + $queryParams + ); + } + return $uri; + } +} diff --git a/vendor/google/gax/src/RequestParamsHeaderDescriptor.php b/vendor/google/gax/src/RequestParamsHeaderDescriptor.php new file mode 100644 index 0000000..73e9af3 --- /dev/null +++ b/vendor/google/gax/src/RequestParamsHeaderDescriptor.php @@ -0,0 +1,78 @@ + value]. + */ + public function __construct(array $requestParams) + { + $headerKey = self::HEADER_KEY; + + $headerValue = ''; + foreach ($requestParams as $key => $value) { + if ('' !== $headerValue) { + $headerValue .= '&'; + } + + $headerValue .= $key . '=' . urlencode(strval($value)); + } + + $this->header = [$headerKey => [$headerValue]]; + } + + /** + * Returns an associative array that contains request params header metadata. + * + * @return array + */ + public function getHeader() + { + return $this->header; + } +} diff --git a/vendor/google/gax/src/ResourceHelperTrait.php b/vendor/google/gax/src/ResourceHelperTrait.php new file mode 100644 index 0000000..7f16841 --- /dev/null +++ b/vendor/google/gax/src/ResourceHelperTrait.php @@ -0,0 +1,108 @@ + $template) { + self::$templateMap[$name] = new PathTemplate($template); + } + } + + private static function getPathTemplate(string $key) + { + // TODO: Add nullable return type reference once PHP 7.1 is minimum. + if (is_null(self::$templateMap)) { + self::registerPathTemplates(); + } + return self::$templateMap[$key] ?? null; + } + + private static function parseFormattedName(string $formattedName, ?string $template = null): array + { + if (is_null(self::$templateMap)) { + self::registerPathTemplates(); + } + if ($template) { + if (!isset(self::$templateMap[$template])) { + throw new ValidationException("Template name $template does not exist"); + } + + return self::$templateMap[$template]->match($formattedName); + } + + foreach (self::$templateMap as $templateName => $pathTemplate) { + try { + return $pathTemplate->match($formattedName); + } catch (ValidationException $ex) { + // Swallow the exception to continue trying other path templates + } + } + + throw new ValidationException("Input did not match any known format. Input: $formattedName"); + } +} diff --git a/vendor/google/gax/src/ResourceTemplate/AbsoluteResourceTemplate.php b/vendor/google/gax/src/ResourceTemplate/AbsoluteResourceTemplate.php new file mode 100644 index 0000000..e6cb492 --- /dev/null +++ b/vendor/google/gax/src/ResourceTemplate/AbsoluteResourceTemplate.php @@ -0,0 +1,146 @@ +"). + * + * Examples: + * /projects + * /projects/{project} + * /foo/{bar=**}/fizz/*:action + * + * Templates use the syntax of the API platform; see + * https://github.com/googleapis/api-common-protos/blob/master/google/api/http.proto + * for details. A template consists of a sequence of literals, wildcards, and variable bindings, + * where each binding can have a sub-path. A string representation can be parsed into an + * instance of AbsoluteResourceTemplate, which can then be used to perform matching and instantiation. + * + * @internal + */ +class AbsoluteResourceTemplate implements ResourceTemplateInterface +{ + private RelativeResourceTemplate $resourceTemplate; + /** @var string|bool */ + private $verb; + + /** + * AbsoluteResourceTemplate constructor. + * @param string $path + * @throws ValidationException + */ + public function __construct(string $path) + { + if (empty($path)) { + throw new ValidationException('Cannot construct AbsoluteResourceTemplate from empty string'); + } + if ($path[0] !== '/') { + throw new ValidationException( + "Could not construct AbsoluteResourceTemplate from '$path': must begin with '/'" + ); + } + $verbSeparatorPos = $this->verbSeparatorPos($path); + $this->resourceTemplate = new RelativeResourceTemplate(substr($path, 1, $verbSeparatorPos - 1)); + $this->verb = substr($path, $verbSeparatorPos + 1); + } + + /** + * @inheritdoc + */ + public function __toString() + { + return sprintf('/%s%s', $this->resourceTemplate, $this->renderVerb()); + } + + /** + * @inheritdoc + */ + public function render(array $bindings) + { + return sprintf('/%s%s', $this->resourceTemplate->render($bindings), $this->renderVerb()); + } + + /** + * @inheritdoc + */ + public function matches(string $path) + { + try { + $this->match($path); + return true; + } catch (ValidationException $ex) { + return false; + } + } + + /** + * @inheritdoc + */ + public function match(string $path) + { + if (empty($path)) { + throw $this->matchException($path, 'path cannot be empty'); + } + if ($path[0] !== '/') { + throw $this->matchException($path, "missing leading '/'"); + } + $verbSeparatorPos = $this->verbSeparatorPos($path); + if (substr($path, $verbSeparatorPos + 1) !== $this->verb) { + throw $this->matchException($path, "trailing verb did not match '{$this->verb}'"); + } + return $this->resourceTemplate->match(substr($path, 1, $verbSeparatorPos - 1)); + } + + private function matchException(string $path, string $reason) + { + return new ValidationException("Could not match path '$path' to template '$this': $reason"); + } + + private function renderVerb() + { + return $this->verb ? ':' . $this->verb : ''; + } + + private function verbSeparatorPos(string $path) + { + $finalSeparatorPos = strrpos($path, '/'); + $verbSeparatorPos = strrpos($path, ':', $finalSeparatorPos); + if ($verbSeparatorPos === false) { + $verbSeparatorPos = strlen($path); + } + return $verbSeparatorPos; + } +} diff --git a/vendor/google/gax/src/ResourceTemplate/Parser.php b/vendor/google/gax/src/ResourceTemplate/Parser.php new file mode 100644 index 0000000..2bc70ad --- /dev/null +++ b/vendor/google/gax/src/ResourceTemplate/Parser.php @@ -0,0 +1,227 @@ += strlen($path)) { + // A trailing '/' has caused the index to exceed the bounds + // of the string - provide a helpful error message. + throw self::parseError($path, strlen($path) - 1, "invalid trailing '/'"); + } + if ($path[$index] === '{') { + // Validate that the { has a matching } + $closingBraceIndex = strpos($path, '}', $index); + if ($closingBraceIndex === false) { + throw self::parseError( + $path, + strlen($path), + "Expected '}' to match '{' at index $index, got end of string" + ); + } + + $segmentStringLengthWithoutBraces = $closingBraceIndex - $index - 1; + $segmentStringWithoutBraces = substr($path, $index + 1, $segmentStringLengthWithoutBraces); + $index = $closingBraceIndex + 1; + + $nextLiteral = '/'; + $remainingPath = substr($path, $index); + if (!empty($remainingPath)) { + // Find the firstnon-slash separator seen, if any. + $nextSlashIndex = strpos($remainingPath, '/', 0); + $nonSlashSeparators = ['-', '_', '~', '.']; + foreach ($nonSlashSeparators as $nonSlashSeparator) { + $nonSlashSeparatorIndex = strpos($remainingPath, $nonSlashSeparator, 0); + $nextOpenBraceIndex = strpos($remainingPath, '{', 0); + if ($nonSlashSeparatorIndex !== false && $nonSlashSeparatorIndex === $nextOpenBraceIndex - 1) { + $index += $nonSlashSeparatorIndex; + $nextLiteral = $nonSlashSeparator; + break; + } + } + } + + return self::parseVariableSegment($segmentStringWithoutBraces, $nextLiteral); + } else { + $nextSlash = strpos($path, '/', $index); + if ($nextSlash === false) { + $nextSlash = strlen($path); + } + $segmentString = substr($path, $index, $nextSlash - $index); + $nextLiteral = '/'; + $index = $nextSlash; + return self::parse($segmentString, $path, $index); + } + } + + /** + * @param string $segmentString + * @param string $path + * @param int $index + * @return Segment + * @throws ValidationException + */ + private static function parse(string $segmentString, string $path, int $index) + { + if ($segmentString === '*') { + return new Segment(Segment::WILDCARD_SEGMENT); + } elseif ($segmentString === '**') { + return new Segment(Segment::DOUBLE_WILDCARD_SEGMENT); + } else { + if (!self::isValidLiteral($segmentString)) { + if (empty($segmentString)) { + // Create user friendly message in case of empty segment + throw self::parseError($path, $index, "Unexpected empty segment (consecutive '/'s are invalid)"); + } else { + throw self::parseError($path, $index, "Unexpected characters in literal segment $segmentString"); + } + } + return new Segment(Segment::LITERAL_SEGMENT, $segmentString); + } + } + + /** + * @param string $segmentStringWithoutBraces + * @param string $separatorLiteral + * @return Segment + * @throws ValidationException + */ + private static function parseVariableSegment(string $segmentStringWithoutBraces, string $separatorLiteral) + { + // Validate there are no nested braces + $nestedOpenBracket = strpos($segmentStringWithoutBraces, '{'); + if ($nestedOpenBracket !== false) { + throw new ValidationException( + "Unexpected '{' parsing segment $segmentStringWithoutBraces at index $nestedOpenBracket" + ); + } + + $equalsIndex = strpos($segmentStringWithoutBraces, '='); + if ($equalsIndex === false) { + // If the variable does not contain '=', we assume the pattern is '*' as per google.rpc.Http + $variableKey = $segmentStringWithoutBraces; + $nestedResource = new RelativeResourceTemplate('*'); + } else { + $variableKey = substr($segmentStringWithoutBraces, 0, $equalsIndex); + $nestedResourceString = substr($segmentStringWithoutBraces, $equalsIndex + 1); + $nestedResource = new RelativeResourceTemplate($nestedResourceString); + } + + if (!self::isValidLiteral($variableKey)) { + throw new ValidationException( + "Unexpected characters in variable name $variableKey" + ); + } + return new Segment(Segment::VARIABLE_SEGMENT, null, $variableKey, $nestedResource, $separatorLiteral); + } + + /** + * @param string $literal + * @param string $path + * @param int $index + * @return string + * @throws ValidationException + */ + private static function parseLiteralFromPath(string $literal, string $path, int &$index) + { + $literalLength = strlen($literal); + if (strlen($path) < ($index + $literalLength)) { + throw self::parseError($path, $index, "expected '$literal'"); + } + $consumedLiteral = substr($path, $index, $literalLength); + if ($consumedLiteral !== $literal) { + throw self::parseError($path, $index, "expected '$literal'"); + } + $index += $literalLength; + return $consumedLiteral; + } + + private static function parseError(string $path, int $index, string $reason) + { + return new ValidationException("Error parsing '$path' at index $index: $reason"); + } + + /** + * Check if $literal is a valid segment literal. Segment literals may only contain numbers, + * letters, and any of the following: .-~_ + * + * @param string $literal + * @return bool + */ + private static function isValidLiteral(string $literal) + { + return preg_match('/^[0-9a-zA-Z\\.\\-~_]+$/', $literal) === 1; + } +} diff --git a/vendor/google/gax/src/ResourceTemplate/RelativeResourceTemplate.php b/vendor/google/gax/src/ResourceTemplate/RelativeResourceTemplate.php new file mode 100644 index 0000000..9415088 --- /dev/null +++ b/vendor/google/gax/src/ResourceTemplate/RelativeResourceTemplate.php @@ -0,0 +1,390 @@ +"). + * + * Examples: + * projects + * projects/{project} + * foo/{bar=**}/fizz/* + * + * Templates use the syntax of the API platform; see + * https://github.com/googleapis/api-common-protos/blob/master/google/api/http.proto + * for details. A template consists of a sequence of literals, wildcards, and variable bindings, + * where each binding can have a sub-path. A string representation can be parsed into an + * instance of AbsoluteResourceTemplate, which can then be used to perform matching and instantiation. + * + * @internal + */ +class RelativeResourceTemplate implements ResourceTemplateInterface +{ + /** @var Segment[] */ + private array $segments; + + /** + * RelativeResourceTemplate constructor. + * + * @param string $path + * @throws ValidationException + */ + public function __construct(string $path) + { + if (empty($path)) { + throw new ValidationException('Cannot construct RelativeResourceTemplate from empty string'); + } + $this->segments = Parser::parseSegments($path); + + $doubleWildcardCount = self::countDoubleWildcards($this->segments); + if ($doubleWildcardCount > 1) { + throw new ValidationException( + "Cannot parse '$path': cannot contain more than one path wildcard" + ); + } + + // Check for duplicate keys + $keys = []; + foreach ($this->segments as $segment) { + if ($segment->getSegmentType() === Segment::VARIABLE_SEGMENT) { + if (isset($keys[$segment->getKey()])) { + throw new ValidationException( + "Duplicate key '{$segment->getKey()}' in path $path" + ); + } + $keys[$segment->getKey()] = true; + } + } + } + + /** + * @inheritdoc + */ + public function __toString() + { + return self::renderSegments($this->segments); + } + + /** + * @inheritdoc + */ + public function render(array $bindings) + { + $literalSegments = []; + $keySegmentTuples = self::buildKeySegmentTuples($this->segments); + foreach ($keySegmentTuples as list($key, $segment)) { + /** @var Segment $segment */ + if ($segment->getSegmentType() === Segment::LITERAL_SEGMENT) { + $literalSegments[] = $segment; + continue; + } + if (!array_key_exists($key, $bindings)) { + throw $this->renderingException($bindings, "missing required binding '$key' for segment '$segment'"); + } + $value = $bindings[$key]; + if (!is_null($value) && $segment->matches($value)) { + $literalSegments[] = new Segment( + Segment::LITERAL_SEGMENT, + $value, + $segment->getValue(), + $segment->getTemplate(), + $segment->getSeparator() + ); + } else { + $valueString = is_null($value) ? 'null' : "'$value'"; + throw $this->renderingException( + $bindings, + "expected binding '$key' to match segment '$segment', instead got $valueString" + ); + } + } + return self::renderSegments($literalSegments); + } + + /** + * @inheritdoc + */ + public function matches(string $path) + { + try { + $this->match($path); + return true; + } catch (ValidationException $ex) { + return false; + } + } + + /** + * @inheritdoc + */ + public function match(string $path) + { + // High level strategy for matching: + // - Build a list of Segments from our template, where any variable segments are + // flattened into a single, non-nested list + // - Break $path into pieces based on '/'. + // - Use the segments to further subdivide the pieces using any applicable non-slash separators. + // - Match pieces of the path with Segments in the flattened list + + // In order to build correct bindings after we match the $path against our template, we + // need to (a) calculate the correct positional keys for our wildcards, and (b) maintain + // information about the variable identifier of any flattened segments. To do this, we + // build a list of [string, Segment] tuples, where the string component is the appropriate + // key. + $keySegmentTuples = self::buildKeySegmentTuples($this->segments); + + $flattenedKeySegmentTuples = self::flattenKeySegmentTuples($keySegmentTuples); + $flattenedKeySegmentTuplesCount = count($flattenedKeySegmentTuples); + assert($flattenedKeySegmentTuplesCount > 0); + + $slashPathPieces = explode('/', $path); + $pathPieces = []; + $pathPiecesIndex = 0; + $startIndex = 0; + $slashPathPiecesCount = count($slashPathPieces); + $doubleWildcardPieceCount = $slashPathPiecesCount - $flattenedKeySegmentTuplesCount + 1; + + for ($i = 0; $i < count($flattenedKeySegmentTuples); $i++) { + $segmentKey = $flattenedKeySegmentTuples[$i][0]; + $segment = $flattenedKeySegmentTuples[$i][1]; + // In our flattened list of segments, we should never encounter a variable segment + assert($segment->getSegmentType() !== Segment::VARIABLE_SEGMENT); + + if ($segment->getSegmentType() == Segment::DOUBLE_WILDCARD_SEGMENT) { + $pathPiecesForSegment = array_slice($slashPathPieces, $pathPiecesIndex, $doubleWildcardPieceCount); + $pathPiece = implode('/', $pathPiecesForSegment); + $pathPiecesIndex += $doubleWildcardPieceCount; + $pathPieces[] = $pathPiece; + continue; + } + + if ($segment->getSegmentType() == Segment::WILDCARD_SEGMENT) { + if ($pathPiecesIndex >= $slashPathPiecesCount) { + break; + } + } + if ($segment->getSeparator() === '/') { + if ($pathPiecesIndex >= $slashPathPiecesCount) { + throw $this->matchException($path, 'segment and path length mismatch'); + } + $pathPiece = substr($slashPathPieces[$pathPiecesIndex++], $startIndex); + $startIndex = 0; + } else { + $rawPiece = substr($slashPathPieces[$pathPiecesIndex], $startIndex); + $pathPieceLength = strpos($rawPiece, $segment->getSeparator()); + $pathPiece = substr($rawPiece, 0, $pathPieceLength); + $startIndex += $pathPieceLength + 1; + } + $pathPieces[] = $pathPiece; + } + + if ($flattenedKeySegmentTuples[$i - 1][1]->getSegmentType() !== Segment::DOUBLE_WILDCARD_SEGMENT) { + // Process any remaining pieces. The binding logic will throw exceptions for any invalid paths. + for (; $pathPiecesIndex < count($slashPathPieces); $pathPiecesIndex++) { + $pathPieces[] = $slashPathPieces[$pathPiecesIndex]; + } + } + $pathPiecesCount = count($pathPieces); + + // We would like to match pieces of our path 1:1 with the segments of our template. However, + // this is confounded by the presence of double wildcards ('**') in the template, which can + // match multiple segments in the path. + // Because there can only be one '**' present, we can determine how many segments it must + // match by examining the difference in count between the template segments and the + // path pieces. + + if ($pathPiecesCount < $flattenedKeySegmentTuplesCount) { + // Each segment in $flattenedKeyedSegments must consume at least one + // segment in $pathSegments, so matching must fail. + throw $this->matchException($path, 'path does not contain enough segments to be matched'); + } + + $doubleWildcardPieceCount = $pathPiecesCount - $flattenedKeySegmentTuplesCount + 1; + + $bindings = []; + $pathPiecesIndex = 0; + /** @var Segment $segment */ + foreach ($flattenedKeySegmentTuples as list($segmentKey, $segment)) { + $pathPiece = $pathPieces[$pathPiecesIndex++]; + if (!$segment->matches($pathPiece)) { + throw $this->matchException($path, "expected path element matching '$segment', got '$pathPiece'"); + } + + // If we have a valid key, add our $pathPiece to the $bindings array. Note that there + // may be multiple copies of the same $segmentKey. This is because a flattened variable + // segment can match multiple pieces from the path. We can add these to an array and + // collapse them all once the bindings are complete. + if (isset($segmentKey)) { + $bindings += [$segmentKey => []]; + $bindings[$segmentKey][] = $pathPiece; + } + } + + // It is possible that we have left over path pieces, which can occur if our template does + // not have a double wildcard. In that case, the match should fail. + if ($pathPiecesIndex !== $pathPiecesCount) { + throw $this->matchException($path, "expected end of path, got '$pathPieces[$pathPiecesIndex]'"); + } + + // Collapse the bindings from lists into strings + $collapsedBindings = []; + foreach ($bindings as $key => $boundPieces) { + $collapsedBindings[$key] = implode('/', $boundPieces); + } + + return $collapsedBindings; + } + + private function matchException(string $path, string $reason) + { + return new ValidationException("Could not match path '$path' to template '$this': $reason"); + } + + private function renderingException(array $bindings, string $reason) + { + $bindingsString = print_r($bindings, true); + return new ValidationException( + "Error rendering '$this': $reason\n" . + "Provided bindings: $bindingsString" + ); + } + + /** + * @param Segment[] $segments + * @param string|null $separator An optional string separator + * @return array[] A list of [string, Segment] tuples + */ + private static function buildKeySegmentTuples(array $segments, ?string $separator = null) + { + $keySegmentTuples = []; + $positionalArgumentCounter = 0; + foreach ($segments as $segment) { + switch ($segment->getSegmentType()) { + case Segment::WILDCARD_SEGMENT: + case Segment::DOUBLE_WILDCARD_SEGMENT: + $positionalKey = "\$$positionalArgumentCounter"; + $positionalArgumentCounter++; + $newSegment = $segment; + if ($separator !== null) { + $newSegment = new Segment( + $segment->getSegmentType(), + $segment->getValue(), + $segment->getKey(), + $segment->getTemplate(), + $separator + ); + } + $keySegmentTuples[] = [$positionalKey, $newSegment]; + break; + default: + $keySegmentTuples[] = [$segment->getKey(), $segment]; + } + } + return $keySegmentTuples; + } + + /** + * @param array[] $keySegmentTuples A list of [string, Segment] tuples + * @return array[] A list of [string, Segment] tuples + */ + private static function flattenKeySegmentTuples(array $keySegmentTuples) + { + $flattenedKeySegmentTuples = []; + foreach ($keySegmentTuples as list($key, $segment)) { + /** @var Segment $segment */ + switch ($segment->getSegmentType()) { + case Segment::VARIABLE_SEGMENT: + // For segment variables, replace the segment with the segments of its children + $template = $segment->getTemplate(); + $nestedKeySegmentTuples = self::buildKeySegmentTuples( + $template->segments, + $segment->getSeparator() + ); + foreach ($nestedKeySegmentTuples as list($nestedKey, $nestedSegment)) { + /** @var Segment $nestedSegment */ + // Nested variables are not allowed + assert($nestedSegment->getSegmentType() !== Segment::VARIABLE_SEGMENT); + // Insert the nested segment with key set to the outer key of the + // parent variable segment + $flattenedKeySegmentTuples[] = [$key, $nestedSegment]; + } + break; + default: + // For all other segments, don't change the key or segment + $flattenedKeySegmentTuples[] = [$key, $segment]; + } + } + return $flattenedKeySegmentTuples; + } + + /** + * @param Segment[] $segments + * @return int + */ + private static function countDoubleWildcards(array $segments) + { + $doubleWildcardCount = 0; + foreach ($segments as $segment) { + switch ($segment->getSegmentType()) { + case Segment::DOUBLE_WILDCARD_SEGMENT: + $doubleWildcardCount++; + break; + case Segment::VARIABLE_SEGMENT: + $doubleWildcardCount += self::countDoubleWildcards($segment->getTemplate()->segments); + break; + } + } + return $doubleWildcardCount; + } + + /** + * Joins segments using their separators. + * @param array $segmentsToRender + * @return string + */ + private static function renderSegments(array $segmentsToRender) + { + $renderResult = ''; + for ($i = 0; $i < count($segmentsToRender); $i++) { + $segment = $segmentsToRender[$i]; + $renderResult .= $segment; + if ($i < count($segmentsToRender) - 1) { + $renderResult .= $segment->getSeparator(); + } + } + return $renderResult; + } +} diff --git a/vendor/google/gax/src/ResourceTemplate/ResourceTemplateInterface.php b/vendor/google/gax/src/ResourceTemplate/ResourceTemplateInterface.php new file mode 100644 index 0000000..ffa3c81 --- /dev/null +++ b/vendor/google/gax/src/ResourceTemplate/ResourceTemplateInterface.php @@ -0,0 +1,91 @@ +"). (Note that a trailing verb without a + * leading slash is not permitted). + * + * Examples: + * projects + * /projects + * foo/{bar=**}/fizz/* + * /foo/{bar=**}/fizz/*:action + * + * Templates use the syntax of the API platform; see + * https://github.com/googleapis/api-common-protos/blob/master/google/api/http.proto + * for details. A template consists of a sequence of literals, wildcards, and variable bindings, + * where each binding can have a sub-path. A string representation can be parsed into an + * instance of AbsoluteResourceTemplate, which can then be used to perform matching and instantiation. + * + * @internal + */ +interface ResourceTemplateInterface +{ + /** + * @return string A string representation of the resource template + */ + public function __toString(); + + /** + * Renders a resource template using the provided bindings. + * + * @param array $bindings An array matching var names to binding strings. + * @return string A rendered representation of this resource template. + * @throws ValidationException If $bindings does not contain all required keys + * or if a sub-template can't be parsed. + */ + public function render(array $bindings); + + /** + * Check if $path matches a resource string. + * + * @param string $path A resource string. + * @return bool + */ + public function matches(string $path); + + /** + * Matches a given $path to a resource template, and returns an array of bindings between + * wildcards / variables in the template and values in the path. If $path does not match the + * template, then a ValidationException is thrown. + * + * @param string $path A resource string. + * @throws ValidationException if path can't be matched to the template. + * @return array Array matching var names to binding values. + */ + public function match(string $path); +} diff --git a/vendor/google/gax/src/ResourceTemplate/Segment.php b/vendor/google/gax/src/ResourceTemplate/Segment.php new file mode 100644 index 0000000..fb9dc6d --- /dev/null +++ b/vendor/google/gax/src/ResourceTemplate/Segment.php @@ -0,0 +1,195 @@ +segmentType = $segmentType; + $this->value = $value; + $this->key = $key; + $this->template = $template; + $this->separator = $separator; + + switch ($this->segmentType) { + case Segment::LITERAL_SEGMENT: + $this->stringRepr = "{$this->value}"; + break; + case Segment::WILDCARD_SEGMENT: + $this->stringRepr = '*'; + break; + case Segment::DOUBLE_WILDCARD_SEGMENT: + $this->stringRepr = '**'; + break; + case Segment::VARIABLE_SEGMENT: + $this->stringRepr = "{{$this->key}={$this->template}}"; + break; + default: + throw new ValidationException( + "Unexpected Segment type: {$this->segmentType}" + ); + } + } + + /** + * @return string A string representation of the segment. + */ + public function __toString() + { + return $this->stringRepr; + } + + /** + * Checks if $value matches this Segment. + * + * @param string $value + * @return bool + * @throws ValidationException + */ + public function matches(string $value) + { + switch ($this->segmentType) { + case Segment::LITERAL_SEGMENT: + return $this->value === $value; + case Segment::WILDCARD_SEGMENT: + return self::isValidBinding($value); + case Segment::DOUBLE_WILDCARD_SEGMENT: + return self::isValidDoubleWildcardBinding($value); + case Segment::VARIABLE_SEGMENT: + return $this->template->matches($value); + default: + throw new ValidationException( + "Unexpected Segment type: {$this->segmentType}" + ); + } + } + + /** + * @return int + */ + public function getSegmentType() + { + return $this->segmentType; + } + + /** + * @return string|null + */ + public function getKey() + { + return $this->key; + } + + /** + * @return string|null + */ + public function getValue() + { + return $this->value; + } + + /** + * @return RelativeResourceTemplate|null + */ + public function getTemplate() + { + return $this->template; + } + + /** + * @return string + */ + public function getSeparator() + { + return $this->separator; + } + + /** + * Check if $binding is a valid segment binding. Segment bindings may contain any characters + * except a forward slash ('/'), and may not be empty. + * + * @param string $binding + * @return bool + */ + private static function isValidBinding(string $binding) + { + return preg_match('-^[^/]+$-', $binding) === 1; + } + + /** + * Check if $binding is a valid double wildcard binding. Segment bindings may contain any + * characters, but may not be empty. + * + * @param string $binding + * @return bool + */ + private static function isValidDoubleWildcardBinding(string $binding) + { + return preg_match('-^.+$-', $binding) === 1; + } +} diff --git a/vendor/google/gax/src/RetrySettings.php b/vendor/google/gax/src/RetrySettings.php new file mode 100644 index 0000000..0ca1288 --- /dev/null +++ b/vendor/google/gax/src/RetrySettings.php @@ -0,0 +1,547 @@ + 100, + * 'retryDelayMultiplier' => 1.3, + * 'maxRetryDelayMillis' => 60000, + * 'initialRpcTimeoutMillis' => 20000, + * 'rpcTimeoutMultiplier' => 1.0, + * 'maxRpcTimeoutMillis' => 20000, + * 'totalTimeoutMillis' => 600000, + * 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], + * ]); + * ``` + * + * It is also possible to create a new RetrySettings object from an existing + * object using the {@see \Google\ApiCore\RetrySettings::with()} method. + * + * Example modifying an existing RetrySettings object using `with()`: + * ``` + * $newRetrySettings = $retrySettings->with([ + * 'totalTimeoutMillis' => 700000, + * ]); + * ``` + * + * Modifying the retry behavior of an RPC method + * --------------------------------------------- + * + * RetrySettings objects can be used to control retries for many RPC methods in + * [google-cloud-php](https://github.com/googleapis/google-cloud-php). + * The examples below make use of the + * [GroupServiceClient](https://cloud.google.com/php/docs/reference/cloud-monitoring/latest/V3.Client.GroupServiceClient) + * from the [Monitoring V3 API](https://github.com/googleapis/google-cloud-php/tree/master/src/Monitoring/V3), + * but they can be applied to other APIs in the + * [google-cloud-php](https://github.com/googleapis/google-cloud-php) repository. + * + * It is possible to specify the retry behavior to be used by an RPC via the + * `retrySettings` field in the `optionalArgs` parameter. The `retrySettings` + * field can contain either a RetrySettings object, or a PHP array containing + * the particular retry parameters to be updated. + * + * Example of disabling retries for a single call to the + * [listGroups](https://cloud.google.com/php/docs/reference/cloud-monitoring/latest/V3.Client.GroupServiceClient#_Google_Cloud_Monitoring_V3_Client_GroupServiceClient__listGroups__) + * method, and setting a custom timeout: + * ``` + * $result = $client->listGroups($name, [ + * 'retrySettings' => [ + * 'retriesEnabled' => false, + * 'noRetriesRpcTimeoutMillis' => 5000, + * ] + * ]); + * ``` + * + * Example of creating a new RetrySettings object and using it to override + * the retry settings for a call to the + * [listGroups](https://cloud.google.com/php/docs/reference/cloud-monitoring/latest/V3.Client.GroupServiceClient#_Google_Cloud_Monitoring_V3_Client_GroupServiceClient__listGroups__) + * method: + * ``` + * $customRetrySettings = new RetrySettings([ + * 'initialRetryDelayMillis' => 100, + * 'retryDelayMultiplier' => 1.3, + * 'maxRetryDelayMillis' => 60000, + * 'initialRpcTimeoutMillis' => 20000, + * 'rpcTimeoutMultiplier' => 1.0, + * 'maxRpcTimeoutMillis' => 20000, + * 'totalTimeoutMillis' => 600000, + * 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], + * ]); + * + * $result = $client->listGroups($name, [ + * 'retrySettings' => $customRetrySettings + * ]); + * ``` + * + * Modifying the default retry behavior for RPC methods on a Client object + * ----------------------------------------------------------------------- + * + * It is also possible to specify the retry behavior for RPC methods when + * constructing a client object using the 'retrySettingsArray'. The examples + * below again make use of the + * [GroupServiceClient](https://cloud.google.com/php/docs/reference/cloud-monitoring/latest/V3.Client.GroupServiceClient) + * from the [Monitoring V3 API](https://github.com/googleapis/google-cloud-php/tree/main/Monitoring/src/V3), + * but they can be applied to other APIs in the + * [google-cloud-php](https://github.com/googleapis/google-cloud-php) repository. + * + * The GroupServiceClient object accepts an optional `retrySettingsArray` + * parameter, which can be used to specify retry behavior for RPC methods + * on the client. The `retrySettingsArray` accepts a PHP array in which keys + * are the names of RPC methods on the client, and values are either a + * RetrySettings object or a PHP array containing the particular retry + * parameters to be updated. + * + * Example updating the retry settings for four methods of GroupServiceClient: + * ``` + * use Google\Cloud\Monitoring\V3\GroupServiceClient; + * + * $customRetrySettings = new RetrySettings([ + * 'initialRetryDelayMillis' => 100, + * 'retryDelayMultiplier' => 1.3, + * 'maxRetryDelayMillis' => 60000, + * 'initialRpcTimeoutMillis' => 20000, + * 'rpcTimeoutMultiplier' => 1.0, + * 'maxRpcTimeoutMillis' => 20000, + * 'totalTimeoutMillis' => 600000, + * 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], + * ]); + * + * $updatedCustomRetrySettings = $customRetrySettings->with([ + * 'totalTimeoutMillis' => 700000 + * ]); + * + * $client = new GroupServiceClient([ + * 'retrySettingsArray' => [ + * 'listGroups' => ['retriesEnabled' => false], + * 'getGroup' => [ + * 'initialRpcTimeoutMillis' => 10000, + * 'maxRpcTimeoutMillis' => 30000, + * 'totalTimeoutMillis' => 60000, + * ], + * 'deleteGroup' => $customRetrySettings, + * 'updateGroup' => $updatedCustomRetrySettings + * ], + * ]); + * ``` + * + * Configure the use of logical timeout + * ------------------------------------ + * + * To configure the use of a logical timeout, where a logical timeout is the + * duration a method is given to complete one or more RPC attempts, with each + * attempt using only the time remaining in the logical timeout, use + * {@see \Google\ApiCore\RetrySettings::logicalTimeout()} combined with + * {@see \Google\ApiCore\RetrySettings::with()}. + * + * ``` + * $timeoutSettings = RetrySettings::logicalTimeout(30000); + * + * $customRetrySettings = $customRetrySettings->with($timeoutSettings); + * + * $result = $client->listGroups($name, [ + * 'retrySettings' => $customRetrySettings + * ]); + * ``` + * + * {@see \Google\ApiCore\RetrySettings::logicalTimeout()} can also be used on a + * method call independent of a RetrySettings instance. + * + * ``` + * $timeoutSettings = RetrySettings::logicalTimeout(30000); + * + * $result = $client->listGroups($name, [ + * 'retrySettings' => $timeoutSettings + * ]); + * ``` + */ +class RetrySettings +{ + use ValidationTrait; + + const DEFAULT_MAX_RETRIES = 0; + + private $retriesEnabled; + + private $retryableCodes; + + private $initialRetryDelayMillis; + private $retryDelayMultiplier; + private $maxRetryDelayMillis; + private $initialRpcTimeoutMillis; + private $rpcTimeoutMultiplier; + private $maxRpcTimeoutMillis; + private $totalTimeoutMillis; + + private $noRetriesRpcTimeoutMillis; + + /** + * The number of maximum retries an operation can do. + * This doesn't include the original API call. + * Setting this to 0 means no limit. + */ + private int $maxRetries; + + /** + * When set, this function will be used to evaluate if the retry should + * take place or not. The callable will have the following signature: + * function (Exception $e, array $options): bool + */ + private ?Closure $retryFunction; + + /** + * Constructs an instance. + * + * @param array $settings { + * Required. Settings for configuring the retry behavior. All parameters are required except + * $retriesEnabled and $noRetriesRpcTimeoutMillis, which are optional and have defaults + * determined based on the other settings provided. + * + * @type bool $retriesEnabled Optional. Enables retries. If not specified, the value is + * determined using the $retryableCodes setting. If $retryableCodes is empty, + * then $retriesEnabled is set to false; otherwise, it is set to true. + * @type int $noRetriesRpcTimeoutMillis Optional. The timeout of the rpc call to be used + * if $retriesEnabled is false, in milliseconds. It not specified, the value + * of $initialRpcTimeoutMillis is used. + * @type array $retryableCodes The Status codes that are retryable. Each status should be + * either one of the string constants defined on {@see \Google\ApiCore\ApiStatus} + * or an integer constant defined on {@see \Google\Rpc\Code}. + * @type int $initialRetryDelayMillis The initial delay of retry in milliseconds. + * @type int $retryDelayMultiplier The exponential multiplier of retry delay. + * @type int $maxRetryDelayMillis The max delay of retry in milliseconds. + * @type int $initialRpcTimeoutMillis The initial timeout of rpc call in milliseconds. + * @type int $rpcTimeoutMultiplier The exponential multiplier of rpc timeout. + * @type int $maxRpcTimeoutMillis The max timeout of rpc call in milliseconds. + * @type int $totalTimeoutMillis The max accumulative timeout in total. + * @type int $maxRetries The max retries allowed for an operation. + * Defaults to the value of the DEFAULT_MAX_RETRIES constant. + * This option is experimental. + * @type callable $retryFunction This function will be used to decide if we should retry or not. + * Callable signature: `function (Exception $e, array $options): bool` + * This option is experimental. + * } + */ + public function __construct(array $settings) + { + $this->validateNotNull($settings, [ + 'initialRetryDelayMillis', + 'retryDelayMultiplier', + 'maxRetryDelayMillis', + 'initialRpcTimeoutMillis', + 'rpcTimeoutMultiplier', + 'maxRpcTimeoutMillis', + 'totalTimeoutMillis', + 'retryableCodes' + ]); + $this->initialRetryDelayMillis = $settings['initialRetryDelayMillis']; + $this->retryDelayMultiplier = $settings['retryDelayMultiplier']; + $this->maxRetryDelayMillis = $settings['maxRetryDelayMillis']; + $this->initialRpcTimeoutMillis = $settings['initialRpcTimeoutMillis']; + $this->rpcTimeoutMultiplier = $settings['rpcTimeoutMultiplier']; + $this->maxRpcTimeoutMillis = $settings['maxRpcTimeoutMillis']; + $this->totalTimeoutMillis = $settings['totalTimeoutMillis']; + $this->retryableCodes = $settings['retryableCodes']; + $this->retriesEnabled = array_key_exists('retriesEnabled', $settings) + ? $settings['retriesEnabled'] + : (count($this->retryableCodes) > 0); + $this->noRetriesRpcTimeoutMillis = array_key_exists('noRetriesRpcTimeoutMillis', $settings) + ? $settings['noRetriesRpcTimeoutMillis'] + : $this->initialRpcTimeoutMillis; + $this->maxRetries = $settings['maxRetries'] ?? self::DEFAULT_MAX_RETRIES; + $this->retryFunction = $settings['retryFunction'] ?? null; + } + + /** + * Constructs an array mapping method names to CallSettings. + * + * @param string $serviceName + * The fully-qualified name of this service, used as a key into + * the client config file. + * @param array $clientConfig + * An array parsed from the standard API client config file. + * @param bool $disableRetries + * Disable retries in all loaded RetrySettings objects. Defaults to false. + * @throws ValidationException + * @return RetrySettings[] $retrySettings + */ + public static function load( + string $serviceName, + array $clientConfig, + bool $disableRetries = false + ) { + $serviceRetrySettings = []; + + $serviceConfig = $clientConfig['interfaces'][$serviceName]; + $retryCodes = $serviceConfig['retry_codes']; + $retryParams = $serviceConfig['retry_params']; + foreach ($serviceConfig['methods'] as $methodName => $methodConfig) { + $timeoutMillis = $methodConfig['timeout_millis']; + + if (empty($methodConfig['retry_codes_name']) || empty($methodConfig['retry_params_name'])) { + // Construct a RetrySettings object with retries disabled + $retrySettings = self::constructDefault()->with([ + 'noRetriesRpcTimeoutMillis' => $timeoutMillis, + ]); + } else { + $retryCodesName = $methodConfig['retry_codes_name']; + $retryParamsName = $methodConfig['retry_params_name']; + + if (!array_key_exists($retryCodesName, $retryCodes)) { + throw new ValidationException("Invalid retry_codes_name setting: '$retryCodesName'"); + } + if (!array_key_exists($retryParamsName, $retryParams)) { + throw new ValidationException("Invalid retry_params_name setting: '$retryParamsName'"); + } + + foreach ($retryCodes[$retryCodesName] as $status) { + if (!ApiStatus::isValidStatus($status)) { + throw new ValidationException("Invalid status code: '$status'"); + } + } + + $retryParameters = self::convertArrayFromSnakeCase($retryParams[$retryParamsName]) + [ + 'retryableCodes' => $retryCodes[$retryCodesName], + 'noRetriesRpcTimeoutMillis' => $timeoutMillis, + ]; + if ($disableRetries) { + $retryParameters['retriesEnabled'] = false; + } + + $retrySettings = new RetrySettings($retryParameters); + } + + $serviceRetrySettings[$methodName] = $retrySettings; + } + + return $serviceRetrySettings; + } + + public static function constructDefault() + { + return new RetrySettings([ + 'retriesEnabled' => false, + 'noRetriesRpcTimeoutMillis' => 30000, + 'initialRetryDelayMillis' => 100, + 'retryDelayMultiplier' => 1.3, + 'maxRetryDelayMillis' => 60000, + 'initialRpcTimeoutMillis' => 20000, + 'rpcTimeoutMultiplier' => 1, + 'maxRpcTimeoutMillis' => 20000, + 'totalTimeoutMillis' => 600000, + 'retryableCodes' => [], + 'maxRetries' => self::DEFAULT_MAX_RETRIES, + 'retryFunction' => null]); + } + + /** + * Creates a new instance of RetrySettings that updates the settings in the existing instance + * with the settings specified in the $settings parameter. + * + * @param array $settings { + * Settings for configuring the retry behavior. Supports all of the options supported by + * the constructor; see {@see \Google\ApiCore\RetrySettings::__construct()}. All parameters + * are optional - all unset parameters will default to the value in the existing instance. + * } + * @return RetrySettings + */ + public function with(array $settings) + { + $existingSettings = [ + 'initialRetryDelayMillis' => $this->getInitialRetryDelayMillis(), + 'retryDelayMultiplier' => $this->getRetryDelayMultiplier(), + 'maxRetryDelayMillis' => $this->getMaxRetryDelayMillis(), + 'initialRpcTimeoutMillis' => $this->getInitialRpcTimeoutMillis(), + 'rpcTimeoutMultiplier' => $this->getRpcTimeoutMultiplier(), + 'maxRpcTimeoutMillis' => $this->getMaxRpcTimeoutMillis(), + 'totalTimeoutMillis' => $this->getTotalTimeoutMillis(), + 'retryableCodes' => $this->getRetryableCodes(), + 'retriesEnabled' => $this->retriesEnabled(), + 'noRetriesRpcTimeoutMillis' => $this->getNoRetriesRpcTimeoutMillis(), + 'maxRetries' => $this->getMaxRetries(), + 'retryFunction' => $this->getRetryFunction(), + ]; + return new RetrySettings($settings + $existingSettings); + } + + /** + * Creates an associative array of the {@see \Google\ApiCore\RetrySettings} timeout fields configured + * with the given timeout specified in the $timeout parameter interpreted as a logical timeout. + * + * @param int $timeout The timeout in milliseconds to be used as a logical call timeout. + * @return array + */ + public static function logicalTimeout(int $timeout) + { + return [ + 'initialRpcTimeoutMillis' => $timeout, + 'maxRpcTimeoutMillis' => $timeout, + 'totalTimeoutMillis' => $timeout, + 'noRetriesRpcTimeoutMillis' => $timeout, + 'rpcTimeoutMultiplier' => 1.0 + ]; + } + + /** + * @return bool Returns true if retries are enabled, otherwise returns false. + */ + public function retriesEnabled() + { + return $this->retriesEnabled; + } + + /** + * @return int The timeout of the rpc call to be used if $retriesEnabled is false, + * in milliseconds. + */ + public function getNoRetriesRpcTimeoutMillis() + { + return $this->noRetriesRpcTimeoutMillis; + } + + /** + * @return int[] Status codes to retry + */ + public function getRetryableCodes() + { + return $this->retryableCodes; + } + + /** + * @return int The initial retry delay in milliseconds. If $this->retriesEnabled() + * is false, this setting is unused. + */ + public function getInitialRetryDelayMillis() + { + return $this->initialRetryDelayMillis; + } + + /** + * @return float The retry delay multiplier. If $this->retriesEnabled() + * is false, this setting is unused. + */ + public function getRetryDelayMultiplier() + { + return $this->retryDelayMultiplier; + } + + /** + * @return int The maximum retry delay in milliseconds. If $this->retriesEnabled() + * is false, this setting is unused. + */ + public function getMaxRetryDelayMillis() + { + return $this->maxRetryDelayMillis; + } + + /** + * @return int The initial rpc timeout in milliseconds. If $this->retriesEnabled() + * is false, this setting is unused - use noRetriesRpcTimeoutMillis to + * set the timeout in that case. + */ + public function getInitialRpcTimeoutMillis() + { + return $this->initialRpcTimeoutMillis; + } + + /** + * @return float The rpc timeout multiplier. If $this->retriesEnabled() + * is false, this setting is unused. + */ + public function getRpcTimeoutMultiplier() + { + return $this->rpcTimeoutMultiplier; + } + + /** + * @return int The maximum rpc timeout in milliseconds. If $this->retriesEnabled() + * is false, this setting is unused - use noRetriesRpcTimeoutMillis to + * set the timeout in that case. + */ + public function getMaxRpcTimeoutMillis() + { + return $this->maxRpcTimeoutMillis; + } + + /** + * @return int The total time in milliseconds to spend on the call, including all + * retry attempts and delays between attempts. If $this->retriesEnabled() + * is false, this setting is unused - use noRetriesRpcTimeoutMillis to + * set the timeout in that case. + */ + public function getTotalTimeoutMillis() + { + return $this->totalTimeoutMillis; + } + + /** + * @experimental + */ + public function getMaxRetries() + { + return $this->maxRetries; + } + + /** + * @experimental + */ + public function getRetryFunction() + { + return $this->retryFunction; + } + + private static function convertArrayFromSnakeCase(array $settings) + { + $camelCaseSettings = []; + foreach ($settings as $key => $value) { + $camelCaseKey = str_replace(' ', '', ucwords(str_replace('_', ' ', $key))); + $camelCaseSettings[lcfirst($camelCaseKey)] = $value; + } + return $camelCaseSettings; + } +} diff --git a/vendor/google/gax/src/Serializer.php b/vendor/google/gax/src/Serializer.php new file mode 100644 index 0000000..a4e404d --- /dev/null +++ b/vendor/google/gax/src/Serializer.php @@ -0,0 +1,541 @@ + \Google\Rpc\RetryInfo::class, + 'google.rpc.debuginfo-bin' => \Google\Rpc\DebugInfo::class, + 'google.rpc.quotafailure-bin' => \Google\Rpc\QuotaFailure::class, + 'google.rpc.badrequest-bin' => \Google\Rpc\BadRequest::class, + 'google.rpc.requestinfo-bin' => \Google\Rpc\RequestInfo::class, + 'google.rpc.resourceinfo-bin' => \Google\Rpc\ResourceInfo::class, + 'google.rpc.errorinfo-bin' => \Google\Rpc\ErrorInfo::class, + 'google.rpc.help-bin' => \Google\Rpc\Help::class, + 'google.rpc.localizedmessage-bin' => \Google\Rpc\LocalizedMessage::class, + ]; + + private $fieldTransformers; + private $messageTypeTransformers; + private $decodeFieldTransformers; + private $decodeMessageTypeTransformers; + // Array of key-value pairs which specify a custom encoding function. + // The key is the proto class and the value is the function + // which will be used to convert the proto instead of the + // encodeMessage method from the Serializer class. + private $customEncoders; + + private $descriptorMaps = []; + + /** + * Serializer constructor. + * + * @param array $fieldTransformers An array mapping field names to transformation functions + * @param array $messageTypeTransformers An array mapping message names to transformation functions + * @param array $decodeFieldTransformers An array mapping field names to transformation functions + * @param array $decodeMessageTypeTransformers An array mapping message names to transformation functions + */ + public function __construct( + $fieldTransformers = [], + $messageTypeTransformers = [], + $decodeFieldTransformers = [], + $decodeMessageTypeTransformers = [], + $customEncoders = [], + ) { + $this->fieldTransformers = $fieldTransformers; + $this->messageTypeTransformers = $messageTypeTransformers; + $this->decodeFieldTransformers = $decodeFieldTransformers; + $this->decodeMessageTypeTransformers = $decodeMessageTypeTransformers; + $this->customEncoders = $customEncoders; + } + + /** + * Encode protobuf message as a PHP array + * + * @param mixed $message + * @return array + * @throws ValidationException + */ + public function encodeMessage($message) + { + $cls = get_class($message); + + // If we have supplied a customEncoder for this class type, + // then we use that instead of the general encodeMessage definition. + if (array_key_exists($cls, $this->customEncoders)) { + $func = $this->customEncoders[$cls]; + return call_user_func($func, $message); + } + // Get message descriptor + $pool = DescriptorPool::getGeneratedPool(); + $messageType = $pool->getDescriptorByClassName(get_class($message)); + try { + return $this->encodeMessageImpl($message, $messageType); + } catch (\Exception $e) { + throw new ValidationException( + 'Error encoding message: ' . $e->getMessage(), + $e->getCode(), + $e + ); + } + } + + /** + * Decode PHP array into the specified protobuf message + * + * @param mixed $message + * @param array $data + * @return mixed + * @throws ValidationException + */ + public function decodeMessage($message, array $data) + { + // Get message descriptor + $pool = DescriptorPool::getGeneratedPool(); + $messageType = $pool->getDescriptorByClassName(get_class($message)); + try { + return $this->decodeMessageImpl($message, $messageType, $data); + } catch (\Exception $e) { + throw new ValidationException( + 'Error decoding message: ' . $e->getMessage(), + $e->getCode(), + $e + ); + } + } + + /** + * @param Message $message + * @return string Json representation of $message + * @throws ValidationException + */ + public static function serializeToJson(Message $message) + { + return json_encode(self::serializeToPhpArray($message), JSON_PRETTY_PRINT); + } + + /** + * @param Message $message + * @return array PHP array representation of $message + * @throws ValidationException + */ + public static function serializeToPhpArray(Message $message) + { + return self::getPhpArraySerializer()->encodeMessage($message); + } + + /** + * Decode metadata received from gRPC status object + * + * @param array $metadata + * @return array + */ + public static function decodeMetadata(array $metadata) + { + if (count($metadata) == 0) { + return []; + } + $result = []; + foreach ($metadata as $key => $values) { + foreach ($values as $value) { + $decodedValue = [ + '@type' => $key, + ]; + if (self::hasBinaryHeaderSuffix($key)) { + if (isset(self::$metadataKnownTypes[$key])) { + $class = self::$metadataKnownTypes[$key]; + /** @var Message $message */ + $message = new $class(); + try { + $message->mergeFromString($value); + $decodedValue += self::serializeToPhpArray($message); + } catch (\Exception $e) { + // We encountered an error trying to deserialize the data + $decodedValue += [ + 'data' => '', + ]; + } + } else { + // The metadata contains an unexpected binary type + $decodedValue += [ + 'data' => '', + ]; + } + } else { + $decodedValue += [ + 'data' => $value, + ]; + } + $result[] = $decodedValue; + } + } + return $result; + } + + /** + * Decode an array of Any messages into a printable PHP array. + * + * @param iterable $anyArray + * @return array + */ + public static function decodeAnyMessages($anyArray) + { + $results = []; + foreach ($anyArray as $any) { + try { + /** @var Any $any */ + /** @var Message $unpacked */ + $unpacked = $any->unpack(); + $results[] = self::serializeToPhpArray($unpacked); + } catch (\Exception $ex) { + echo "$ex\n"; + // failed to unpack the $any object - show as unknown binary data + $results[] = [ + 'typeUrl' => $any->getTypeUrl(), + 'value' => '', + ]; + } + } + return $results; + } + + /** + * @param FieldDescriptor $field + * @param Message|array|string $data + * @return mixed + * @throws \Exception + */ + private function encodeElement(FieldDescriptor $field, $data) + { + switch ($field->getType()) { + case GPBType::MESSAGE: + if (is_array($data)) { + $result = $data; + } else { + $result = $this->encodeMessageImpl($data, $field->getMessageType()); + } + $messageType = $field->getMessageType()->getFullName(); + if (isset($this->messageTypeTransformers[$messageType])) { + $result = $this->messageTypeTransformers[$messageType]($result); + } + break; + default: + $result = $data; + break; + } + + if (isset($this->fieldTransformers[$field->getName()])) { + $result = $this->fieldTransformers[$field->getName()]($result); + } + return $result; + } + + private function getDescriptorMaps(Descriptor $descriptor) + { + if (!isset($this->descriptorMaps[$descriptor->getFullName()])) { + $fieldsByName = []; + $fieldCount = $descriptor->getFieldCount(); + for ($i = 0; $i < $fieldCount; $i++) { + $field = $descriptor->getField($i); + $fieldsByName[$field->getName()] = $field; + } + $fieldToOneof = []; + $oneofCount = $descriptor->getOneofDeclCount(); + for ($i = 0; $i < $oneofCount; $i++) { + $oneof = $descriptor->getOneofDecl($i); + $oneofFieldCount = $oneof->getFieldCount(); + for ($j = 0; $j < $oneofFieldCount; $j++) { + $field = $oneof->getField($j); + $fieldToOneof[$field->getName()] = $oneof->getName(); + } + } + $this->descriptorMaps[$descriptor->getFullName()] = [$fieldsByName, $fieldToOneof]; + } + return $this->descriptorMaps[$descriptor->getFullName()]; + } + + /** + * @param Message $message + * @param Descriptor $messageType + * @return array + * @throws \Exception + */ + private function encodeMessageImpl(Message $message, Descriptor $messageType) + { + $data = []; + + // Call the getDescriptorMaps outside of the loop to save processing. + // Use the same set of fields to loop over, instead of using field count. + list($fields, $fieldsToOneof) = $this->getDescriptorMaps($messageType); + foreach ($fields as $field) { + $key = $field->getName(); + $getter = $this->getGetter($key); + $v = $message->$getter(); + + if (is_null($v)) { + continue; + } + + // Check and skip unset fields inside oneofs + if (isset($fieldsToOneof[$key])) { + $oneofName = $fieldsToOneof[$key]; + $oneofGetter = $this->getGetter($oneofName); + if ($message->$oneofGetter() !== $key) { + continue; + } + } + + if ($field->isMap()) { + list($mapFieldsByName, $_) = $this->getDescriptorMaps($field->getMessageType()); + $keyField = $mapFieldsByName[self::MAP_KEY_FIELD_NAME]; + $valueField = $mapFieldsByName[self::MAP_VALUE_FIELD_NAME]; + $arr = []; + foreach ($v as $k => $vv) { + $arr[$this->encodeElement($keyField, $k)] = $this->encodeElement($valueField, $vv); + } + $v = $arr; + } elseif ($this->checkFieldRepeated($field)) { + $arr = []; + foreach ($v as $k => $vv) { + $arr[$k] = $this->encodeElement($field, $vv); + } + $v = $arr; + } else { + $v = $this->encodeElement($field, $v); + } + + $key = self::toCamelCase($key); + $data[$key] = $v; + } + + return $data; + } + + /** + * @param FieldDescriptor $field + * @param mixed $data + * @return mixed + * @throws \Exception + */ + private function decodeElement(FieldDescriptor $field, $data) + { + if (isset($this->decodeFieldTransformers[$field->getName()])) { + $data = $this->decodeFieldTransformers[$field->getName()]($data); + } + + switch ($field->getType()) { + case GPBType::MESSAGE: + if ($data instanceof Message) { + return $data; + } + $messageType = $field->getMessageType(); + $messageTypeName = $messageType->getFullName(); + $klass = $messageType->getClass(); + $msg = new $klass(); + if (isset($this->decodeMessageTypeTransformers[$messageTypeName])) { + $data = $this->decodeMessageTypeTransformers[$messageTypeName]($data); + } + + return $this->decodeMessageImpl($msg, $messageType, $data); + default: + return $data; + } + } + + /** + * @param Message $message + * @param Descriptor $messageType + * @param array $data + * @return mixed + * @throws \Exception + */ + private function decodeMessageImpl(Message $message, Descriptor $messageType, array $data) + { + list($fieldsByName, $_) = $this->getDescriptorMaps($messageType); + foreach ($data as $key => $v) { + // Get the field by tag number or name + $fieldName = self::toSnakeCase($key); + + // Unknown field found + if (!isset($fieldsByName[$fieldName])) { + throw new RuntimeException(sprintf( + 'cannot handle unknown field %s on message %s', + $fieldName, + $messageType->getFullName() + )); + } + + /** @var FieldDescriptor $field */ + $field = $fieldsByName[$fieldName]; + + if ($field->isMap()) { + list($mapFieldsByName, $_) = $this->getDescriptorMaps($field->getMessageType()); + $keyField = $mapFieldsByName[self::MAP_KEY_FIELD_NAME]; + $valueField = $mapFieldsByName[self::MAP_VALUE_FIELD_NAME]; + $arr = []; + foreach ($v as $k => $vv) { + $arr[$this->decodeElement($keyField, $k)] = $this->decodeElement($valueField, $vv); + } + $value = $arr; + } elseif ($this->checkFieldRepeated($field)) { + $arr = []; + foreach ($v as $k => $vv) { + $arr[$k] = $this->decodeElement($field, $vv); + } + $value = $arr; + } else { + $value = $this->decodeElement($field, $v); + } + + $setter = $this->getSetter($field->getName()); + $message->$setter($value); + + // We must unset $value here, otherwise the protobuf c extension will mix up the references + // and setting one value will change all others + unset($value); + } + return $message; + } + + /** + * @param FieldDescriptor $field + * @return bool + */ + private function checkFieldRepeated(FieldDescriptor $field): bool + { + return method_exists($field, 'isRepeated') + ? $field->isRepeated() + : $field->getLabel() === GPBLabel::REPEATED; + } + + /** + * @param string $name + * @return string Getter function + */ + public static function getGetter(string $name) + { + if (!isset(self::$getterMap[$name])) { + self::$getterMap[$name] = 'get' . ucfirst(self::toCamelCase($name)); + } + return self::$getterMap[$name]; + } + + /** + * @param string $name + * @return string Setter function + */ + public static function getSetter(string $name) + { + if (!isset(self::$setterMap[$name])) { + self::$setterMap[$name] = 'set' . ucfirst(self::toCamelCase($name)); + } + return self::$setterMap[$name]; + } + + /** + * Convert string from camelCase to snake_case + * + * @param string $key + * @return string + */ + public static function toSnakeCase(string $key) + { + if (!isset(self::$snakeCaseMap[$key])) { + self::$snakeCaseMap[$key] = strtolower( + preg_replace(['/([a-z\d])([A-Z])/', '/([^_])([A-Z][a-z])/'], '$1_$2', $key) + ); + } + return self::$snakeCaseMap[$key]; + } + + /** + * Convert string from snake_case to camelCase + * + * @param string $key + * @return string + */ + public static function toCamelCase(string $key) + { + if (!isset(self::$camelCaseMap[$key])) { + self::$camelCaseMap[$key] = lcfirst(str_replace(' ', '', ucwords(str_replace('_', ' ', $key)))); + } + return self::$camelCaseMap[$key]; + } + + private static function hasBinaryHeaderSuffix(string $key) + { + return substr_compare($key, '-bin', strlen($key) - 4) === 0; + } + + private static function getPhpArraySerializer() + { + if (is_null(self::$phpArraySerializer)) { + self::$phpArraySerializer = new Serializer(); + } + return self::$phpArraySerializer; + } + + public static function loadKnownMetadataTypes() + { + foreach (self::$metadataKnownTypes as $key => $class) { + new $class(); + } + } +} + +// It is necessary to call this when this file is included. Otherwise we cannot be +// guaranteed that the relevant classes will be loaded into the protobuf descriptor +// pool when we try to unpack an Any object containing that class. +// phpcs:disable PSR1.Files.SideEffects +Serializer::loadKnownMetadataTypes(); +// phpcs:enable diff --git a/vendor/google/gax/src/ServerStream.php b/vendor/google/gax/src/ServerStream.php new file mode 100644 index 0000000..3257e65 --- /dev/null +++ b/vendor/google/gax/src/ServerStream.php @@ -0,0 +1,128 @@ +call = $serverStreamingCall; + if (array_key_exists('resourcesGetMethod', $streamingDescriptor)) { + $this->resourcesGetMethod = $streamingDescriptor['resourcesGetMethod']; + } + $this->logger = $logger; + } + + /** + * A generator which yields results from the server until the streaming call + * completes. Throws an ApiException if the streaming call failed. + * + * @throws ApiException + * @return \Generator|mixed + */ + public function readAll() + { + $resourcesGetMethod = $this->resourcesGetMethod; + foreach ($this->call->responses() as $response) { + if ($this->logger && $response instanceof Message) { + $responseEvent = new RpcLogEvent(); + $responseEvent->payload = $response->serializeToJsonString(); + $responseEvent->processId = (int) getmypid(); + $responseEvent->requestId = crc32((string) spl_object_id($this) . getmypid()); + + $this->logResponse($responseEvent); + } + + if (!is_null($resourcesGetMethod)) { + foreach ($response->$resourcesGetMethod() as $resource) { + yield $resource; + } + } else { + yield $response; + } + } + + // Errors in the REST transport will be thrown from there and not reach + // this handling. Successful REST server-streams will have an OK status. + $status = $this->call->getStatus(); + + if ($this->logger) { + $statusEvent = new RpcLogEvent(); + $statusEvent->status = $status->code; + $statusEvent->processId = (int) getmypid(); + $statusEvent->requestId = crc32((string) spl_object_id($this) . getmypid()); + + $this->logResponse($statusEvent); + } + + if ($status->code !== Code::OK) { + throw ApiException::createFromStdClass($status); + } + } + + /** + * Return the underlying call object. + * + * @return ServerStreamingCallInterface + */ + public function getServerStreamingCall() + { + return $this->call; + } +} diff --git a/vendor/google/gax/src/ServerStreamingCallInterface.php b/vendor/google/gax/src/ServerStreamingCallInterface.php new file mode 100644 index 0000000..a78ff27 --- /dev/null +++ b/vendor/google/gax/src/ServerStreamingCallInterface.php @@ -0,0 +1,95 @@ + $metadata Metadata to send with the call, if applicable + * (optional) + * @param array $options An array of options, possible keys: + * 'flags' => a number (optional) + * @return void + */ + public function start($data, array $metadata = [], array $options = []); + + /** + * @return mixed An iterator of response values. + */ + public function responses(); + + /** + * Return the status of the server stream. + * + * @return \stdClass The API status. + */ + public function getStatus(); + + /** + * @return mixed The metadata sent by the server. + */ + public function getMetadata(); + + /** + * @return mixed The trailing metadata sent by the server. + */ + public function getTrailingMetadata(); + + /** + * @return string The URI of the endpoint. + */ + public function getPeer(); + + /** + * Cancels the call. + * + * @return void + */ + public function cancel(); + + /** + * Set the CallCredentials for the underlying Call. + * + * @param mixed $call_credentials The CallCredentials object + * + * @return void + */ + public function setCallCredentials($call_credentials); +} diff --git a/vendor/google/gax/src/ServiceAddressTrait.php b/vendor/google/gax/src/ServiceAddressTrait.php new file mode 100644 index 0000000..1343a23 --- /dev/null +++ b/vendor/google/gax/src/ServiceAddressTrait.php @@ -0,0 +1,64 @@ +assertSame($expected, $actual); + + return; + } + + if (is_array($expected) || $expected instanceof RepeatedField) { + if (is_array($expected) === is_array($actual)) { + $this->assertEquals($expected, $actual); + } + + $this->assertCount(count($expected), $actual); + + $expectedValues = $this->getValues($expected); + $actualValues = $this->getValues($actual); + + for ($i = 0; $i < count($expectedValues); $i++) { + $expectedElement = $expectedValues[$i]; + $actualElement = $actualValues[$i]; + $this->assertProtobufEquals($expectedElement, $actualElement); + } + } else { + $this->assertEquals($expected, $actual); + if ($expected instanceof Message) { + $pool = DescriptorPool::getGeneratedPool(); + $descriptor = $pool->getDescriptorByClassName(get_class($expected)); + + $fieldCount = $descriptor->getFieldCount(); + for ($i = 0; $i < $fieldCount; $i++) { + $field = $descriptor->getField($i); + $getter = Serializer::getGetter($field->getName()); + $expectedFieldValue = $expected->$getter(); + $actualFieldValue = $actual->$getter(); + $this->assertProtobufEquals($expectedFieldValue, $actualFieldValue); + } + } + } + } + + /** + * @param iterable $field + */ + private function getValues($field) + { + return array_values( + is_array($field) + ? $field + : iterator_to_array($field) + ); + } +} diff --git a/vendor/google/gax/src/Testing/MessageAwareArrayComparator.php b/vendor/google/gax/src/Testing/MessageAwareArrayComparator.php new file mode 100644 index 0000000..9feedb0 --- /dev/null +++ b/vendor/google/gax/src/Testing/MessageAwareArrayComparator.php @@ -0,0 +1,32 @@ +exporter = new MessageAwareExporter(); + } +} diff --git a/vendor/google/gax/src/Testing/MessageAwareExporter.php b/vendor/google/gax/src/Testing/MessageAwareExporter.php new file mode 100644 index 0000000..2aeb29c --- /dev/null +++ b/vendor/google/gax/src/Testing/MessageAwareExporter.php @@ -0,0 +1,47 @@ +responses = $responses; + $this->deserialize = $deserialize; + if (is_null($status)) { + $status = new MockStatus(Code::OK); + } + $this->status = $status; + } + + /** + * @return mixed|null + * @throws ApiException + */ + public function read() + { + if (count($this->responses) > 0) { + $resp = array_shift($this->responses); + if (is_null($resp)) { + // Null was added to the responses list to simulate a failed stream + // To ensure that getStatus can now be called, we clear the remaining + // responses and set writesDone to true + $this->responses = []; + $this->writesDone(); + return null; + } + $obj = $this->deserializeMessage($resp, $this->deserialize); + return $obj; + } elseif ($this->writesDone) { + return null; + } else { + throw new ApiException( + 'No more responses to read, but closeWrite() not called - ' + . 'this would be blocking', + Grpc\STATUS_INTERNAL, + null + ); + } + } + + /** + * @return stdClass|null + * @throws ApiException + */ + public function getStatus() + { + if (count($this->responses) > 0) { + throw new ApiException( + 'Calls to getStatus() will block if all responses are not read', + Grpc\STATUS_INTERNAL, + null + ); + } + if (!$this->writesDone) { + throw new ApiException( + 'Calls to getStatus() will block if closeWrite() not called', + Grpc\STATUS_INTERNAL, + null + ); + } + return $this->status; + } + + /** + * Save the request object, to be retrieved via getReceivedCalls() + * @param Message|mixed $request The request object + * @param array $options An array of options. + * @throws ApiException + */ + public function write($request, array $options = []) + { + if ($this->writesDone) { + throw new ApiException( + 'Cannot call write() after writesDone()', + Grpc\STATUS_INTERNAL, + null + ); + } + if (is_a($request, '\Google\Protobuf\Internal\Message')) { + /** @var Message $newRequest */ + $newRequest = new $request(); + $newRequest->mergeFromString($request->serializeToString()); + $request = $newRequest; + } + $this->receivedWrites[] = $request; + } + + /** + * Set writesDone to true + */ + public function writesDone() + { + $this->writesDone = true; + } + + /** + * Return a list of calls made to write(), and clear $receivedFuncCalls. + * + * @return mixed[] An array of received requests + */ + public function popReceivedCalls() + { + $receivedFuncCallsTemp = $this->receivedWrites; + $this->receivedWrites = []; + return $receivedFuncCallsTemp; + } +} diff --git a/vendor/google/gax/src/Testing/MockClientStreamingCall.php b/vendor/google/gax/src/Testing/MockClientStreamingCall.php new file mode 100644 index 0000000..ca28e3d --- /dev/null +++ b/vendor/google/gax/src/Testing/MockClientStreamingCall.php @@ -0,0 +1,111 @@ +mockUnaryCall = new MockUnaryCall($response, $deserialize, $status); + } + + /** + * Immediately return the preset response object and status. + * @return array The response object and status. + */ + public function wait() + { + $this->waitCalled = true; + return $this->mockUnaryCall->wait(); + } + + /** + * Save the request object, to be retrieved via getReceivedCalls() + * @param Message|mixed $request The request object + * @param array $options An array of options + * @throws ApiException + */ + public function write($request, array $options = []) + { + if ($this->waitCalled) { + throw new ApiException('Cannot call write() after wait()', Code::INTERNAL, ApiStatus::INTERNAL); + } + if (is_a($request, '\Google\Protobuf\Internal\Message')) { + /** @var Message $newRequest */ + $newRequest = new $request(); + $newRequest->mergeFromString($request->serializeToString()); + $request = $newRequest; + } + $this->receivedWrites[] = $request; + } + + /** + * Return a list of calls made to write(), and clear $receivedFuncCalls. + * + * @return mixed[] An array of received requests + */ + public function popReceivedCalls() + { + $receivedFuncCallsTemp = $this->receivedWrites; + $this->receivedWrites = []; + return $receivedFuncCallsTemp; + } +} diff --git a/vendor/google/gax/src/Testing/MockGrpcTransport.php b/vendor/google/gax/src/Testing/MockGrpcTransport.php new file mode 100644 index 0000000..d6af2fe --- /dev/null +++ b/vendor/google/gax/src/Testing/MockGrpcTransport.php @@ -0,0 +1,142 @@ +mockCall = $mockCall; + $opts = ['credentials' => ChannelCredentials::createSsl()]; + parent::__construct('', $opts, logger: $logger); + } + + /** + * @param string $method + * @param array $arguments + * @param callable $deserialize + */ + protected function _simpleRequest( + $method, + $arguments, + $deserialize, + array $metadata = [], + array $options = [] + ) { + $this->logCall($method, $deserialize, $metadata, $options, $arguments); + return $this->mockCall; + } + + /** + * @param string $method + * @param callable $deserialize + */ + protected function _clientStreamRequest( + $method, + $deserialize, + array $metadata = [], + array $options = [] + ) { + $this->logCall($method, $deserialize, $metadata, $options); + return $this->mockCall; + } + + /** + * @param string $method + * @param array $arguments + * @param callable $deserialize + */ + protected function _serverStreamRequest( + $method, + $arguments, + $deserialize, + array $metadata = [], + array $options = [] + ) { + $this->logCall($method, $deserialize, $metadata, $options, $arguments); + return $this->mockCall; + } + + /** + * @param string $method + * @param callable $deserialize + */ + protected function _bidiRequest( + $method, + $deserialize, + array $metadata = [], + array $options = [] + ) { + $this->logCall($method, $deserialize, $metadata, $options); + return $this->mockCall; + } + + /** + * @param string $method + * @param callable $deserialize + * @param array $arguments + */ + private function logCall( + $method, + $deserialize, + array $metadata = [], + array $options = [], + $arguments = null + ) { + $this->requestArguments = [ + 'method' => $method, + 'arguments' => $arguments, + 'deserialize' => $deserialize, + 'metadata' => $metadata, + 'options' => $options, + ]; + } + + public function getRequestArguments() + { + return $this->requestArguments; + } +} diff --git a/vendor/google/gax/src/Testing/MockRequest.php b/vendor/google/gax/src/Testing/MockRequest.php new file mode 100644 index 0000000..f7a23a3 --- /dev/null +++ b/vendor/google/gax/src/Testing/MockRequest.php @@ -0,0 +1,86 @@ +google.apicore.testing.MockRequest + * + * @internal + */ +class MockRequest extends \Google\Protobuf\Internal\Message +{ + /** + * Generated from protobuf field string page_token = 1; + */ + protected $page_token = ''; + /** + * Generated from protobuf field uint64 page_size = 2; + */ + protected $page_size = 0; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $page_token + * @type int|string $page_size + * } + */ + public function __construct($data = null) + { + Mocks::initOnce(); + parent::__construct($data); + } + + /** + * Generated from protobuf field string page_token = 1; + * @return string + */ + public function getPageToken() + { + return $this->page_token; + } + + /** + * Generated from protobuf field string page_token = 1; + * @param string $var + * @return $this + */ + public function setPageToken($var) + { + GPBUtil::checkString($var, true); + $this->page_token = $var; + + return $this; + } + + /** + * Generated from protobuf field uint64 page_size = 2; + * @return int|string + */ + public function getPageSize() + { + return $this->page_size; + } + + /** + * Generated from protobuf field uint64 page_size = 2; + * @param int|string $var + * @return $this + */ + public function setPageSize($var) + { + GPBUtil::checkUint64($var); + $this->page_size = $var; + + return $this; + } + +} diff --git a/vendor/google/gax/src/Testing/MockRequestBody.php b/vendor/google/gax/src/Testing/MockRequestBody.php new file mode 100644 index 0000000..7d877d8 --- /dev/null +++ b/vendor/google/gax/src/Testing/MockRequestBody.php @@ -0,0 +1,647 @@ +google.apicore.testing.MockRequestBody + * + * @internal + */ +class MockRequestBody extends \Google\Protobuf\Internal\Message +{ + /** + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Generated from protobuf field uint64 number = 2; + */ + protected $number = 0; + /** + * Generated from protobuf field repeated string repeated_field = 3; + */ + private $repeated_field; + /** + * Generated from protobuf field .google.apicore.testing.MockRequestBody nested_message = 4; + */ + protected $nested_message = null; + /** + * Generated from protobuf field .google.protobuf.BytesValue bytes_value = 5; + */ + protected $bytes_value = null; + /** + * Generated from protobuf field .google.protobuf.Duration duration_value = 6; + */ + protected $duration_value = null; + /** + * Generated from protobuf field .google.protobuf.FieldMask field_mask = 7; + */ + protected $field_mask = null; + /** + * Generated from protobuf field .google.protobuf.Int64Value int64_value = 8; + */ + protected $int64_value = null; + /** + * Generated from protobuf field .google.protobuf.ListValue list_value = 9; + */ + protected $list_value = null; + /** + * Generated from protobuf field .google.protobuf.StringValue string_value = 10; + */ + protected $string_value = null; + /** + * Generated from protobuf field .google.protobuf.Struct struct_value = 11; + */ + protected $struct_value = null; + /** + * Generated from protobuf field .google.protobuf.Timestamp timestamp_value = 12; + */ + protected $timestamp_value = null; + /** + * Generated from protobuf field .google.protobuf.Value value_value = 13; + */ + protected $value_value = null; + protected $oneof_field; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * @type int|string $number + * @type string[]|\Google\Protobuf\RepeatedField $repeated_field + * @type \Google\ApiCore\Testing\MockRequestBody $nested_message + * @type \Google\Protobuf\BytesValue $bytes_value + * @type \Google\Protobuf\Duration $duration_value + * @type \Google\Protobuf\FieldMask $field_mask + * @type \Google\Protobuf\Int64Value $int64_value + * @type \Google\Protobuf\ListValue $list_value + * @type \Google\Protobuf\StringValue $string_value + * @type \Google\Protobuf\Struct $struct_value + * @type \Google\Protobuf\Timestamp $timestamp_value + * @type \Google\Protobuf\Value $value_value + * @type string $field_1 + * @type string $field_2 + * @type string $field_3 + * } + */ + public function __construct($data = null) + { + \GPBMetadata\ApiCore\Testing\Mocks::initOnce(); + parent::__construct($data); + } + + /** + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, true); + $this->name = $var; + + return $this; + } + + /** + * Generated from protobuf field uint64 number = 2; + * @return int|string + */ + public function getNumber() + { + return $this->number; + } + + /** + * Generated from protobuf field uint64 number = 2; + * @param int|string $var + * @return $this + */ + public function setNumber($var) + { + GPBUtil::checkUint64($var); + $this->number = $var; + + return $this; + } + + /** + * Generated from protobuf field repeated string repeated_field = 3; + * @return \Google\Protobuf\RepeatedField + */ + public function getRepeatedField() + { + return $this->repeated_field; + } + + /** + * Generated from protobuf field repeated string repeated_field = 3; + * @param string[]|\Google\Protobuf\RepeatedField $var + * @return $this + */ + public function setRepeatedField($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->repeated_field = $arr; + + return $this; + } + + /** + * Generated from protobuf field .google.apicore.testing.MockRequestBody nested_message = 4; + * @return \Google\ApiCore\Testing\MockRequestBody + */ + public function getNestedMessage() + { + return isset($this->nested_message) ? $this->nested_message : null; + } + + public function hasNestedMessage() + { + return isset($this->nested_message); + } + + public function clearNestedMessage() + { + unset($this->nested_message); + } + + /** + * Generated from protobuf field .google.apicore.testing.MockRequestBody nested_message = 4; + * @param \Google\ApiCore\Testing\MockRequestBody $var + * @return $this + */ + public function setNestedMessage($var) + { + GPBUtil::checkMessage($var, \Google\ApiCore\Testing\MockRequestBody::class); + $this->nested_message = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.BytesValue bytes_value = 5; + * @return \Google\Protobuf\BytesValue + */ + public function getBytesValue() + { + return isset($this->bytes_value) ? $this->bytes_value : null; + } + + public function hasBytesValue() + { + return isset($this->bytes_value); + } + + public function clearBytesValue() + { + unset($this->bytes_value); + } + + /** + * Returns the unboxed value from getBytesValue() + + * Generated from protobuf field .google.protobuf.BytesValue bytes_value = 5; + * @return string|null + */ + public function getBytesValueUnwrapped() + { + return $this->readWrapperValue('bytes_value'); + } + + /** + * Generated from protobuf field .google.protobuf.BytesValue bytes_value = 5; + * @param \Google\Protobuf\BytesValue $var + * @return $this + */ + public function setBytesValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\BytesValue::class); + $this->bytes_value = $var; + + return $this; + } + + /** + * Sets the field by wrapping a primitive type in a Google\Protobuf\BytesValue object. + + * Generated from protobuf field .google.protobuf.BytesValue bytes_value = 5; + * @param string|null $var + * @return $this + */ + public function setBytesValueUnwrapped($var) + { + $this->writeWrapperValue('bytes_value', $var); + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.Duration duration_value = 6; + * @return \Google\Protobuf\Duration + */ + public function getDurationValue() + { + return isset($this->duration_value) ? $this->duration_value : null; + } + + public function hasDurationValue() + { + return isset($this->duration_value); + } + + public function clearDurationValue() + { + unset($this->duration_value); + } + + /** + * Generated from protobuf field .google.protobuf.Duration duration_value = 6; + * @param \Google\Protobuf\Duration $var + * @return $this + */ + public function setDurationValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Duration::class); + $this->duration_value = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.FieldMask field_mask = 7; + * @return \Google\Protobuf\FieldMask + */ + public function getFieldMask() + { + return isset($this->field_mask) ? $this->field_mask : null; + } + + public function hasFieldMask() + { + return isset($this->field_mask); + } + + public function clearFieldMask() + { + unset($this->field_mask); + } + + /** + * Generated from protobuf field .google.protobuf.FieldMask field_mask = 7; + * @param \Google\Protobuf\FieldMask $var + * @return $this + */ + public function setFieldMask($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\FieldMask::class); + $this->field_mask = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.Int64Value int64_value = 8; + * @return \Google\Protobuf\Int64Value + */ + public function getInt64Value() + { + return isset($this->int64_value) ? $this->int64_value : null; + } + + public function hasInt64Value() + { + return isset($this->int64_value); + } + + public function clearInt64Value() + { + unset($this->int64_value); + } + + /** + * Returns the unboxed value from getInt64Value() + + * Generated from protobuf field .google.protobuf.Int64Value int64_value = 8; + * @return int|string|null + */ + public function getInt64ValueUnwrapped() + { + return $this->readWrapperValue('int64_value'); + } + + /** + * Generated from protobuf field .google.protobuf.Int64Value int64_value = 8; + * @param \Google\Protobuf\Int64Value $var + * @return $this + */ + public function setInt64Value($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Int64Value::class); + $this->int64_value = $var; + + return $this; + } + + /** + * Sets the field by wrapping a primitive type in a Google\Protobuf\Int64Value object. + + * Generated from protobuf field .google.protobuf.Int64Value int64_value = 8; + * @param int|string|null $var + * @return $this + */ + public function setInt64ValueUnwrapped($var) + { + $this->writeWrapperValue('int64_value', $var); + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.ListValue list_value = 9; + * @return \Google\Protobuf\ListValue + */ + public function getListValue() + { + return isset($this->list_value) ? $this->list_value : null; + } + + public function hasListValue() + { + return isset($this->list_value); + } + + public function clearListValue() + { + unset($this->list_value); + } + + /** + * Generated from protobuf field .google.protobuf.ListValue list_value = 9; + * @param \Google\Protobuf\ListValue $var + * @return $this + */ + public function setListValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\ListValue::class); + $this->list_value = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.StringValue string_value = 10; + * @return \Google\Protobuf\StringValue + */ + public function getStringValue() + { + return isset($this->string_value) ? $this->string_value : null; + } + + public function hasStringValue() + { + return isset($this->string_value); + } + + public function clearStringValue() + { + unset($this->string_value); + } + + /** + * Returns the unboxed value from getStringValue() + + * Generated from protobuf field .google.protobuf.StringValue string_value = 10; + * @return string|null + */ + public function getStringValueUnwrapped() + { + return $this->readWrapperValue('string_value'); + } + + /** + * Generated from protobuf field .google.protobuf.StringValue string_value = 10; + * @param \Google\Protobuf\StringValue $var + * @return $this + */ + public function setStringValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\StringValue::class); + $this->string_value = $var; + + return $this; + } + + /** + * Sets the field by wrapping a primitive type in a Google\Protobuf\StringValue object. + + * Generated from protobuf field .google.protobuf.StringValue string_value = 10; + * @param string|null $var + * @return $this + */ + public function setStringValueUnwrapped($var) + { + $this->writeWrapperValue('string_value', $var); + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.Struct struct_value = 11; + * @return \Google\Protobuf\Struct + */ + public function getStructValue() + { + return isset($this->struct_value) ? $this->struct_value : null; + } + + public function hasStructValue() + { + return isset($this->struct_value); + } + + public function clearStructValue() + { + unset($this->struct_value); + } + + /** + * Generated from protobuf field .google.protobuf.Struct struct_value = 11; + * @param \Google\Protobuf\Struct $var + * @return $this + */ + public function setStructValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Struct::class); + $this->struct_value = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.Timestamp timestamp_value = 12; + * @return \Google\Protobuf\Timestamp + */ + public function getTimestampValue() + { + return isset($this->timestamp_value) ? $this->timestamp_value : null; + } + + public function hasTimestampValue() + { + return isset($this->timestamp_value); + } + + public function clearTimestampValue() + { + unset($this->timestamp_value); + } + + /** + * Generated from protobuf field .google.protobuf.Timestamp timestamp_value = 12; + * @param \Google\Protobuf\Timestamp $var + * @return $this + */ + public function setTimestampValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Timestamp::class); + $this->timestamp_value = $var; + + return $this; + } + + /** + * Generated from protobuf field .google.protobuf.Value value_value = 13; + * @return \Google\Protobuf\Value + */ + public function getValueValue() + { + return isset($this->value_value) ? $this->value_value : null; + } + + public function hasValueValue() + { + return isset($this->value_value); + } + + public function clearValueValue() + { + unset($this->value_value); + } + + /** + * Generated from protobuf field .google.protobuf.Value value_value = 13; + * @param \Google\Protobuf\Value $var + * @return $this + */ + public function setValueValue($var) + { + GPBUtil::checkMessage($var, \Google\Protobuf\Value::class); + $this->value_value = $var; + + return $this; + } + + /** + * Generated from protobuf field string field_1 = 14; + * @return string + */ + public function getField1() + { + return $this->readOneof(14); + } + + public function hasField1() + { + return $this->hasOneof(14); + } + + /** + * Generated from protobuf field string field_1 = 14; + * @param string $var + * @return $this + */ + public function setField1($var) + { + GPBUtil::checkString($var, true); + $this->writeOneof(14, $var); + + return $this; + } + + /** + * Generated from protobuf field string field_2 = 15; + * @return string + */ + public function getField2() + { + return $this->readOneof(15); + } + + public function hasField2() + { + return $this->hasOneof(15); + } + + /** + * Generated from protobuf field string field_2 = 15; + * @param string $var + * @return $this + */ + public function setField2($var) + { + GPBUtil::checkString($var, true); + $this->writeOneof(15, $var); + + return $this; + } + + /** + * Generated from protobuf field string field_3 = 16; + * @return string + */ + public function getField3() + { + return $this->readOneof(16); + } + + public function hasField3() + { + return $this->hasOneof(16); + } + + /** + * Generated from protobuf field string field_3 = 16; + * @param string $var + * @return $this + */ + public function setField3($var) + { + GPBUtil::checkString($var, true); + $this->writeOneof(16, $var); + + return $this; + } + + /** + * @return string + */ + public function getOneofField() + { + return $this->whichOneof('oneof_field'); + } + +} diff --git a/vendor/google/gax/src/Testing/MockResponse.php b/vendor/google/gax/src/Testing/MockResponse.php new file mode 100644 index 0000000..6d93ad9 --- /dev/null +++ b/vendor/google/gax/src/Testing/MockResponse.php @@ -0,0 +1,166 @@ +google.apicore.testing.MockResponse + * + * @internal + */ +class MockResponse extends \Google\Protobuf\Internal\Message +{ + /** + * Generated from protobuf field string name = 1; + */ + protected $name = ''; + /** + * Generated from protobuf field uint64 number = 2; + */ + protected $number = 0; + /** + * Generated from protobuf field repeated string resources_list = 3; + */ + private $resources_list; + /** + * Generated from protobuf field string next_page_token = 4; + */ + protected $next_page_token = ''; + /** + * Generated from protobuf field map resources_map = 5; + */ + private $resources_map; + + /** + * Constructor. + * + * @param array $data { + * Optional. Data for populating the Message object. + * + * @type string $name + * @type int|string $number + * @type string[]|\Google\Protobuf\RepeatedField $resources_list + * @type string $next_page_token + * @type array|\Google\Protobuf\Internal\MapField $resources_map + * } + */ + public function __construct($data = null) + { + \GPBMetadata\ApiCore\Testing\Mocks::initOnce(); + parent::__construct($data); + } + + /** + * Generated from protobuf field string name = 1; + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * Generated from protobuf field string name = 1; + * @param string $var + * @return $this + */ + public function setName($var) + { + GPBUtil::checkString($var, true); + $this->name = $var; + + return $this; + } + + /** + * Generated from protobuf field uint64 number = 2; + * @return int|string + */ + public function getNumber() + { + return $this->number; + } + + /** + * Generated from protobuf field uint64 number = 2; + * @param int|string $var + * @return $this + */ + public function setNumber($var) + { + GPBUtil::checkUint64($var); + $this->number = $var; + + return $this; + } + + /** + * Generated from protobuf field repeated string resources_list = 3; + * @return \Google\Protobuf\RepeatedField + */ + public function getResourcesList() + { + return $this->resources_list; + } + + /** + * Generated from protobuf field repeated string resources_list = 3; + * @param string[]|\Google\Protobuf\RepeatedField $var + * @return $this + */ + public function setResourcesList($var) + { + $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING); + $this->resources_list = $arr; + + return $this; + } + + /** + * Generated from protobuf field string next_page_token = 4; + * @return string + */ + public function getNextPageToken() + { + return $this->next_page_token; + } + + /** + * Generated from protobuf field string next_page_token = 4; + * @param string $var + * @return $this + */ + public function setNextPageToken($var) + { + GPBUtil::checkString($var, true); + $this->next_page_token = $var; + + return $this; + } + + /** + * Generated from protobuf field map resources_map = 5; + * @return \Google\Protobuf\Internal\MapField + */ + public function getResourcesMap() + { + return $this->resources_map; + } + + /** + * Generated from protobuf field map resources_map = 5; + * @param array|\Google\Protobuf\Internal\MapField $var + * @return $this + */ + public function setResourcesMap($var) + { + $arr = GPBUtil::checkMapField($var, \Google\Protobuf\Internal\GPBType::STRING, \Google\Protobuf\Internal\GPBType::STRING); + $this->resources_map = $arr; + + return $this; + } + +} diff --git a/vendor/google/gax/src/Testing/MockServerStreamingCall.php b/vendor/google/gax/src/Testing/MockServerStreamingCall.php new file mode 100644 index 0000000..d0dcead --- /dev/null +++ b/vendor/google/gax/src/Testing/MockServerStreamingCall.php @@ -0,0 +1,98 @@ +responses = $responses; + $this->deserialize = $deserialize; + if (is_null($status)) { + $status = new MockStatus(Code::OK, 'OK', []); + } elseif ($status instanceof stdClass) { + if (!property_exists($status, 'metadata')) { + $status->metadata = []; + } + } + $this->status = $status; + } + + public function responses() + { + while (count($this->responses) > 0) { + $resp = array_shift($this->responses); + $obj = $this->deserializeMessage($resp, $this->deserialize); + yield $obj; + } + } + + /** + * @return stdClass|null + * @throws ApiException + */ + public function getStatus() + { + if (count($this->responses) > 0) { + throw new ApiException( + 'Calls to getStatus() will block if all responses are not read', + Code::INTERNAL, + ApiStatus::INTERNAL + ); + } + return $this->status; + } +} diff --git a/vendor/google/gax/src/Testing/MockStatus.php b/vendor/google/gax/src/Testing/MockStatus.php new file mode 100644 index 0000000..6f29063 --- /dev/null +++ b/vendor/google/gax/src/Testing/MockStatus.php @@ -0,0 +1,53 @@ +code = $code; + $this->details = $details; + $this->metadata = $metadata; + } +} diff --git a/vendor/google/gax/src/Testing/MockStubTrait.php b/vendor/google/gax/src/Testing/MockStubTrait.php new file mode 100644 index 0000000..db69910 --- /dev/null +++ b/vendor/google/gax/src/Testing/MockStubTrait.php @@ -0,0 +1,296 @@ +deserialize = $deserialize; + } + + /** + * Overrides the _simpleRequest method in \Grpc\BaseStub + * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) + * Returns a MockUnaryCall object that will return the first item from $responses + * @param string $method The API method name to be called + * @param \Google\Protobuf\Internal\Message $argument The request object to the API method + * @param callable $deserialize A function to deserialize the response object + * @param array $metadata + * @param array $options + * @return MockUnaryCall + */ + public function _simpleRequest( + $method, + $argument, + $deserialize, + array $metadata = [], + array $options = [] + ) { + $this->receivedFuncCalls[] = new ReceivedRequest($method, $argument, $deserialize, $metadata, $options); + if (count($this->responses) < 1) { + throw new UnderflowException('ran out of responses'); + } + list($response, $status) = array_shift($this->responses); + $call = new MockUnaryCall($response, $deserialize, $status); + $this->callObjects[] = $call; + return $call; + } + + /** + * Overrides the _clientStreamRequest method in \Grpc\BaseStub + * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) + * Returns a MockClientStreamingCall object that will return the first item from $responses + * + * @param string $method The name of the method to call + * @param callable $deserialize A function that deserializes the responses + * @param array $metadata A metadata map to send to the server + * (optional) + * @param array $options An array of options (optional) + * + * @return MockClientStreamingCall The active call object + */ + public function _clientStreamRequest( + $method, + $deserialize, + array $metadata = [], + array $options = [] + ) { + $this->receivedFuncCalls[] = new ReceivedRequest($method, null, $deserialize, $metadata, $options); + if (count($this->responses) < 1) { + throw new UnderflowException('ran out of responses'); + } + list($response, $status) = array_shift($this->responses); + $call = new MockClientStreamingCall($response, $deserialize, $status); + $this->callObjects[] = $call; + return $call; + } + + /** + * Overrides the _serverStreamRequest method in \Grpc\BaseStub + * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) + * Returns a MockServerStreamingCall object that will stream items from $responses, and return + * a final status of $serverStreamingStatus. + * + * @param string $method The name of the method to call + * @param \Google\Protobuf\Internal\Message $argument The argument to the method + * @param callable $deserialize A function that deserializes the responses + * @param array $metadata A metadata map to send to the server + * (optional) + * @param array $options An array of options (optional) + * + * @return MockServerStreamingCall The active call object + */ + public function _serverStreamRequest( + $method, + $argument, + $deserialize, + array $metadata = [], + array $options = [] + ) { + + if (is_a($argument, '\Google\Protobuf\Internal\Message')) { + /** @var Message $newArgument */ + $newArgument = new $argument(); + $newArgument->mergeFromString($argument->serializeToString()); + $argument = $newArgument; + } + $this->receivedFuncCalls[] = new ReceivedRequest($method, $argument, $deserialize, $metadata, $options); + $responses = self::stripStatusFromResponses($this->responses); + $this->responses = []; + $call = new MockServerStreamingCall($responses, $deserialize, $this->serverStreamingStatus); + $this->callObjects[] = $call; + return $call; + } + + /** + * Overrides the _bidiRequest method in \Grpc\BaseStub + * (https://github.com/grpc/grpc/blob/master/src/php/lib/Grpc/BaseStub.php) + * Returns a MockBidiStreamingCall object that will stream items from $responses, and return + * a final status of $serverStreamingStatus. + * + * @param string $method The name of the method to call + * @param callable $deserialize A function that deserializes the responses + * @param array $metadata A metadata map to send to the server + * (optional) + * @param array $options An array of options (optional) + * + * @return MockBidiStreamingCall The active call object + */ + public function _bidiRequest( + $method, + $deserialize, + array $metadata = [], + array $options = [] + ) { + + $this->receivedFuncCalls[] = new ReceivedRequest($method, null, $deserialize, $metadata, $options); + $responses = self::stripStatusFromResponses($this->responses); + $this->responses = []; + $call = new MockBidiStreamingCall($responses, $deserialize, $this->serverStreamingStatus); + $this->callObjects[] = $call; + return $call; + } + + public static function stripStatusFromResponses($responses) + { + $strippedResponses = []; + foreach ($responses as $response) { + list($resp, $_) = $response; + $strippedResponses[] = $resp; + } + return $strippedResponses; + } + + /** + * Add a response object, and an optional status, to the list of responses to be returned via + * _simpleRequest. + * @param \Google\Protobuf\Internal\Message $response + * @param stdClass $status + */ + public function addResponse($response, ?stdClass $status = null) + { + if (!$this->deserialize && $response) { + $this->deserialize = [get_class($response), 'decode']; + } + + if (is_a($response, '\Google\Protobuf\Internal\Message')) { + $response = $response->serializeToString(); + } + $this->responses[] = [$response, $status]; + } + + /** + * Set the status object to be used when creating streaming calls. + * + * @param stdClass $status + */ + public function setStreamingStatus(stdClass $status) + { + $this->serverStreamingStatus = $status; + } + + /** + * Return a list of calls made to _simpleRequest, and clear $receivedFuncCalls. + * + * @return ReceivedRequest[] An array of received requests + */ + public function popReceivedCalls() + { + $receivedFuncCallsTemp = $this->receivedFuncCalls; + $this->receivedFuncCalls = []; + return $receivedFuncCallsTemp; + } + + /** + * @return int The number of calls received. + */ + public function getReceivedCallCount() + { + return count($this->receivedFuncCalls); + } + + /** + * @return mixed[] The call objects created by calls to the stub + */ + public function popCallObjects() + { + $callObjectsTemp = $this->callObjects; + $this->callObjects = []; + return $callObjectsTemp; + } + + /** + * @return bool True if $receivedFuncCalls and $response are empty. + */ + public function isExhausted() + { + return count($this->receivedFuncCalls) === 0 + && count($this->responses) === 0; + } + + /** + * @param mixed $responseObject + * @param stdClass|null $status + * @param callable $deserialize + * @return static An instance of the current class type. + */ + public static function create($responseObject, ?stdClass $status = null, ?callable $deserialize = null) + { + $stub = new static($deserialize); // @phpstan-ignore-line + $stub->addResponse($responseObject, $status); + return $stub; + } + + /** + * Creates a sequence such that the responses are returned in order. + * @param mixed[] $sequence + * @param callable $deserialize + * @param stdClass $finalStatus + * @return static An instance of the current class type. + */ + public static function createWithResponseSequence(array $sequence, ?callable $deserialize = null, ?stdClass $finalStatus = null) + { + $stub = new static($deserialize); // @phpstan-ignore-line + foreach ($sequence as $elem) { + if (count($elem) == 1) { + list($resp, $status) = [$elem, null]; + } else { + list($resp, $status) = $elem; + } + $stub->addResponse($resp, $status); + } + if ($finalStatus) { + $stub->setStreamingStatus($finalStatus); + } + return $stub; + } +} diff --git a/vendor/google/gax/src/Testing/MockTransport.php b/vendor/google/gax/src/Testing/MockTransport.php new file mode 100644 index 0000000..333cb0b --- /dev/null +++ b/vendor/google/gax/src/Testing/MockTransport.php @@ -0,0 +1,114 @@ +agentHeaderDescriptor = $agentHeaderDescriptor; + } + + public function startUnaryCall(Call $call, array $options) + { + $call = call_user_func([$this, $call->getMethod()], $call, $options); + return $promise = new Promise( + function () use ($call, &$promise) { + list($response, $status) = $call->wait(); + + if ($status->code == Code::OK) { + $promise->resolve($response); + } else { + throw ApiException::createFromStdClass($status); + } + }, + [$call, 'cancel'] + ); + } + + public function startBidiStreamingCall(Call $call, array $options) + { + $newArgs = ['/' . $call->getMethod(), $this->deserialize, $options, $options]; + $response = $this->_bidiRequest(...$newArgs); + return new BidiStream($response, $call->getDescriptor()); + } + + public function startClientStreamingCall(Call $call, array $options) + { + $newArgs = ['/' . $call->getMethod(), $this->deserialize, $options, $options]; + $response = $this->_clientStreamRequest(...$newArgs); + return new ClientStream($response, $call->getDescriptor()); + } + + public function startServerStreamingCall(Call $call, array $options) + { + $newArgs = ['/' . $call->getMethod(), $call->getMessage(), $this->deserialize, $options, $options]; + $response = $this->_serverStreamRequest(...$newArgs); + return new ServerStream($response, $call->getDescriptor()); + } + + public function __call(string $name, array $arguments) + { + $call = $arguments[0]; + $options = $arguments[1]; + $decode = $call->getDecodeType() ? [$call->getDecodeType(), 'decode'] : null; + return $this->_simpleRequest( + '/' . $call->getMethod(), + $call->getMessage(), + $decode, + isset($options['headers']) ? $options['headers'] : [], + $options + ); + } + + public function close() + { + // does nothing + } +} diff --git a/vendor/google/gax/src/Testing/MockUnaryCall.php b/vendor/google/gax/src/Testing/MockUnaryCall.php new file mode 100644 index 0000000..431b041 --- /dev/null +++ b/vendor/google/gax/src/Testing/MockUnaryCall.php @@ -0,0 +1,83 @@ +response = $response; + $this->deserialize = $deserialize; + if (is_null($status)) { + $status = new MockStatus(Code::OK); + } + $this->status = $status; + } + + /** + * Immediately return the preset response object and status. + * @return array The response object and status. + */ + public function wait() + { + return [ + $this->deserializeMessage($this->response, $this->deserialize), + $this->status, + ]; + } +} diff --git a/vendor/google/gax/src/Testing/ProtobufGPBEmptyComparator.php b/vendor/google/gax/src/Testing/ProtobufGPBEmptyComparator.php new file mode 100644 index 0000000..b6871a8 --- /dev/null +++ b/vendor/google/gax/src/Testing/ProtobufGPBEmptyComparator.php @@ -0,0 +1,61 @@ +exporter = new MessageAwareExporter(); + } + + /** + * Returns whether the comparator can compare two values. + * + * @param mixed $expected The first value to compare + * @param mixed $actual The second value to compare + * @return boolean + */ + public function accepts($expected, $actual) + { + return $expected instanceof Message && $actual instanceof Message; + } + + /** + * Asserts that two values are equal. + * + * @param Message $expected The first value to compare + * @param Message $actual The second value to compare + * @param float|int $delta The allowed numerical distance between two values to + * consider them equal + * @param bool $canonicalize If set to TRUE, arrays are sorted before + * comparison + * @param bool $ignoreCase If set to TRUE, upper- and lowercasing is + * ignored when comparing string values + * @throws ComparisonFailure Thrown when the comparison + * fails. Contains information about the + * specific errors that lead to the failure. + */ + public function assertEquals($expected, $actual, $delta = 0, $canonicalize = false, $ignoreCase = false) + { + if ($expected->serializeToString() !== $actual->serializeToString()) { + throw new ComparisonFailure( + $expected, + $actual, + $this->exporter->shortenedExport($expected), + $this->exporter->shortenedExport($actual), + false, + 'Given 2 Message objects are not the same' + ); + } + } +} diff --git a/vendor/google/gax/src/Testing/ReceivedRequest.php b/vendor/google/gax/src/Testing/ReceivedRequest.php new file mode 100644 index 0000000..97cc1d2 --- /dev/null +++ b/vendor/google/gax/src/Testing/ReceivedRequest.php @@ -0,0 +1,79 @@ +actualCall = [ + 'funcCall' => $funcCall, + 'request' => $requestObject, + 'deserialize' => $deserialize, + 'metadata' => $metadata, + 'options' => $options, + ]; + } + + public function getArray() + { + return $this->actualCall; + } + + public function getFuncCall() + { + return $this->actualCall['funcCall']; + } + + public function getRequestObject() + { + return $this->actualCall['request']; + } + + public function getMetadata() + { + return $this->actualCall['metadata']; + } + + public function getOptions() + { + return $this->actualCall['options']; + } +} diff --git a/vendor/google/gax/src/Testing/SerializationTrait.php b/vendor/google/gax/src/Testing/SerializationTrait.php new file mode 100644 index 0000000..c703f0d --- /dev/null +++ b/vendor/google/gax/src/Testing/SerializationTrait.php @@ -0,0 +1,72 @@ +$deserializeFunc($message); + } elseif (is_string($message)) { + $obj->mergeFromString($message); + } + + return $obj; + } + + // Protobuf-PHP implementation + return call_user_func($deserialize, $message); + } +} diff --git a/vendor/google/gax/src/Testing/mocks.proto b/vendor/google/gax/src/Testing/mocks.proto new file mode 100644 index 0000000..314f131 --- /dev/null +++ b/vendor/google/gax/src/Testing/mocks.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +package google.apicore.testing; + +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/wrappers.proto"; + +option php_namespace = "Google\\ApiCore\\Testing"; +option php_metadata_namespace = "GPBMetadata\\ApiCore\\Testing"; + +message MockRequest { + string page_token = 1; + uint64 page_size = 2; +} + +message MockResponse { + string name = 1; + uint64 number = 2; + repeated string resources_list = 3; + string next_page_token = 4; + map resources_map = 5; +} + +message MockRequestBody { + string name = 1; + uint64 number = 2; + repeated string repeated_field = 3; + MockRequestBody nested_message = 4; + google.protobuf.BytesValue bytes_value = 5; + google.protobuf.Duration duration_value = 6; + google.protobuf.FieldMask field_mask = 7; + google.protobuf.Int64Value int64_value = 8; + google.protobuf.ListValue list_value = 9; + google.protobuf.StringValue string_value = 10; + google.protobuf.Struct struct_value = 11; + google.protobuf.Timestamp timestamp_value = 12; + google.protobuf.Value value_value = 13; + oneof oneof_field { + string field_1 = 14; + string field_2 = 15; + string field_3 = 16; + } +} diff --git a/vendor/google/gax/src/Transport/Grpc/ForwardingCall.php b/vendor/google/gax/src/Transport/Grpc/ForwardingCall.php new file mode 100644 index 0000000..2ec4f73 --- /dev/null +++ b/vendor/google/gax/src/Transport/Grpc/ForwardingCall.php @@ -0,0 +1,90 @@ +innerCall = $innerCall; + } + + /** + * @return mixed The metadata sent by the server + */ + public function getMetadata() + { + return $this->innerCall->getMetadata(); + } + + /** + * @return mixed The trailing metadata sent by the server + */ + public function getTrailingMetadata() + { + return $this->innerCall->getTrailingMetadata(); + } + + /** + * @return string The URI of the endpoint + */ + public function getPeer() + { + return $this->innerCall->getPeer(); + } + + /** + * Cancels the call. + */ + public function cancel() + { + $this->innerCall->cancel(); + } +} diff --git a/vendor/google/gax/src/Transport/Grpc/ForwardingServerStreamingCall.php b/vendor/google/gax/src/Transport/Grpc/ForwardingServerStreamingCall.php new file mode 100644 index 0000000..10e4ee7 --- /dev/null +++ b/vendor/google/gax/src/Transport/Grpc/ForwardingServerStreamingCall.php @@ -0,0 +1,65 @@ +innerCall->responses(); + } + + /** + * Wait for the server to send the status, and return it. + * + * @return \stdClass The status object, with integer $code, string + * $details, and array $metadata members + */ + public function getStatus() + { + return $this->innerCall->getStatus(); + } +} diff --git a/vendor/google/gax/src/Transport/Grpc/ForwardingUnaryCall.php b/vendor/google/gax/src/Transport/Grpc/ForwardingUnaryCall.php new file mode 100644 index 0000000..81b0064 --- /dev/null +++ b/vendor/google/gax/src/Transport/Grpc/ForwardingUnaryCall.php @@ -0,0 +1,56 @@ +innerCall->wait(); + } +} diff --git a/vendor/google/gax/src/Transport/Grpc/ServerStreamingCallWrapper.php b/vendor/google/gax/src/Transport/Grpc/ServerStreamingCallWrapper.php new file mode 100644 index 0000000..bdf49d6 --- /dev/null +++ b/vendor/google/gax/src/Transport/Grpc/ServerStreamingCallWrapper.php @@ -0,0 +1,123 @@ +stream = $stream; + } + + /** + * {@inheritdoc} + */ + public function start($data, array $metadata = [], array $callOptions = []) + { + $this->stream->start($data, $metadata, $callOptions); + } + + /** + * {@inheritdoc} + */ + public function responses() + { + foreach ($this->stream->responses() as $response) { + yield $response; + } + } + + /** + * {@inheritdoc} + */ + public function getStatus() + { + return $this->stream->getStatus(); + } + + /** + * {@inheritdoc} + */ + public function getMetadata() + { + return $this->stream->getMetadata(); + } + + /** + * {@inheritdoc} + */ + public function getTrailingMetadata() + { + return $this->stream->getTrailingMetadata(); + } + + /** + * {@inheritdoc} + */ + public function getPeer() + { + return $this->stream->getPeer(); + } + + /** + * {@inheritdoc} + */ + public function cancel() + { + $this->stream->cancel(); + } + + /** + * {@inheritdoc} + */ + public function setCallCredentials($call_credentials) + { + $this->stream->setCallCredentials($call_credentials); + } +} diff --git a/vendor/google/gax/src/Transport/Grpc/UnaryInterceptorInterface.php b/vendor/google/gax/src/Transport/Grpc/UnaryInterceptorInterface.php new file mode 100644 index 0000000..fa510ea --- /dev/null +++ b/vendor/google/gax/src/Transport/Grpc/UnaryInterceptorInterface.php @@ -0,0 +1,61 @@ +baseUri = $baseUri; + $this->httpHandler = $httpHandler; + $this->transportName = 'grpc-fallback'; + } + + /** + * Builds a GrpcFallbackTransport. + * + * @param string $apiEndpoint + * The address of the API remote host, for example "example.googleapis.com". + * @param array $config { + * Config options used to construct the grpc-fallback transport. + * + * @type callable $httpHandler A handler used to deliver PSR-7 requests. + * } + * @return GrpcFallbackTransport + * @throws ValidationException + */ + public static function build(string $apiEndpoint, array $config = []) + { + $config += [ + 'httpHandler' => null, + 'clientCertSource' => null, + 'logger' => null, + ]; + list($baseUri, $port) = self::normalizeServiceAddress($apiEndpoint); + $httpHandler = $config['httpHandler'] ?: self::buildHttpHandlerAsync(logger: $config['logger']); + $transport = new GrpcFallbackTransport("$baseUri:$port", $httpHandler); + if ($config['clientCertSource']) { + $transport->configureMtlsChannel($config['clientCertSource']); + } + return $transport; + } + + /** + * {@inheritdoc} + */ + public function startUnaryCall(Call $call, array $options) + { + $httpHandler = $this->httpHandler; + + $options['requestId'] = crc32((string) spl_object_id($call) . getmypid()); + + return $httpHandler( + $this->buildRequest($call, $options), + $this->getCallOptions($options) + )->then( + function (ResponseInterface $response) use ($options) { + if (isset($options['metadataCallback'])) { + $metadataCallback = $options['metadataCallback']; + $metadataCallback($response->getHeaders()); + } + return $response; + } + )->then( + function (ResponseInterface $response) use ($call) { + return $this->unpackResponse($call, $response); + }, + function (\Exception $ex) { + throw $this->transformException($ex); + } + ); + } + + /** + * @param Call $call + * @param array $options + * @return RequestInterface + */ + private function buildRequest(Call $call, array $options) + { + // Build common headers and set the content type to 'application/x-protobuf' + $headers = ['Content-Type' => 'application/x-protobuf'] + self::buildCommonHeaders($options); + + // It is necessary to supply 'grpc-web' in the 'x-goog-api-client' header + // when using the grpc-fallback protocol. + $headers += ['x-goog-api-client' => []]; + $headers['x-goog-api-client'][] = 'grpc-web'; + + // Uri format: https:///$rpc/ + $uri = "https://{$this->baseUri}/\$rpc/{$call->getMethod()}"; + + return new Request( + 'POST', + $uri, + $headers, + $call->getMessage()->serializeToString() + ); + } + + /** + * @param Call $call + * @param ResponseInterface $response + * @return Message + */ + private function unpackResponse(Call $call, ResponseInterface $response) + { + $decodeType = $call->getDecodeType(); + /** @var Message $responseMessage */ + $responseMessage = new $decodeType(); + $responseMessage->mergeFromString((string) $response->getBody()); + return $responseMessage; + } + + /** + * @param array $options + * @return array + */ + private function getCallOptions(array $options) + { + $callOptions = $options['transportOptions']['grpcFallbackOptions'] ?? []; + + if (isset($options['timeoutMillis'])) { + $callOptions['timeout'] = $options['timeoutMillis'] / 1000; + } + + if (isset($options['retryAttempt'])) { + $callOptions['retryAttempt'] = $options['retryAttempt']; + } + + if (isset($options['requestId'])) { + $callOptions['requestId'] = $options['requestId']; + } + + if ($this->clientCertSource) { + list($cert, $key) = self::loadClientCertSource($this->clientCertSource); + $callOptions['cert'] = $cert; + $callOptions['key'] = $key; + } + + return $callOptions; + } + + /** + * @param \Exception $ex + * @return \Exception + */ + private function transformException(\Exception $ex) + { + if ($ex instanceof RequestException && $ex->hasResponse()) { + $res = $ex->getResponse(); + $body = (string) $res->getBody(); + $status = new Status(); + try { + $status->mergeFromString($body); + return ApiException::createFromRpcStatus($status); + } catch (\Exception $parseException) { + // We were unable to parse the response body into a $status object. Instead, + // create an ApiException using the unparsed $body as message. + $code = ApiStatus::rpcCodeFromHttpStatusCode($res->getStatusCode()); + return ApiException::createFromApiResponse($body, $code, null, $parseException); + } + } else { + return $ex; + } + } +} diff --git a/vendor/google/gax/src/Transport/GrpcTransport.php b/vendor/google/gax/src/Transport/GrpcTransport.php new file mode 100644 index 0000000..5fd03a6 --- /dev/null +++ b/vendor/google/gax/src/Transport/GrpcTransport.php @@ -0,0 +1,366 @@ +logger = $logger; + } + + /** + * Builds a GrpcTransport. + * + * @param string $apiEndpoint + * The address of the API remote host, for example "example.googleapis.com. May also + * include the port, for example "example.googleapis.com:443" + * @param array $config { + * Config options used to construct the gRPC transport. + * + * @type array $stubOpts Options used to construct the gRPC stub (see + * {@link https://grpc.github.io/grpc/core/group__grpc__arg__keys.html}). + * @type Channel $channel Grpc channel to be used. + * @type Interceptor[]|UnaryInterceptorInterface[] $interceptors *EXPERIMENTAL* + * Interceptors used to intercept RPC invocations before a call starts. + * Please note that implementations of + * {@see \Google\ApiCore\Transport\Grpc\UnaryInterceptorInterface} are + * considered deprecated and support will be removed in a future + * release. To prepare for this, please take the time to convert + * `UnaryInterceptorInterface` implementations over to a class which + * extends {@see Grpc\Interceptor}. + * @type callable $clientCertSource A callable which returns the client cert as a string. + * } + * @return GrpcTransport + * @throws ValidationException + */ + public static function build(string $apiEndpoint, array $config = []) + { + self::validateGrpcSupport(); + $config += [ + 'stubOpts' => [], + 'channel' => null, + 'interceptors' => [], + 'clientCertSource' => null, + 'logger' => null, + ]; + list($addr, $port) = self::normalizeServiceAddress($apiEndpoint); + $host = "$addr:$port"; + $stubOpts = $config['stubOpts']; + // Set the required 'credentials' key in stubOpts if it is not already set. Use + // array_key_exists because null is a valid value. + if (!array_key_exists('credentials', $stubOpts)) { + if (isset($config['clientCertSource'])) { + list($cert, $key) = self::loadClientCertSource($config['clientCertSource']); + $stubOpts['credentials'] = ChannelCredentials::createSsl(null, $key, $cert); + } else { + $stubOpts['credentials'] = ChannelCredentials::createSsl(); + } + } + $channel = $config['channel']; + if (!is_null($channel) && !($channel instanceof Channel)) { + throw new ValidationException( + "Channel argument to GrpcTransport must be of type \Grpc\Channel, " . + 'instead got: ' . print_r($channel, true) + ); + } + try { + if ($config['logger'] === false) { + $config['logger'] = null; + } + return new GrpcTransport($host, $stubOpts, $channel, $config['interceptors'], $config['logger']); + } catch (Exception $ex) { + throw new ValidationException( + 'Failed to build GrpcTransport: ' . $ex->getMessage(), + $ex->getCode(), + $ex + ); + } + } + + /** + * {@inheritdoc} + */ + public function startBidiStreamingCall(Call $call, array $options) + { + $this->verifyUniverseDomain($options); + + $bidiStream = new BidiStream( + $this->_bidiRequest( + '/' . $call->getMethod(), + [$call->getDecodeType(), 'decode'], + isset($options['headers']) ? $options['headers'] : [], + $this->getCallOptions($options) + ), + $call->getDescriptor(), + $this->logger + ); + + if ($this->logger) { + $requestEvent = new RpcLogEvent(); + + $requestEvent->headers = $options['headers'] ?? []; + $requestEvent->retryAttempt = $options['retryAttempt'] ?? null; + $requestEvent->serviceName = $options['serviceName'] ?? null; + $requestEvent->rpcName = $call->getMethod(); + $requestEvent->processId = (int) getmypid(); + $requestEvent->requestId = crc32((string) spl_object_id($bidiStream) . getmypid()); + + $this->logRequest($requestEvent); + } + + return $bidiStream; + } + + /** + * {@inheritdoc} + */ + public function startClientStreamingCall(Call $call, array $options) + { + + $this->verifyUniverseDomain($options); + + return new ClientStream( + $this->_clientStreamRequest( + '/' . $call->getMethod(), + [$call->getDecodeType(), 'decode'], + isset($options['headers']) ? $options['headers'] : [], + $this->getCallOptions($options) + ), + $call->getDescriptor(), + $this->logger + ); + } + + /** + * {@inheritdoc} + */ + public function startServerStreamingCall(Call $call, array $options) + { + $this->verifyUniverseDomain($options); + + $message = $call->getMessage(); + + if (!$message) { + throw new \InvalidArgumentException('A message is required for ServerStreaming calls.'); + } + + // This simultaenously creates and starts a \Grpc\ServerStreamingCall. + $stream = $this->_serverStreamRequest( + '/' . $call->getMethod(), + $message, + [$call->getDecodeType(), 'decode'], + isset($options['headers']) ? $options['headers'] : [], + $this->getCallOptions($options) + ); + + $serverStream = new ServerStream( + new ServerStreamingCallWrapper($stream), + $call->getDescriptor(), + $this->logger + ); + + if ($this->logger) { + $requestEvent = new RpcLogEvent(); + + $requestEvent->headers = $options['headers']; + $requestEvent->payload = $call->getMessage()->serializeToJsonString(); + $requestEvent->retryAttempt = $options['retryAttempt'] ?? null; + $requestEvent->serviceName = $options['serviceName'] ?? null; + $requestEvent->rpcName = $call->getMethod(); + $requestEvent->processId = (int) getmypid(); + $requestEvent->requestId = crc32((string) spl_object_id($serverStream) . getmypid()); + + $this->logRequest($requestEvent); + } + + return $serverStream; + } + + /** + * {@inheritdoc} + */ + public function startUnaryCall(Call $call, array $options) + { + $this->verifyUniverseDomain($options); + $headers = $options['headers'] ?? []; + $requestEvent = null; + + $unaryCall = $this->_simpleRequest( + '/' . $call->getMethod(), + $call->getMessage(), + [$call->getDecodeType(), 'decode'], + isset($options['headers']) ? $options['headers'] : [], + $this->getCallOptions($options) + ); + + if ($this->logger) { + $requestEvent = new RpcLogEvent(); + + $requestEvent->headers = $headers; + $requestEvent->payload = $call->getMessage()->serializeToJsonString(); + $requestEvent->retryAttempt = $options['retryAttempt'] ?? null; + $requestEvent->serviceName = $options['serviceName'] ?? null; + $requestEvent->rpcName = $call->getMethod(); + $requestEvent->processId = (int) getmypid(); + $requestEvent->requestId = crc32((string) spl_object_id($call) . getmypid()); + + $this->logRequest($requestEvent); + } + + /** @var Promise $promise */ + $promise = new Promise( + function () use ($unaryCall, $options, &$promise, $requestEvent) { + list($response, $status) = $unaryCall->wait(); + + if ($this->logger) { + $responseEvent = new RpcLogEvent($requestEvent->milliseconds); + + $responseEvent->headers = $status->metadata; + $responseEvent->payload = ($response) ? $response->serializeToJsonString() : null; + $responseEvent->status = $status->code; + $responseEvent->processId = $requestEvent->processId; + $responseEvent->requestId = $requestEvent->requestId; + + $this->logResponse($responseEvent); + } + + if ($status->code == Code::OK) { + if (isset($options['metadataCallback'])) { + $metadataCallback = $options['metadataCallback']; + $metadataCallback($unaryCall->getMetadata()); + } + $promise->resolve($response); + } else { + throw ApiException::createFromStdClass($status); + } + }, + [$unaryCall, 'cancel'] + ); + + return $promise; + } + + private function verifyUniverseDomain(array $options) + { + if (isset($options['credentialsWrapper'])) { + $options['credentialsWrapper']->checkUniverseDomain(); + } + } + + private function getCallOptions(array $options) + { + $callOptions = $options['transportOptions']['grpcOptions'] ?? []; + + if (isset($options['credentialsWrapper'])) { + $audience = $options['audience'] ?? null; + $credentialsWrapper = $options['credentialsWrapper']; + $callOptions['call_credentials_callback'] = $credentialsWrapper + ->getAuthorizationHeaderCallback($audience); + } + + if (isset($options['timeoutMillis'])) { + $callOptions['timeout'] = $options['timeoutMillis'] * 1000; + } + + return $callOptions; + } + + private static function loadClientCertSource(callable $clientCertSource) + { + return call_user_func($clientCertSource); + } +} diff --git a/vendor/google/gax/src/Transport/HttpUnaryTransportTrait.php b/vendor/google/gax/src/Transport/HttpUnaryTransportTrait.php new file mode 100644 index 0000000..38c4ca1 --- /dev/null +++ b/vendor/google/gax/src/Transport/HttpUnaryTransportTrait.php @@ -0,0 +1,171 @@ +throwUnsupportedException(); + } + + /** + * {@inheritdoc} + * @return never + * @throws \BadMethodCallException + */ + public function startServerStreamingCall(Call $call, array $options) + { + $this->throwUnsupportedException(); + } + + /** + * {@inheritdoc} + * @return never + * @throws \BadMethodCallException + */ + public function startBidiStreamingCall(Call $call, array $options) + { + $this->throwUnsupportedException(); + } + + /** + * {@inheritdoc} + */ + public function close() + { + // Nothing to do. + } + + /** + * @param array $options + * @return array + */ + private static function buildCommonHeaders(array $options) + { + $headers = $options['headers'] ?? []; + + if (!is_array($headers)) { + throw new \InvalidArgumentException( + 'The "headers" option must be an array' + ); + } + + // If not already set, add an auth header to the request + if (!isset($headers['Authorization']) && isset($options['credentialsWrapper'])) { + $credentialsWrapper = $options['credentialsWrapper']; + $audience = $options['audience'] ?? null; + $callback = $credentialsWrapper + ->getAuthorizationHeaderCallback($audience); + // Prevent unexpected behavior, as the authorization header callback + // uses lowercase "authorization" + unset($headers['authorization']); + // Mitigate scenario where InsecureCredentialsWrapper returns null. + $authHeaders = empty($callback) ? [] : $callback(); + if (!is_array($authHeaders)) { + throw new \UnexpectedValueException( + 'Expected array response from authorization header callback' + ); + } + $headers += $authHeaders; + } + + return $headers; + } + + /** + * @return callable + * @throws ValidationException + */ + private static function buildHttpHandlerAsync(null|false|LoggerInterface $logger = null) + { + try { + return [HttpHandlerFactory::build(logger: $logger), 'async']; + } catch (Exception $ex) { + throw new ValidationException('Failed to build HttpHandler', $ex->getCode(), $ex); + } + } + + /** + * Set the path to a client certificate. + * + * @param callable $clientCertSource + */ + private function configureMtlsChannel(callable $clientCertSource) + { + $this->clientCertSource = $clientCertSource; + } + + /** + * @return never + * @throws \BadMethodCallException + */ + private function throwUnsupportedException() + { + throw new \BadMethodCallException( + "Streaming calls are not supported while using the {$this->transportName} transport." + ); + } + + private static function loadClientCertSource(callable $clientCertSource) + { + $certFile = tempnam(sys_get_temp_dir(), 'cert'); + $keyFile = tempnam(sys_get_temp_dir(), 'key'); + list($cert, $key) = call_user_func($clientCertSource); + file_put_contents($certFile, $cert); + file_put_contents($keyFile, $key); + + // the key and the cert are returned in one temporary file + return [$certFile, $keyFile]; + } +} diff --git a/vendor/google/gax/src/Transport/Rest/JsonStreamDecoder.php b/vendor/google/gax/src/Transport/Rest/JsonStreamDecoder.php new file mode 100644 index 0000000..c01f211 --- /dev/null +++ b/vendor/google/gax/src/Transport/Rest/JsonStreamDecoder.php @@ -0,0 +1,238 @@ + $options { + * An array of optional arguments. + * + * @type bool $ignoreUnknown + * Toggles whether or not to throw an exception when an unknown field + * is encountered in a response message. The default is true. + * @type int $readChunkSizeBytes + * The upper size limit in bytes that can be read at a time from the + * response stream. The default is 1 KB. + * } + * + * @experimental + */ + public function __construct(StreamInterface $stream, string $decodeType, array $options = []) + { + $this->stream = $stream; + $this->decodeType = $decodeType; + + if (isset($options['ignoreUnknown'])) { + $this->ignoreUnknown = $options['ignoreUnknown']; + } + if (isset($options['readChunkSize'])) { + $this->readChunkSize = $options['readChunkSizeBytes']; + } + } + + /** + * Begins decoding the configured response stream. It is a generator which + * yields messages of the given decode type from the stream until the stream + * completes. Throws an Exception if the stream is closed before the closing + * byte is read or if it encounters an error while decoding a message. + * + * @throws RuntimeException + * @return \Generator + */ + public function decode() + { + try { + foreach ($this->_decode() as $response) { + yield $response; + } + } catch (RuntimeException $re) { + $msg = $re->getMessage(); + $streamClosedException = + strpos($msg, 'Stream is detached') !== false || + strpos($msg, 'Unexpected stream close') !== false; + + // Only throw the exception if close() was not called and it was not + // a closing-related exception. + if (!$this->closeCalled || !$streamClosedException) { + throw $re; + } + } + } + + /** + * @return \Generator + */ + private function _decode() + { + $decodeType = $this->decodeType; + $str = false; + $prev = $chunk = ''; + $start = $end = $cursor = $level = 0; + while ($chunk !== '' || !$this->stream->eof()) { + // Read up to $readChunkSize bytes from the stream. + $chunk .= $this->stream->read($this->readChunkSize); + + // If the response stream has been closed and the only byte + // remaining is the closing array bracket, we are done. + if ($this->stream->eof() && $chunk === ']') { + $level--; + break; + } + + // Parse the freshly read data available in $chunk. + $chunkLength = strlen($chunk); + while ($cursor < $chunkLength) { + // Access the next byte for processing. + $b = $chunk[$cursor]; + + // Track open/close double quotes of a key or value. Do not + // toggle flag with the pervious byte was an escape character. + if ($b === '"' && $prev !== self::ESCAPE_CHAR) { + $str = !$str; + } + + // Skip over new lines that break up items. + if ($b === "\n" && $level === 1) { + $start++; + } + + // Ignore commas separating messages in the stream array. + if ($b === ',' && $level === 1) { + $start++; + } + // Track the opening of a new array or object if not in a string + // value. + if (($b === '{' || $b === '[') && !$str) { + $level++; + // Opening of the array/root object. + // Do not include it in the messageBuffer. + if ($level === 1) { + $start++; + } + } + // Track the closing of an object if not in a string value. + if ($b === '}' && !$str) { + $level--; + if ($level === 1) { + $end = $cursor + 1; + } + } + // Track the closing of an array if not in a string value. + if ($b === ']' && !$str) { + $level--; + // If we are seeing a closing square bracket at the + // response message level, e.g. {"foo], there is a problem. + if ($level === 1) { + throw new \RuntimeException('Received closing byte mid-message'); + } + } + + // A message-closing byte was just buffered. Decode the + // message with the decode type, clearing the messageBuffer, + // and yield it. + // + // TODO(noahdietz): Support google.protobuf.*Value messages that + // are encoded as primitives and separated by commas. + if ($end !== 0) { + $length = $end - $start; + /** @var \Google\Protobuf\Internal\Message $return */ + $return = new $decodeType(); + $return->mergeFromJsonString( + substr($chunk, $start, $length), + $this->ignoreUnknown + ); + yield $return; + + // Dump the part of the chunk used for parsing the message + // and use the remaining for the next message. + $remaining = $chunkLength - $length; + $chunk = substr($chunk, $end, $remaining); + + // Reset all indices and exit chunk processing. + $start = 0; + $end = 0; + $cursor = 0; + break; + } + + $cursor++; + + // An escaped back slash should not escape the following character. + if ($b === self::ESCAPE_CHAR && $prev === self::ESCAPE_CHAR) { + $b = ''; + } + $prev = $b; + } + // If after attempting to process the chunk, no progress was made and the + // stream is closed, we must break as the stream has closed prematurely. + if ($cursor === $chunkLength && $this->stream->eof()) { + break; + } + } + if ($level > 0) { + throw new \RuntimeException('Unexpected stream close before receiving the closing byte'); + } + } + + /** + * Closes the underlying stream. If the stream is actively being decoded, an + * exception will not be thrown due to the interruption. + * + * @return void + */ + public function close() + { + $this->closeCalled = true; + $this->stream->close(); + } +} diff --git a/vendor/google/gax/src/Transport/Rest/RestServerStreamingCall.php b/vendor/google/gax/src/Transport/Rest/RestServerStreamingCall.php new file mode 100644 index 0000000..35d7961 --- /dev/null +++ b/vendor/google/gax/src/Transport/Rest/RestServerStreamingCall.php @@ -0,0 +1,197 @@ + */ + private array $decoderOptions; + + private RequestInterface $originalRequest; + private ?JsonStreamDecoder $decoder; + private string $decodeType; + private ?ResponseInterface $response; + private stdClass $status; + + /** + * @param callable $httpHandler + * @param string $decodeType + * @param array $decoderOptions + */ + public function __construct(callable $httpHandler, string $decodeType, array $decoderOptions) + { + $this->httpHandler = $httpHandler; + $this->decodeType = $decodeType; + $this->decoderOptions = $decoderOptions; + } + + /** + * {@inheritdoc} + */ + public function start($request, array $headers = [], array $callOptions = []) + { + $this->originalRequest = $this->appendHeaders($request, $headers); + + try { + $handler = $this->httpHandler; + $response = $handler( + $this->originalRequest, + $callOptions + )->wait(); + } catch (\Exception $ex) { + if ($ex instanceof RequestException && $ex->hasResponse()) { + $ex = ApiException::createFromRequestException($ex, /* isStream */ true); + } + throw $ex; + } + + // Create an OK Status for a successful request just so that it + // has a return value. + $this->status = new stdClass(); + $this->status->code = Code::OK; + $this->status->message = ApiStatus::OK; + $this->status->details = []; + + $this->response = $response; + } + + /** + * @param RequestInterface $request + * @param array $headers + * @return RequestInterface + */ + private function appendHeaders(RequestInterface $request, array $headers) + { + foreach ($headers as $key => $value) { + $request = $request->hasHeader($key) ? + $request->withAddedHeader($key, $value) : + $request->withHeader($key, $value); + } + + return $request; + } + + /** + * {@inheritdoc} + */ + public function responses() + { + if (is_null($this->response)) { + throw new \Exception('Stream has not been started.'); + } + + // Decode the stream and yield responses as they are read. + $this->decoder = new JsonStreamDecoder( + $this->response->getBody(), + $this->decodeType, + $this->decoderOptions + ); + + foreach ($this->decoder->decode() as $message) { + yield $message; + } + } + + /** + * Return the status of the server stream. If the call has not been started + * this will be null. + * + * @return stdClass The status, with integer $code, string + * $details, and array $metadata members + */ + public function getStatus() + { + return $this->status; + } + + /** + * {@inheritdoc} + */ + public function getMetadata() + { + return is_null($this->response) ? null : $this->response->getHeaders(); + } + + /** + * The Rest transport does not support trailing metadata. This is a + * passthrough to getMetadata(). + */ + public function getTrailingMetadata() + { + return $this->getMetadata(); + } + + /** + * {@inheritdoc} + */ + public function getPeer() + { + return $this->originalRequest->getUri(); + } + + /** + * {@inheritdoc} + */ + public function cancel() + { + if (!is_null($this->decoder)) { + $this->decoder->close(); + } + } + + /** + * For the REST transport this is a no-op. + * {@inheritdoc} + */ + public function setCallCredentials($call_credentials) + { + // Do nothing. + } +} diff --git a/vendor/google/gax/src/Transport/RestTransport.php b/vendor/google/gax/src/Transport/RestTransport.php new file mode 100644 index 0000000..296937f --- /dev/null +++ b/vendor/google/gax/src/Transport/RestTransport.php @@ -0,0 +1,283 @@ +requestBuilder = $requestBuilder; + $this->httpHandler = $httpHandler; + $this->transportName = 'REST'; + } + + /** + * Builds a RestTransport. + * + * @param string $apiEndpoint + * The address of the API remote host, for example "example.googleapis.com". + * @param string $restConfigPath + * Path to rest config file. + * @param array $config { + * Config options used to construct the gRPC transport. + * + * @type callable $httpHandler A handler used to deliver PSR-7 requests. + * @type callable $clientCertSource A callable which returns the client cert as a string. + * @type bool $hasEmulator True if the emulator is enabled. + * } + * @return RestTransport + * @throws ValidationException + */ + public static function build(string $apiEndpoint, string $restConfigPath, array $config = []) + { + $config += [ + 'httpHandler' => null, + 'clientCertSource' => null, + 'hasEmulator' => false, + 'logger' => null, + ]; + list($baseUri, $port) = self::normalizeServiceAddress($apiEndpoint); + $requestBuilder = $config['hasEmulator'] + ? new InsecureRequestBuilder("$baseUri:$port", $restConfigPath) + : new RequestBuilder("$baseUri:$port", $restConfigPath); + $httpHandler = $config['httpHandler'] ?: self::buildHttpHandlerAsync($config['logger']); + $transport = new RestTransport($requestBuilder, $httpHandler); + if ($config['clientCertSource']) { + $transport->configureMtlsChannel($config['clientCertSource']); + } + return $transport; + } + + /** + * {@inheritdoc} + */ + public function startUnaryCall(Call $call, array $options) + { + $headers = self::buildCommonHeaders($options); + + // Add the $call object ID for logging + $options['requestId'] = crc32((string) spl_object_id($call) . getmypid()); + + // call the HTTP handler + $httpHandler = $this->httpHandler; + return $httpHandler( + $this->requestBuilder->build( + $call->getMethod(), + $call->getMessage(), + $headers + ), + $this->getCallOptions($options) + )->then( + function (ResponseInterface $response) use ($call, $options) { + $decodeType = $call->getDecodeType(); + /** @var Message $return */ + $return = new $decodeType(); + $body = (string) $response->getBody(); + + // In some rare cases LRO response metadata may not be loaded + // in the descriptor pool, triggering an exception. The catch + // statement handles this case and attempts to add the LRO + // metadata type to the pool by directly instantiating the + // metadata class. + try { + $return->mergeFromJsonString( + $body, + true + ); + } catch (\Exception $ex) { + if (!isset($options['metadataReturnType'])) { + throw $ex; + } + + if (strpos($ex->getMessage(), 'Error occurred during parsing:') !== 0) { + throw $ex; + } + + new $options['metadataReturnType'](); + $return->mergeFromJsonString( + $body, + true + ); + } + + if (isset($options['metadataCallback'])) { + $metadataCallback = $options['metadataCallback']; + $metadataCallback($response->getHeaders()); + } + + return $return; + }, + function (\Throwable $ex) { + if ($ex instanceof RequestException && $ex->hasResponse()) { + throw ApiException::createFromRequestException($ex); + } + + throw $ex; + } + ); + } + + /** + * {@inheritdoc} + * @throws \BadMethodCallException for forwards compatibility with older GAPIC clients + */ + public function startServerStreamingCall(Call $call, array $options) + { + $message = $call->getMessage(); + if (!$message) { + throw new \InvalidArgumentException('A message is required for ServerStreaming calls.'); + } + + // Maintain forwards compatibility with older GAPIC clients not configured for REST server streaming + // @see https://github.com/googleapis/gax-php/issues/370 + if (!$this->requestBuilder->pathExists($call->getMethod())) { + $this->unsupportedServerStreamingCall($call, $options); + } + + $headers = self::buildCommonHeaders($options); + $callOptions = $this->getCallOptions($options); + $request = $this->requestBuilder->build( + $call->getMethod(), + $call->getMessage() + // Exclude headers here because they will be added in _serverStreamRequest(). + ); + + $decoderOptions = []; + if (isset($options['decoderOptions'])) { + $decoderOptions = $options['decoderOptions']; + } + + return new ServerStream( + $this->_serverStreamRequest( + $this->httpHandler, + $request, + $headers, + $call->getDecodeType(), + $callOptions, + $decoderOptions + ), + $call->getDescriptor() + ); + } + + /** + * Creates and starts a RestServerStreamingCall. + * + * @param callable $httpHandler The HTTP Handler to invoke the request with. + * @param RequestInterface $request The request to invoke. + * @param array $headers The headers to include in the request. + * @param string $decodeType The response stream message type to decode. + * @param array $callOptions The call options to use when making the call. + * @param array $decoderOptions The options to use for the JsonStreamDecoder. + * + * @return RestServerStreamingCall + */ + private function _serverStreamRequest( + $httpHandler, + $request, + $headers, + $decodeType, + $callOptions, + $decoderOptions = [] + ) { + $call = new RestServerStreamingCall( + $httpHandler, + $decodeType, + $decoderOptions + ); + $call->start($request, $headers, $callOptions); + + return $call; + } + + /** + * @param array $options + * + * @return array + */ + private function getCallOptions(array $options) + { + $callOptions = $options['transportOptions']['restOptions'] ?? []; + + if (isset($options['timeoutMillis'])) { + $callOptions['timeout'] = $options['timeoutMillis'] / 1000; + } + + if ($this->clientCertSource) { + list($cert, $key) = self::loadClientCertSource($this->clientCertSource); + $callOptions['cert'] = $cert; + $callOptions['key'] = $key; + } + + if (isset($options['retryAttempt'])) { + $callOptions['retryAttempt'] = $options['retryAttempt']; + } + + if (isset($options['requestId'])) { + $callOptions['requestId'] = $options['requestId']; + } + + return $callOptions; + } +} diff --git a/vendor/google/gax/src/Transport/TransportInterface.php b/vendor/google/gax/src/Transport/TransportInterface.php new file mode 100644 index 0000000..682a430 --- /dev/null +++ b/vendor/google/gax/src/Transport/TransportInterface.php @@ -0,0 +1,91 @@ + $options + * + * @return BidiStream + */ + public function startBidiStreamingCall(Call $call, array $options); + + /** + * Starts a client streaming call. + * + * @param Call $call + * @param array $options + * + * @return ClientStream + */ + public function startClientStreamingCall(Call $call, array $options); + + /** + * Starts a server streaming call. + * + * @param Call $call + * @param array $options + * + * @return ServerStream + */ + public function startServerStreamingCall(Call $call, array $options); + + /** + * Returns a promise used to execute network requests. + * + * @param Call $call + * @param array $options + * + * @return PromiseInterface + * @throws ValidationException + */ + public function startUnaryCall(Call $call, array $options); + + /** + * Closes the connection, if one exists. + * + * @return void + */ + public function close(); +} diff --git a/vendor/google/gax/src/UriTrait.php b/vendor/google/gax/src/UriTrait.php new file mode 100644 index 0000000..d3fc6aa --- /dev/null +++ b/vendor/google/gax/src/UriTrait.php @@ -0,0 +1,69 @@ + &$v) { + if (is_bool($v)) { + $v = $v ? 'true' : 'false'; + } + } + + return Utils::uriFor($uri) + ->withQuery( + Query::build($query) + ); + } +} diff --git a/vendor/google/gax/src/ValidationException.php b/vendor/google/gax/src/ValidationException.php new file mode 100644 index 0000000..27a66a8 --- /dev/null +++ b/vendor/google/gax/src/ValidationException.php @@ -0,0 +1,41 @@ +setRules([ + '@PSR2' => true, + 'concat_space' => ['spacing' => 'one'], + 'no_unused_imports' => true, + 'method_argument_space' => false, + ]) + ->setFinder( + PhpCsFixer\Finder::create() + ->notPath('firestore') + ->in(__DIR__) + ) +; + diff --git a/vendor/google/grpc-gcp/LICENSE b/vendor/google/grpc-gcp/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/vendor/google/grpc-gcp/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/google/grpc-gcp/README.md b/vendor/google/grpc-gcp/README.md new file mode 100644 index 0000000..4d49b4e --- /dev/null +++ b/vendor/google/grpc-gcp/README.md @@ -0,0 +1,14 @@ +# gRPC for GCP extensions + +Copyright 2018 +[The gRPC Authors](https://github.com/grpc/grpc/blob/master/AUTHORS) + +## About This Repository + +This repo is created to support GCP specific extensions for gRPC. To use the extension features, please refer to [src](src). + +This repo also contains supporting infrastructures such as end2end tests and benchmarks for accessing cloud APIs with gRPC client libraries. + +## License + +Apache 2.0 - See [LICENSE](LICENSE) for more information. diff --git a/vendor/google/grpc-gcp/cloudprober/bins/opt/grpc_php_plugin b/vendor/google/grpc-gcp/cloudprober/bins/opt/grpc_php_plugin new file mode 100755 index 0000000000000000000000000000000000000000..a0e24c9f499d076659083ed2632863bd2aab975b GIT binary patch literal 2295352 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

1&Sxce;5cE_yDZnTa=!8xd&l?#!f4E09!p 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 GWa#e!Do&M-%-4E=PBS@{$-Gd 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 G~mvTm);ku@p87#mr8_4;`{0*d%SG@YutDl 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

+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Summary of DoubleEndedQueueInterface methods
First Element (Head)Last Element (Tail)
Throws exceptionSpecial valueThrows exceptionSpecial value
InsertaddFirst()offerFirst()addLast()offerLast()
RemoveremoveFirst()pollFirst()removeLast()pollLast()
ExaminefirstElement()peekFirst()lastElement()peekLast()
+ * + * This interface extends the `QueueInterface`. When a double-ended queue is + * used as a queue, FIFO (first-in-first-out) behavior results. Elements are + * added at the end of the double-ended queue and removed from the beginning. + * The methods inherited from the `QueueInterface` are precisely equivalent to + * `DoubleEndedQueueInterface` methods as indicated in the following table: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Comparison of QueueInterface and DoubleEndedQueueInterface methods
QueueInterface MethodDoubleEndedQueueInterface Method
add()addLast()
offer()offerLast()
remove()removeFirst()
poll()pollFirst()
element()firstElement()
peek()peekFirst()
+ * + * Double-ended queues can also be used as LIFO (last-in-first-out) stacks. When + * a double-ended queue is used as a stack, elements are pushed and popped from + * the beginning of the double-ended queue. Stack concepts are precisely + * equivalent to `DoubleEndedQueueInterface` methods as indicated in the table + * below: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Comparison of stack concepts and DoubleEndedQueueInterface methods
Stack conceptDoubleEndedQueueInterface Method
pushaddFirst()
popremoveFirst()
peekpeekFirst()
+ * + * Note that the `peek()` method works equally well when a double-ended queue is + * used as a queue or a stack; in either case, elements are drawn from the + * beginning of the double-ended queue. + * + * While `DoubleEndedQueueInterface` implementations are not strictly required + * to prohibit the insertion of `null` elements, they are strongly encouraged to + * do so. Users of any `DoubleEndedQueueInterface` implementations that do allow + * `null` elements are strongly encouraged *not* to take advantage of the + * ability to insert nulls. This is so because `null` is used as a special + * return value by various methods to indicated that the double-ended queue is + * empty. + * + * @template T + * @extends QueueInterface + */ +interface DoubleEndedQueueInterface extends QueueInterface +{ + /** + * Inserts the specified element at the front of this queue if it is + * possible to do so immediately without violating capacity restrictions. + * + * When using a capacity-restricted double-ended queue, it is generally + * preferable to use the `offerFirst()` method. + * + * @param T $element The element to add to the front of this queue. + * + * @return bool `true` if this queue changed as a result of the call. + * + * @throws RuntimeException if a queue refuses to add a particular element + * for any reason other than that it already contains the element. + * Implementations should use a more-specific exception that extends + * `\RuntimeException`. + */ + public function addFirst(mixed $element): bool; + + /** + * Inserts the specified element at the end of this queue if it is possible + * to do so immediately without violating capacity restrictions. + * + * When using a capacity-restricted double-ended queue, it is generally + * preferable to use the `offerLast()` method. + * + * This method is equivalent to `add()`. + * + * @param T $element The element to add to the end of this queue. + * + * @return bool `true` if this queue changed as a result of the call. + * + * @throws RuntimeException if a queue refuses to add a particular element + * for any reason other than that it already contains the element. + * Implementations should use a more-specific exception that extends + * `\RuntimeException`. + */ + public function addLast(mixed $element): bool; + + /** + * Inserts the specified element at the front of this queue if it is + * possible to do so immediately without violating capacity restrictions. + * + * When using a capacity-restricted queue, this method is generally + * preferable to `addFirst()`, which can fail to insert an element only by + * throwing an exception. + * + * @param T $element The element to add to the front of this queue. + * + * @return bool `true` if the element was added to this queue, else `false`. + */ + public function offerFirst(mixed $element): bool; + + /** + * Inserts the specified element at the end of this queue if it is possible + * to do so immediately without violating capacity restrictions. + * + * When using a capacity-restricted queue, this method is generally + * preferable to `addLast()` which can fail to insert an element only by + * throwing an exception. + * + * @param T $element The element to add to the end of this queue. + * + * @return bool `true` if the element was added to this queue, else `false`. + */ + public function offerLast(mixed $element): bool; + + /** + * Retrieves and removes the head of this queue. + * + * This method differs from `pollFirst()` only in that it throws an + * exception if this queue is empty. + * + * @return T the first element in this queue. + * + * @throws NoSuchElementException if this queue is empty. + */ + public function removeFirst(): mixed; + + /** + * Retrieves and removes the tail of this queue. + * + * This method differs from `pollLast()` only in that it throws an exception + * if this queue is empty. + * + * @return T the last element in this queue. + * + * @throws NoSuchElementException if this queue is empty. + */ + public function removeLast(): mixed; + + /** + * Retrieves and removes the head of this queue, or returns `null` if this + * queue is empty. + * + * @return T | null the head of this queue, or `null` if this queue is empty. + */ + public function pollFirst(): mixed; + + /** + * Retrieves and removes the tail of this queue, or returns `null` if this + * queue is empty. + * + * @return T | null the tail of this queue, or `null` if this queue is empty. + */ + public function pollLast(): mixed; + + /** + * Retrieves, but does not remove, the head of this queue. + * + * This method differs from `peekFirst()` only in that it throws an + * exception if this queue is empty. + * + * @return T the head of this queue. + * + * @throws NoSuchElementException if this queue is empty. + */ + public function firstElement(): mixed; + + /** + * Retrieves, but does not remove, the tail of this queue. + * + * This method differs from `peekLast()` only in that it throws an exception + * if this queue is empty. + * + * @return T the tail of this queue. + * + * @throws NoSuchElementException if this queue is empty. + */ + public function lastElement(): mixed; + + /** + * Retrieves, but does not remove, the head of this queue, or returns `null` + * if this queue is empty. + * + * @return T | null the head of this queue, or `null` if this queue is empty. + */ + public function peekFirst(): mixed; + + /** + * Retrieves, but does not remove, the tail of this queue, or returns `null` + * if this queue is empty. + * + * @return T | null the tail of this queue, or `null` if this queue is empty. + */ + public function peekLast(): mixed; +} diff --git a/vendor/ramsey/collection/src/Exception/CollectionException.php b/vendor/ramsey/collection/src/Exception/CollectionException.php new file mode 100644 index 0000000..4aa92be --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/CollectionException.php @@ -0,0 +1,21 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use Throwable; + +interface CollectionException extends Throwable +{ +} diff --git a/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php b/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php new file mode 100644 index 0000000..42f5be2 --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/CollectionMismatchException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use RuntimeException; + +/** + * Thrown when attempting to operate on collections of differing types. + */ +class CollectionMismatchException extends RuntimeException implements CollectionException +{ +} diff --git a/vendor/ramsey/collection/src/Exception/InvalidArgumentException.php b/vendor/ramsey/collection/src/Exception/InvalidArgumentException.php new file mode 100644 index 0000000..7b41b4a --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/InvalidArgumentException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use InvalidArgumentException as PhpInvalidArgumentException; + +/** + * Thrown to indicate an argument is not of the expected type. + */ +class InvalidArgumentException extends PhpInvalidArgumentException implements CollectionException +{ +} diff --git a/vendor/ramsey/collection/src/Exception/InvalidPropertyOrMethod.php b/vendor/ramsey/collection/src/Exception/InvalidPropertyOrMethod.php new file mode 100644 index 0000000..a53be14 --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/InvalidPropertyOrMethod.php @@ -0,0 +1,26 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use RuntimeException; + +/** + * Thrown when attempting to evaluate a property, method, or array key + * that doesn't exist on an element or cannot otherwise be evaluated in the + * current context. + */ +class InvalidPropertyOrMethod extends RuntimeException implements CollectionException +{ +} diff --git a/vendor/ramsey/collection/src/Exception/NoSuchElementException.php b/vendor/ramsey/collection/src/Exception/NoSuchElementException.php new file mode 100644 index 0000000..cd98f0c --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/NoSuchElementException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use RuntimeException; + +/** + * Thrown when attempting to access an element that does not exist. + */ +class NoSuchElementException extends RuntimeException implements CollectionException +{ +} diff --git a/vendor/ramsey/collection/src/Exception/OutOfBoundsException.php b/vendor/ramsey/collection/src/Exception/OutOfBoundsException.php new file mode 100644 index 0000000..c75294e --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/OutOfBoundsException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use OutOfBoundsException as PhpOutOfBoundsException; + +/** + * Thrown when attempting to access an element out of the range of the collection. + */ +class OutOfBoundsException extends PhpOutOfBoundsException implements CollectionException +{ +} diff --git a/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php b/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php new file mode 100644 index 0000000..d074f45 --- /dev/null +++ b/vendor/ramsey/collection/src/Exception/UnsupportedOperationException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Exception; + +use RuntimeException; + +/** + * Thrown to indicate that the requested operation is not supported. + */ +class UnsupportedOperationException extends RuntimeException implements CollectionException +{ +} diff --git a/vendor/ramsey/collection/src/GenericArray.php b/vendor/ramsey/collection/src/GenericArray.php new file mode 100644 index 0000000..2b079aa --- /dev/null +++ b/vendor/ramsey/collection/src/GenericArray.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection; + +/** + * `GenericArray` represents a standard array object. + * + * @extends AbstractArray + */ +class GenericArray extends AbstractArray +{ +} diff --git a/vendor/ramsey/collection/src/Map/AbstractMap.php b/vendor/ramsey/collection/src/Map/AbstractMap.php new file mode 100644 index 0000000..92f23e6 --- /dev/null +++ b/vendor/ramsey/collection/src/Map/AbstractMap.php @@ -0,0 +1,205 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +use Ramsey\Collection\AbstractArray; +use Ramsey\Collection\Exception\InvalidArgumentException; +use Traversable; + +use function array_key_exists; +use function array_keys; +use function in_array; +use function var_export; + +/** + * This class provides a basic implementation of `MapInterface`, to minimize the + * effort required to implement this interface. + * + * @template K of array-key + * @template T + * @extends AbstractArray + * @implements MapInterface + */ +abstract class AbstractMap extends AbstractArray implements MapInterface +{ + /** + * @param array $data The initial items to add to this map. + */ + public function __construct(array $data = []) + { + parent::__construct($data); + } + + /** + * @return Traversable + */ + public function getIterator(): Traversable + { + return parent::getIterator(); + } + + /** + * @param K $offset The offset to set + * @param T $value The value to set at the given offset. + * + * @inheritDoc + */ + public function offsetSet(mixed $offset, mixed $value): void + { + if ($offset === null) { + throw new InvalidArgumentException( + 'Map elements are key/value pairs; a key must be provided for ' + . 'value ' . var_export($value, true), + ); + } + + $this->data[$offset] = $value; + } + + public function containsKey(int | string $key): bool + { + return array_key_exists($key, $this->data); + } + + public function containsValue(mixed $value): bool + { + return in_array($value, $this->data, true); + } + + /** + * @inheritDoc + */ + public function keys(): array + { + /** @var list */ + return array_keys($this->data); + } + + /** + * @param K $key The key to return from the map. + * @param T | null $defaultValue The default value to use if `$key` is not found. + * + * @return T | null the value or `null` if the key could not be found. + */ + public function get(int | string $key, mixed $defaultValue = null): mixed + { + return $this[$key] ?? $defaultValue; + } + + /** + * @param K $key The key to put or replace in the map. + * @param T $value The value to store at `$key`. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function put(int | string $key, mixed $value): mixed + { + $previousValue = $this->get($key); + $this[$key] = $value; + + return $previousValue; + } + + /** + * @param K $key The key to put in the map. + * @param T $value The value to store at `$key`. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function putIfAbsent(int | string $key, mixed $value): mixed + { + $currentValue = $this->get($key); + + if ($currentValue === null) { + $this[$key] = $value; + } + + return $currentValue; + } + + /** + * @param K $key The key to remove from the map. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function remove(int | string $key): mixed + { + $previousValue = $this->get($key); + unset($this[$key]); + + return $previousValue; + } + + public function removeIf(int | string $key, mixed $value): bool + { + if ($this->get($key) === $value) { + unset($this[$key]); + + return true; + } + + return false; + } + + /** + * @param K $key The key to replace. + * @param T $value The value to set at `$key`. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function replace(int | string $key, mixed $value): mixed + { + $currentValue = $this->get($key); + + if ($this->containsKey($key)) { + $this[$key] = $value; + } + + return $currentValue; + } + + public function replaceIf(int | string $key, mixed $oldValue, mixed $newValue): bool + { + if ($this->get($key) === $oldValue) { + $this[$key] = $newValue; + + return true; + } + + return false; + } + + /** + * @return array + */ + public function __serialize(): array + { + /** @var array */ + return parent::__serialize(); + } + + /** + * @return array + */ + public function toArray(): array + { + /** @var array */ + return parent::toArray(); + } +} diff --git a/vendor/ramsey/collection/src/Map/AbstractTypedMap.php b/vendor/ramsey/collection/src/Map/AbstractTypedMap.php new file mode 100644 index 0000000..8b6cc04 --- /dev/null +++ b/vendor/ramsey/collection/src/Map/AbstractTypedMap.php @@ -0,0 +1,59 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +use Ramsey\Collection\Exception\InvalidArgumentException; +use Ramsey\Collection\Tool\TypeTrait; +use Ramsey\Collection\Tool\ValueToStringTrait; + +/** + * This class provides a basic implementation of `TypedMapInterface`, to + * minimize the effort required to implement this interface. + * + * @template K of array-key + * @template T + * @extends AbstractMap + * @implements TypedMapInterface + */ +abstract class AbstractTypedMap extends AbstractMap implements TypedMapInterface +{ + use TypeTrait; + use ValueToStringTrait; + + /** + * @param K $offset + * @param T $value + * + * @inheritDoc + */ + public function offsetSet(mixed $offset, mixed $value): void + { + if ($this->checkType($this->getKeyType(), $offset) === false) { + throw new InvalidArgumentException( + 'Key must be of type ' . $this->getKeyType() . '; key is ' + . $this->toolValueToString($offset), + ); + } + + if ($this->checkType($this->getValueType(), $value) === false) { + throw new InvalidArgumentException( + 'Value must be of type ' . $this->getValueType() . '; value is ' + . $this->toolValueToString($value), + ); + } + + parent::offsetSet($offset, $value); + } +} diff --git a/vendor/ramsey/collection/src/Map/AssociativeArrayMap.php b/vendor/ramsey/collection/src/Map/AssociativeArrayMap.php new file mode 100644 index 0000000..34e4e85 --- /dev/null +++ b/vendor/ramsey/collection/src/Map/AssociativeArrayMap.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +/** + * `AssociativeArrayMap` represents a standard associative array object. + * + * @extends AbstractMap + */ +class AssociativeArrayMap extends AbstractMap +{ +} diff --git a/vendor/ramsey/collection/src/Map/MapInterface.php b/vendor/ramsey/collection/src/Map/MapInterface.php new file mode 100644 index 0000000..22ba1bd --- /dev/null +++ b/vendor/ramsey/collection/src/Map/MapInterface.php @@ -0,0 +1,142 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +use Ramsey\Collection\ArrayInterface; + +/** + * An object that maps keys to values. + * + * A map cannot contain duplicate keys; each key can map to at most one value. + * + * @template K of array-key + * @template T + * @extends ArrayInterface + */ +interface MapInterface extends ArrayInterface +{ + /** + * Returns `true` if this map contains a mapping for the specified key. + * + * @param K $key The key to check in the map. + */ + public function containsKey(int | string $key): bool; + + /** + * Returns `true` if this map maps one or more keys to the specified value. + * + * This performs a strict type check on the value. + * + * @param T $value The value to check in the map. + */ + public function containsValue(mixed $value): bool; + + /** + * Return an array of the keys contained in this map. + * + * @return list + */ + public function keys(): array; + + /** + * Returns the value to which the specified key is mapped, `null` if this + * map contains no mapping for the key, or (optionally) `$defaultValue` if + * this map contains no mapping for the key. + * + * @param K $key The key to return from the map. + * @param T | null $defaultValue The default value to use if `$key` is not found. + * + * @return T | null the value or `null` if the key could not be found. + */ + public function get(int | string $key, mixed $defaultValue = null): mixed; + + /** + * Associates the specified value with the specified key in this map. + * + * If the map previously contained a mapping for the key, the old value is + * replaced by the specified value. + * + * @param K $key The key to put or replace in the map. + * @param T $value The value to store at `$key`. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function put(int | string $key, mixed $value): mixed; + + /** + * Associates the specified value with the specified key in this map only if + * it is not already set. + * + * If there is already a value associated with `$key`, this returns that + * value without replacing it. + * + * @param K $key The key to put in the map. + * @param T $value The value to store at `$key`. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function putIfAbsent(int | string $key, mixed $value): mixed; + + /** + * Removes the mapping for a key from this map if it is present. + * + * @param K $key The key to remove from the map. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function remove(int | string $key): mixed; + + /** + * Removes the entry for the specified key only if it is currently mapped to + * the specified value. + * + * This performs a strict type check on the value. + * + * @param K $key The key to remove from the map. + * @param T $value The value to match. + * + * @return bool true if the value was removed. + */ + public function removeIf(int | string $key, mixed $value): bool; + + /** + * Replaces the entry for the specified key only if it is currently mapped + * to some value. + * + * @param K $key The key to replace. + * @param T $value The value to set at `$key`. + * + * @return T | null the previous value associated with key, or `null` if + * there was no mapping for `$key`. + */ + public function replace(int | string $key, mixed $value): mixed; + + /** + * Replaces the entry for the specified key only if currently mapped to the + * specified value. + * + * This performs a strict type check on the value. + * + * @param K $key The key to remove from the map. + * @param T $oldValue The value to match. + * @param T $newValue The value to use as a replacement. + * + * @return bool true if the value was replaced. + */ + public function replaceIf(int | string $key, mixed $oldValue, mixed $newValue): bool; +} diff --git a/vendor/ramsey/collection/src/Map/NamedParameterMap.php b/vendor/ramsey/collection/src/Map/NamedParameterMap.php new file mode 100644 index 0000000..f948e47 --- /dev/null +++ b/vendor/ramsey/collection/src/Map/NamedParameterMap.php @@ -0,0 +1,110 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +use Ramsey\Collection\Exception\InvalidArgumentException; +use Ramsey\Collection\Tool\TypeTrait; +use Ramsey\Collection\Tool\ValueToStringTrait; + +use function array_combine; +use function array_key_exists; +use function is_int; + +/** + * `NamedParameterMap` represents a mapping of values to a set of named keys + * that may optionally be typed + * + * @extends AbstractMap + */ +class NamedParameterMap extends AbstractMap +{ + use TypeTrait; + use ValueToStringTrait; + + /** + * Named parameters defined for this map. + * + * @var array + */ + private readonly array $namedParameters; + + /** + * Constructs a new `NamedParameterMap`. + * + * @param array $namedParameters The named parameters defined for this map. + * @param array $data An initial set of data to set on this map. + */ + public function __construct(array $namedParameters, array $data = []) + { + $this->namedParameters = $this->filterNamedParameters($namedParameters); + parent::__construct($data); + } + + /** + * Returns named parameters set for this `NamedParameterMap`. + * + * @return array + */ + public function getNamedParameters(): array + { + return $this->namedParameters; + } + + public function offsetSet(mixed $offset, mixed $value): void + { + if (!array_key_exists($offset, $this->namedParameters)) { + throw new InvalidArgumentException( + 'Attempting to set value for unconfigured parameter \'' + . $this->toolValueToString($offset) . '\'', + ); + } + + if ($this->checkType($this->namedParameters[$offset], $value) === false) { + throw new InvalidArgumentException( + 'Value for \'' . $offset . '\' must be of type ' + . $this->namedParameters[$offset] . '; value is ' + . $this->toolValueToString($value), + ); + } + + $this->data[$offset] = $value; + } + + /** + * Given an array of named parameters, constructs a proper mapping of + * named parameters to types. + * + * @param array $namedParameters The named parameters to filter. + * + * @return array + */ + protected function filterNamedParameters(array $namedParameters): array + { + $names = []; + $types = []; + + foreach ($namedParameters as $key => $value) { + if (is_int($key)) { + $names[] = $value; + $types[] = 'mixed'; + } else { + $names[] = $key; + $types[] = $value; + } + } + + return array_combine($names, $types) ?: []; + } +} diff --git a/vendor/ramsey/collection/src/Map/TypedMap.php b/vendor/ramsey/collection/src/Map/TypedMap.php new file mode 100644 index 0000000..4a090c8 --- /dev/null +++ b/vendor/ramsey/collection/src/Map/TypedMap.php @@ -0,0 +1,112 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +/** + * A `TypedMap` represents a map of elements where key and value are typed. + * + * Each element is identified by a key with defined type and a value of defined + * type. The keys of the map must be unique. The values on the map can be + * repeated but each with its own different key. + * + * The most common case is to use a string type key, but it's not limited to + * this type of keys. + * + * This is a direct implementation of `TypedMapInterface`, provided for the sake + * of convenience. + * + * Example usage: + * + * ``` + * $map = new TypedMap('string', Foo::class); + * $map['x'] = new Foo(); + * foreach ($map as $key => $value) { + * // do something with $key, it will be a Foo::class + * } + * + * // this will throw an exception since key must be string + * $map[10] = new Foo(); + * + * // this will throw an exception since value must be a Foo + * $map['bar'] = 'bar'; + * + * // initialize map with contents + * $map = new TypedMap('string', Foo::class, [ + * new Foo(), new Foo(), new Foo() + * ]); + * ``` + * + * It is preferable to subclass `AbstractTypedMap` to create your own typed map + * implementation: + * + * ``` + * class FooTypedMap extends AbstractTypedMap + * { + * public function getKeyType() + * { + * return 'int'; + * } + * + * public function getValueType() + * { + * return Foo::class; + * } + * } + * ``` + * + * … but you also may use the `TypedMap` class: + * + * ``` + * class FooTypedMap extends TypedMap + * { + * public function __constructor(array $data = []) + * { + * parent::__construct('int', Foo::class, $data); + * } + * } + * ``` + * + * @template K of array-key + * @template T + * @extends AbstractTypedMap + */ +class TypedMap extends AbstractTypedMap +{ + /** + * Constructs a map object of the specified key and value types, + * optionally with the specified data. + * + * @param string $keyType The data type of the map's keys. + * @param string $valueType The data type of the map's values. + * @param array $data The initial data to set for this map. + */ + public function __construct( + private readonly string $keyType, + private readonly string $valueType, + array $data = [], + ) { + parent::__construct($data); + } + + public function getKeyType(): string + { + return $this->keyType; + } + + public function getValueType(): string + { + return $this->valueType; + } +} diff --git a/vendor/ramsey/collection/src/Map/TypedMapInterface.php b/vendor/ramsey/collection/src/Map/TypedMapInterface.php new file mode 100644 index 0000000..5a44f06 --- /dev/null +++ b/vendor/ramsey/collection/src/Map/TypedMapInterface.php @@ -0,0 +1,36 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Map; + +/** + * A `TypedMapInterface` represents a map of elements where key and value are + * typed. + * + * @template K of array-key + * @template T + * @extends MapInterface + */ +interface TypedMapInterface extends MapInterface +{ + /** + * Return the type used on the key. + */ + public function getKeyType(): string; + + /** + * Return the type forced on the values. + */ + public function getValueType(): string; +} diff --git a/vendor/ramsey/collection/src/Queue.php b/vendor/ramsey/collection/src/Queue.php new file mode 100644 index 0000000..0f5b337 --- /dev/null +++ b/vendor/ramsey/collection/src/Queue.php @@ -0,0 +1,148 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection; + +use Ramsey\Collection\Exception\InvalidArgumentException; +use Ramsey\Collection\Exception\NoSuchElementException; +use Ramsey\Collection\Tool\TypeTrait; +use Ramsey\Collection\Tool\ValueToStringTrait; + +use function array_key_first; + +/** + * This class provides a basic implementation of `QueueInterface`, to minimize + * the effort required to implement this interface. + * + * @template T + * @extends AbstractArray + * @implements QueueInterface + */ +class Queue extends AbstractArray implements QueueInterface +{ + use TypeTrait; + use ValueToStringTrait; + + /** + * Constructs a queue object of the specified type, optionally with the + * specified data. + * + * @param string $queueType The type or class name associated with this queue. + * @param array $data The initial items to store in the queue. + */ + public function __construct(private readonly string $queueType, array $data = []) + { + parent::__construct($data); + } + + /** + * {@inheritDoc} + * + * Since arbitrary offsets may not be manipulated in a queue, this method + * serves only to fulfill the `ArrayAccess` interface requirements. It is + * invoked by other operations when adding values to the queue. + * + * @throws InvalidArgumentException if $value is of the wrong type. + */ + public function offsetSet(mixed $offset, mixed $value): void + { + if ($this->checkType($this->getType(), $value) === false) { + throw new InvalidArgumentException( + 'Value must be of type ' . $this->getType() . '; value is ' + . $this->toolValueToString($value), + ); + } + + $this->data[] = $value; + } + + /** + * @throws InvalidArgumentException if $value is of the wrong type. + */ + public function add(mixed $element): bool + { + $this[] = $element; + + return true; + } + + /** + * @return T + * + * @throws NoSuchElementException if this queue is empty. + */ + public function element(): mixed + { + return $this->peek() ?? throw new NoSuchElementException( + 'Can\'t return element from Queue. Queue is empty.', + ); + } + + public function offer(mixed $element): bool + { + try { + return $this->add($element); + } catch (InvalidArgumentException) { + return false; + } + } + + /** + * @return T | null + */ + public function peek(): mixed + { + $index = array_key_first($this->data); + + if ($index === null) { + return null; + } + + return $this[$index]; + } + + /** + * @return T | null + */ + public function poll(): mixed + { + $index = array_key_first($this->data); + + if ($index === null) { + return null; + } + + $head = $this[$index]; + unset($this[$index]); + + return $head; + } + + /** + * @return T + * + * @throws NoSuchElementException if this queue is empty. + */ + public function remove(): mixed + { + return $this->poll() ?? throw new NoSuchElementException( + 'Can\'t return element from Queue. Queue is empty.', + ); + } + + public function getType(): string + { + return $this->queueType; + } +} diff --git a/vendor/ramsey/collection/src/QueueInterface.php b/vendor/ramsey/collection/src/QueueInterface.php new file mode 100644 index 0000000..f29ce43 --- /dev/null +++ b/vendor/ramsey/collection/src/QueueInterface.php @@ -0,0 +1,202 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection; + +use Ramsey\Collection\Exception\NoSuchElementException; +use RuntimeException; + +/** + * A queue is a collection in which the entities in the collection are kept in + * order. + * + * The principal operations on the queue are the addition of entities to the end + * (tail), also known as *enqueue*, and removal of entities from the front + * (head), also known as *dequeue*. This makes the queue a first-in-first-out + * (FIFO) data structure. + * + * Besides basic array operations, queues provide additional insertion, + * extraction, and inspection operations. Each of these methods exists in two + * forms: one throws an exception if the operation fails, the other returns a + * special value (either `null` or `false`, depending on the operation). The + * latter form of the insert operation is designed specifically for use with + * capacity-restricted `QueueInterface` implementations; in most + * implementations, insert operations cannot fail. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Summary of QueueInterface methods
Throws exceptionReturns special value
Insertadd()offer()
Removeremove()poll()
Examineelement()peek()
+ * + * Queues typically, but do not necessarily, order elements in a FIFO + * (first-in-first-out) manner. Among the exceptions are priority queues, which + * order elements according to a supplied comparator, or the elements' natural + * ordering, and LIFO queues (or stacks) which order the elements LIFO + * (last-in-first-out). Whatever the ordering used, the head of the queue is + * that element which would be removed by a call to remove() or poll(). In a + * FIFO queue, all new elements are inserted at the tail of the queue. Other + * kinds of queues may use different placement rules. Every `QueueInterface` + * implementation must specify its ordering properties. + * + * The `offer()` method inserts an element if possible, otherwise returning + * `false`. This differs from the `add()` method, which can fail to add an + * element only by throwing an unchecked exception. The `offer()` method is + * designed for use when failure is a normal, rather than exceptional + * occurrence, for example, in fixed-capacity (or "bounded") queues. + * + * The `remove()` and `poll()` methods remove and return the head of the queue. + * Exactly which element is removed from the queue is a function of the queue's + * ordering policy, which differs from implementation to implementation. The + * `remove()` and `poll()` methods differ only in their behavior when the queue + * is empty: the `remove()` method throws an exception, while the `poll()` + * method returns `null`. + * + * The `element()` and `peek()` methods return, but do not remove, the head of + * the queue. + * + * `QueueInterface` implementations generally do not allow insertion of `null` + * elements, although some implementations do not prohibit insertion of `null`. + * Even in the implementations that permit it, `null` should not be inserted + * into a queue, as `null` is also used as a special return value by the + * `poll()` method to indicate that the queue contains no elements. + * + * @template T + * @extends ArrayInterface + */ +interface QueueInterface extends ArrayInterface +{ + /** + * Ensures that this queue contains the specified element (optional + * operation). + * + * Returns `true` if this queue changed as a result of the call. (Returns + * `false` if this queue does not permit duplicates and already contains the + * specified element.) + * + * Queues that support this operation may place limitations on what elements + * may be added to this queue. In particular, some queues will refuse to add + * `null` elements, and others will impose restrictions on the type of + * elements that may be added. Queue classes should clearly specify in their + * documentation any restrictions on what elements may be added. + * + * If a queue refuses to add a particular element for any reason other than + * that it already contains the element, it must throw an exception (rather + * than returning `false`). This preserves the invariant that a queue always + * contains the specified element after this call returns. + * + * @see self::offer() + * + * @param T $element The element to add to this queue. + * + * @return bool `true` if this queue changed as a result of the call. + * + * @throws RuntimeException if a queue refuses to add a particular element + * for any reason other than that it already contains the element. + * Implementations should use a more-specific exception that extends + * `\RuntimeException`. + */ + public function add(mixed $element): bool; + + /** + * Retrieves, but does not remove, the head of this queue. + * + * This method differs from `peek()` only in that it throws an exception if + * this queue is empty. + * + * @see self::peek() + * + * @return T the head of this queue. + * + * @throws NoSuchElementException if this queue is empty. + */ + public function element(): mixed; + + /** + * Inserts the specified element into this queue if it is possible to do so + * immediately without violating capacity restrictions. + * + * When using a capacity-restricted queue, this method is generally + * preferable to `add()`, which can fail to insert an element only by + * throwing an exception. + * + * @see self::add() + * + * @param T $element The element to add to this queue. + * + * @return bool `true` if the element was added to this queue, else `false`. + */ + public function offer(mixed $element): bool; + + /** + * Retrieves, but does not remove, the head of this queue, or returns `null` + * if this queue is empty. + * + * @see self::element() + * + * @return T | null the head of this queue, or `null` if this queue is empty. + */ + public function peek(): mixed; + + /** + * Retrieves and removes the head of this queue, or returns `null` + * if this queue is empty. + * + * @see self::remove() + * + * @return T | null the head of this queue, or `null` if this queue is empty. + */ + public function poll(): mixed; + + /** + * Retrieves and removes the head of this queue. + * + * This method differs from `poll()` only in that it throws an exception if + * this queue is empty. + * + * @see self::poll() + * + * @return T the head of this queue. + * + * @throws NoSuchElementException if this queue is empty. + */ + public function remove(): mixed; + + /** + * Returns the type associated with this queue. + */ + public function getType(): string; +} diff --git a/vendor/ramsey/collection/src/Set.php b/vendor/ramsey/collection/src/Set.php new file mode 100644 index 0000000..d60f248 --- /dev/null +++ b/vendor/ramsey/collection/src/Set.php @@ -0,0 +1,59 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection; + +/** + * A set is a collection that contains no duplicate elements. + * + * Great care must be exercised if mutable objects are used as set elements. + * The behavior of a set is not specified if the value of an object is changed + * in a manner that affects equals comparisons while the object is an element in + * the set. + * + * Example usage: + * + * ``` + * $foo = new \My\Foo(); + * $set = new Set(\My\Foo::class); + * + * $set->add($foo); // returns TRUE, the element doesn't exist + * $set->add($foo); // returns FALSE, the element already exists + * + * $bar = new \My\Foo(); + * $set->add($bar); // returns TRUE, $bar !== $foo + * ``` + * + * @template T + * @extends AbstractSet + */ +class Set extends AbstractSet +{ + /** + * Constructs a set object of the specified type, optionally with the + * specified data. + * + * @param string $setType The type or class name associated with this set. + * @param array $data The initial items to store in the set. + */ + public function __construct(private readonly string $setType, array $data = []) + { + parent::__construct($data); + } + + public function getType(): string + { + return $this->setType; + } +} diff --git a/vendor/ramsey/collection/src/Sort.php b/vendor/ramsey/collection/src/Sort.php new file mode 100644 index 0000000..0c3c192 --- /dev/null +++ b/vendor/ramsey/collection/src/Sort.php @@ -0,0 +1,31 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection; + +/** + * Collection sorting + */ +enum Sort: string +{ + /** + * Sort items in a collection in ascending order. + */ + case Ascending = 'asc'; + + /** + * Sort items in a collection in descending order. + */ + case Descending = 'desc'; +} diff --git a/vendor/ramsey/collection/src/Tool/TypeTrait.php b/vendor/ramsey/collection/src/Tool/TypeTrait.php new file mode 100644 index 0000000..ac51b7f --- /dev/null +++ b/vendor/ramsey/collection/src/Tool/TypeTrait.php @@ -0,0 +1,57 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Tool; + +use function is_array; +use function is_bool; +use function is_callable; +use function is_float; +use function is_int; +use function is_numeric; +use function is_object; +use function is_resource; +use function is_scalar; +use function is_string; + +/** + * Provides functionality to check values for specific types. + */ +trait TypeTrait +{ + /** + * Returns `true` if value is of the specified type. + * + * @param string $type The type to check the value against. + * @param mixed $value The value to check. + */ + protected function checkType(string $type, mixed $value): bool + { + return match ($type) { + 'array' => is_array($value), + 'bool', 'boolean' => is_bool($value), + 'callable' => is_callable($value), + 'float', 'double' => is_float($value), + 'int', 'integer' => is_int($value), + 'null' => $value === null, + 'numeric' => is_numeric($value), + 'object' => is_object($value), + 'resource' => is_resource($value), + 'scalar' => is_scalar($value), + 'string' => is_string($value), + 'mixed' => true, + default => $value instanceof $type, + }; + } +} diff --git a/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php b/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php new file mode 100644 index 0000000..bbe27b4 --- /dev/null +++ b/vendor/ramsey/collection/src/Tool/ValueExtractorTrait.php @@ -0,0 +1,100 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Tool; + +use Ramsey\Collection\Exception\InvalidPropertyOrMethod; +use Ramsey\Collection\Exception\UnsupportedOperationException; +use ReflectionProperty; + +use function is_array; +use function is_object; +use function method_exists; +use function property_exists; +use function sprintf; + +/** + * Provides functionality to extract the value of a property or method from an object. + */ +trait ValueExtractorTrait +{ + /** + * Returns the type associated with this collection. + */ + abstract public function getType(): string; + + /** + * Extracts the value of the given property, method, or array key from the + * element. + * + * If `$propertyOrMethod` is `null`, we return the element as-is. + * + * @param mixed $element The element to extract the value from. + * @param string | null $propertyOrMethod The property or method for which the + * value should be extracted. + * + * @return mixed the value extracted from the specified property, method, + * or array key, or the element itself. + * + * @throws InvalidPropertyOrMethod + * @throws UnsupportedOperationException + */ + protected function extractValue(mixed $element, ?string $propertyOrMethod): mixed + { + if ($propertyOrMethod === null) { + return $element; + } + + if (!is_object($element) && !is_array($element)) { + throw new UnsupportedOperationException(sprintf( + 'The collection type "%s" does not support the $propertyOrMethod parameter', + $this->getType(), + )); + } + + if (is_array($element)) { + return $element[$propertyOrMethod] ?? throw new InvalidPropertyOrMethod(sprintf( + 'Key or index "%s" not found in collection elements', + $propertyOrMethod, + )); + } + + if (property_exists($element, $propertyOrMethod) && method_exists($element, $propertyOrMethod)) { + $reflectionProperty = new ReflectionProperty($element, $propertyOrMethod); + if ($reflectionProperty->isPublic()) { + return $element->$propertyOrMethod; + } + + return $element->{$propertyOrMethod}(); + } + + if (property_exists($element, $propertyOrMethod)) { + return $element->$propertyOrMethod; + } + + if (method_exists($element, $propertyOrMethod)) { + return $element->{$propertyOrMethod}(); + } + + if (isset($element->$propertyOrMethod)) { + return $element->$propertyOrMethod; + } + + throw new InvalidPropertyOrMethod(sprintf( + 'Method or property "%s" not defined in %s', + $propertyOrMethod, + $element::class, + )); + } +} diff --git a/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php b/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php new file mode 100644 index 0000000..40c7803 --- /dev/null +++ b/vendor/ramsey/collection/src/Tool/ValueToStringTrait.php @@ -0,0 +1,92 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Collection\Tool; + +use DateTimeInterface; + +use function assert; +use function get_resource_type; +use function is_array; +use function is_bool; +use function is_callable; +use function is_object; +use function is_resource; +use function is_scalar; + +/** + * Provides functionality to express a value as string + */ +trait ValueToStringTrait +{ + /** + * Returns a string representation of the value. + * + * - null value: `'NULL'` + * - boolean: `'TRUE'`, `'FALSE'` + * - array: `'Array'` + * - scalar: converted-value + * - resource: `'(type resource #number)'` + * - object with `__toString()`: result of `__toString()` + * - object DateTime: ISO 8601 date + * - object: `'(className Object)'` + * - anonymous function: same as object + * + * @param mixed $value the value to return as a string. + */ + protected function toolValueToString(mixed $value): string + { + // null + if ($value === null) { + return 'NULL'; + } + + // boolean constants + if (is_bool($value)) { + return $value ? 'TRUE' : 'FALSE'; + } + + // array + if (is_array($value)) { + return 'Array'; + } + + // scalar types (integer, float, string) + if (is_scalar($value)) { + return (string) $value; + } + + // resource + if (is_resource($value)) { + return '(' . get_resource_type($value) . ' resource #' . (int) $value . ')'; + } + + // From here, $value should be an object. + assert(is_object($value)); + + // __toString() is implemented + if (is_callable([$value, '__toString'])) { + /** @var string */ + return $value->__toString(); + } + + // object of type \DateTime + if ($value instanceof DateTimeInterface) { + return $value->format('c'); + } + + // unknown type + return '(' . $value::class . ' Object)'; + } +} diff --git a/vendor/ramsey/uuid/LICENSE b/vendor/ramsey/uuid/LICENSE new file mode 100644 index 0000000..22b4d0d --- /dev/null +++ b/vendor/ramsey/uuid/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2012-2025 Ben Ramsey + +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/ramsey/uuid/README.md b/vendor/ramsey/uuid/README.md new file mode 100644 index 0000000..eab624d --- /dev/null +++ b/vendor/ramsey/uuid/README.md @@ -0,0 +1,82 @@ +

ramsey/uuid

+ +

+ A PHP library for generating and working with UUIDs. +

+ +

+ Source Code + Download Package + PHP Programming Language + Read License + Build Status + Codecov Code Coverage +

+ +ramsey/uuid is a PHP library for generating and working with universally unique +identifiers (UUIDs). + +This project adheres to a [code of conduct](CODE_OF_CONDUCT.md). +By participating in this project and its community, you are expected to +uphold this code. + +Much inspiration for this library came from the [Java][javauuid] and +[Python][pyuuid] UUID libraries. + +## Installation + +The preferred method of installation is via [Composer][]. Run the following +command to install the package and add it as a requirement to your project's +`composer.json`: + +```bash +composer require ramsey/uuid +``` + +## Upgrading to Version 4 + +See the documentation for a thorough upgrade guide: + +* [Upgrading ramsey/uuid Version 3 to 4](https://uuid.ramsey.dev/en/stable/upgrading/3-to-4.html) + +## Documentation + +Please see for documentation, tips, examples, and +frequently asked questions. + +## Contributing + +Contributions are welcome! To contribute, please familiarize yourself with +[CONTRIBUTING.md](CONTRIBUTING.md). + +## Coordinated Disclosure + +Keeping user information safe and secure is a top priority, and we welcome the +contribution of external security researchers. If you believe you've found a +security issue in software that is maintained in this repository, please read +[SECURITY.md][] for instructions on submitting a vulnerability report. + +## ramsey/uuid for Enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of ramsey/uuid and thousands of other packages are working with +Tidelift to deliver commercial support and maintenance for the open source +packages you use to build your applications. Save time, reduce risk, and improve +code health, while paying the maintainers of the exact packages you use. +[Learn more.](https://tidelift.com/subscription/pkg/packagist-ramsey-uuid?utm_source=undefined&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Copyright and License + +The ramsey/uuid library is copyright © [Ben Ramsey](https://benramsey.com/) and +licensed for use under the MIT License (MIT). Please see [LICENSE][] for more +information. + +[rfc4122]: http://tools.ietf.org/html/rfc4122 +[conduct]: https://github.com/ramsey/uuid/blob/4.x/CODE_OF_CONDUCT.md +[javauuid]: http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html +[pyuuid]: http://docs.python.org/3/library/uuid.html +[composer]: http://getcomposer.org/ +[contributing.md]: https://github.com/ramsey/uuid/blob/4.x/CONTRIBUTING.md +[security.md]: https://github.com/ramsey/uuid/blob/4.x/SECURITY.md +[license]: https://github.com/ramsey/uuid/blob/4.x/LICENSE diff --git a/vendor/ramsey/uuid/composer.json b/vendor/ramsey/uuid/composer.json new file mode 100644 index 0000000..b34d9b1 --- /dev/null +++ b/vendor/ramsey/uuid/composer.json @@ -0,0 +1,114 @@ +{ + "name": "ramsey/uuid", + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "license": "MIT", + "type": "library", + "keywords": [ + "uuid", + "identifier", + "guid" + ], + "require": { + "php": "^8.0", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "ramsey/collection": "^1.2 || ^2.0" + }, + "require-dev": { + "captainhook/captainhook": "^5.25", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "minimum-stability": "dev", + "prefer-stable": true, + "autoload": { + "psr-4": { + "Ramsey\\Uuid\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "autoload-dev": { + "psr-4": { + "Ramsey\\Uuid\\Benchmark\\": "tests/benchmark/", + "Ramsey\\Uuid\\StaticAnalysis\\": "tests/static-analysis/", + "Ramsey\\Uuid\\Test\\": "tests/" + } + }, + "config": { + "allow-plugins": { + "captainhook/plugin-composer": true, + "dealerdirect/phpcodesniffer-composer-installer": true, + "ergebnis/composer-normalize": true, + "phpstan/extension-installer": true + }, + "sort-packages": true + }, + "extra": { + "captainhook": { + "force-install": true + } + }, + "scripts": { + "dev:analyze": "@dev:analyze:phpstan", + "dev:analyze:phpstan": "phpstan analyse --ansi --memory-limit 1G", + "dev:bench": "@php -d 'error_reporting=24575' vendor/bin/phpbench run", + "dev:build:clean": "git clean -fX build/", + "dev:lint": [ + "@dev:lint:syntax", + "@dev:lint:style" + ], + "dev:lint:fix": "phpcbf --cache=build/cache/phpcs.cache", + "dev:lint:style": "phpcs --cache=build/cache/phpcs.cache --colors", + "dev:lint:syntax": "parallel-lint --colors src/ tests/", + "dev:test": [ + "@dev:lint", + "@dev:bench", + "@dev:analyze", + "@dev:test:unit" + ], + "dev:test:coverage:ci": "@php -d 'xdebug.mode=coverage' vendor/bin/phpunit --colors=always --coverage-text --coverage-clover build/coverage/clover.xml --coverage-cobertura build/coverage/cobertura.xml --coverage-crap4j build/coverage/crap4j.xml --coverage-xml build/coverage/coverage-xml --log-junit build/junit.xml", + "dev:test:coverage:html": "@php -d 'xdebug.mode=coverage' vendor/bin/phpunit --colors=always --coverage-html build/coverage/coverage-html/", + "dev:test:unit": "phpunit --colors=always", + "test": "@dev:test" + }, + "scripts-descriptions": { + "dev:analyze": "Runs all static analysis checks.", + "dev:analyze:phpstan": "Runs the PHPStan static analyzer.", + "dev:bench": "Runs PHPBench benchmark tests.", + "dev:build:clean": "Cleans the build/ directory.", + "dev:lint": "Runs all linting checks.", + "dev:lint:fix": "Auto-fixes coding standards issues, if possible.", + "dev:lint:style": "Checks for coding standards issues.", + "dev:lint:syntax": "Checks for syntax errors.", + "dev:test": "Runs linting, static analysis, and unit tests.", + "dev:test:coverage:ci": "Runs unit tests and generates CI coverage reports.", + "dev:test:coverage:html": "Runs unit tests and generates HTML coverage report.", + "dev:test:unit": "Runs unit tests.", + "test": "Runs linting, static analysis, and unit tests." + } +} diff --git a/vendor/ramsey/uuid/src/BinaryUtils.php b/vendor/ramsey/uuid/src/BinaryUtils.php new file mode 100644 index 0000000..d8aac2e --- /dev/null +++ b/vendor/ramsey/uuid/src/BinaryUtils.php @@ -0,0 +1,54 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +/** + * Provides binary math utilities + */ +class BinaryUtils +{ + /** + * Applies the variant field to the 16-bit clock sequence + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + * + * @param int $clockSeq The 16-bit clock sequence value before the variant is applied + * + * @return int The 16-bit clock sequence multiplexed with the UUID variant + * + * @pure + */ + public static function applyVariant(int $clockSeq): int + { + return ($clockSeq & 0x3fff) | 0x8000; + } + + /** + * Applies the version field to the 16-bit `time_hi_and_version` field + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + * + * @param int $timeHi The value of the 16-bit `time_hi_and_version` field before the version is applied + * @param int $version The version to apply to the `time_hi` field + * + * @return int The 16-bit time_hi field of the timestamp multiplexed with the UUID version number + * + * @pure + */ + public static function applyVersion(int $timeHi, int $version): int + { + return ($timeHi & 0x0fff) | ($version << 12); + } +} diff --git a/vendor/ramsey/uuid/src/Builder/BuilderCollection.php b/vendor/ramsey/uuid/src/Builder/BuilderCollection.php new file mode 100644 index 0000000..2b2e0a2 --- /dev/null +++ b/vendor/ramsey/uuid/src/Builder/BuilderCollection.php @@ -0,0 +1,77 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Builder; + +use Ramsey\Collection\AbstractCollection; +use Ramsey\Uuid\Converter\Number\GenericNumberConverter; +use Ramsey\Uuid\Converter\Time\GenericTimeConverter; +use Ramsey\Uuid\Converter\Time\PhpTimeConverter; +use Ramsey\Uuid\Guid\GuidBuilder; +use Ramsey\Uuid\Math\BrickMathCalculator; +use Ramsey\Uuid\Nonstandard\UuidBuilder as NonstandardUuidBuilder; +use Ramsey\Uuid\Rfc4122\UuidBuilder as Rfc4122UuidBuilder; +use Traversable; + +/** + * A collection of UuidBuilderInterface objects + * + * @deprecated this class has been deprecated and will be removed in 5.0.0. The use-case for this class comes from a + * pre-`phpstan/phpstan` and pre-`vimeo/psalm` ecosystem, in which type safety had to be mostly enforced at runtime: + * that is no longer necessary, now that you can safely verify your code to be correct, and use more generic types + * like `iterable` instead. + * + * @extends AbstractCollection + */ +class BuilderCollection extends AbstractCollection +{ + public function getType(): string + { + return UuidBuilderInterface::class; + } + + public function getIterator(): Traversable + { + return parent::getIterator(); + } + + /** + * Re-constructs the object from its serialized form + * + * @param string $serialized The serialized PHP string to unserialize into a UuidInterface instance + */ + public function unserialize($serialized): void + { + /** @var array $data */ + $data = unserialize($serialized, [ + 'allowed_classes' => [ + BrickMathCalculator::class, + GenericNumberConverter::class, + GenericTimeConverter::class, + GuidBuilder::class, + NonstandardUuidBuilder::class, + PhpTimeConverter::class, + Rfc4122UuidBuilder::class, + ], + ]); + + $this->data = array_filter( + $data, + function ($unserialized): bool { + /** @phpstan-ignore instanceof.alwaysTrue */ + return $unserialized instanceof UuidBuilderInterface; + }, + ); + } +} diff --git a/vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php b/vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php new file mode 100644 index 0000000..3d62159 --- /dev/null +++ b/vendor/ramsey/uuid/src/Builder/DefaultUuidBuilder.php @@ -0,0 +1,26 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Builder; + +use Ramsey\Uuid\Rfc4122\UuidBuilder as Rfc4122UuidBuilder; + +/** + * @deprecated Please transition to {@see Rfc4122UuidBuilder}. + * + * @immutable + */ +class DefaultUuidBuilder extends Rfc4122UuidBuilder +{ +} diff --git a/vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php b/vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php new file mode 100644 index 0000000..1554a97 --- /dev/null +++ b/vendor/ramsey/uuid/src/Builder/DegradedUuidBuilder.php @@ -0,0 +1,60 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Builder; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\Time\DegradedTimeConverter; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\DegradedUuid; +use Ramsey\Uuid\Rfc4122\Fields as Rfc4122Fields; +use Ramsey\Uuid\UuidInterface; + +/** + * @deprecated DegradedUuid instances are no longer necessary to support 32-bit systems. Please transition to {@see DefaultUuidBuilder}. + * + * @immutable + */ +class DegradedUuidBuilder implements UuidBuilderInterface +{ + private TimeConverterInterface $timeConverter; + + /** + * @param NumberConverterInterface $numberConverter The number converter to use when constructing the DegradedUuid + * @param TimeConverterInterface|null $timeConverter The time converter to use for converting timestamps extracted + * from a UUID to Unix timestamps + */ + public function __construct( + private NumberConverterInterface $numberConverter, + ?TimeConverterInterface $timeConverter = null + ) { + $this->timeConverter = $timeConverter ?: new DegradedTimeConverter(); + } + + /** + * Builds and returns a DegradedUuid + * + * @param CodecInterface $codec The codec to use for building this DegradedUuid instance + * @param string $bytes The byte string from which to construct a UUID + * + * @return DegradedUuid The DegradedUuidBuild returns an instance of Ramsey\Uuid\DegradedUuid + * + * @phpstan-impure + */ + public function build(CodecInterface $codec, string $bytes): UuidInterface + { + return new DegradedUuid(new Rfc4122Fields($bytes), $this->numberConverter, $codec, $this->timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Builder/FallbackBuilder.php b/vendor/ramsey/uuid/src/Builder/FallbackBuilder.php new file mode 100644 index 0000000..e40f778 --- /dev/null +++ b/vendor/ramsey/uuid/src/Builder/FallbackBuilder.php @@ -0,0 +1,66 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Builder; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Exception\BuilderNotFoundException; +use Ramsey\Uuid\Exception\UnableToBuildUuidException; +use Ramsey\Uuid\UuidInterface; + +/** + * FallbackBuilder builds a UUID by stepping through a list of UUID builders until a UUID can be constructed without exceptions + * + * @immutable + */ +class FallbackBuilder implements UuidBuilderInterface +{ + /** + * @param iterable $builders An array of UUID builders + */ + public function __construct(private iterable $builders) + { + } + + /** + * Builds and returns a UuidInterface instance using the first builder that succeeds + * + * @param CodecInterface $codec The codec to use for building this instance + * @param string $bytes The byte string from which to construct a UUID + * + * @return UuidInterface an instance of a UUID object + * + * @pure + */ + public function build(CodecInterface $codec, string $bytes): UuidInterface + { + $lastBuilderException = null; + + foreach ($this->builders as $builder) { + try { + return $builder->build($codec, $bytes); + } catch (UnableToBuildUuidException $exception) { + $lastBuilderException = $exception; + + continue; + } + } + + throw new BuilderNotFoundException( + 'Could not find a suitable builder for the provided codec and fields', + 0, + $lastBuilderException, + ); + } +} diff --git a/vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php b/vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php new file mode 100644 index 0000000..c409878 --- /dev/null +++ b/vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php @@ -0,0 +1,38 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Builder; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\UuidInterface; + +/** + * A UUID builder builds instances of UuidInterface + * + * @immutable + */ +interface UuidBuilderInterface +{ + /** + * Builds and returns a UuidInterface + * + * @param CodecInterface $codec The codec to use for building this UuidInterface instance + * @param string $bytes The byte string from which to construct a UUID + * + * @return UuidInterface Implementations may choose to return more specific instances of UUIDs that implement UuidInterface + * + * @pure + */ + public function build(CodecInterface $codec, string $bytes): UuidInterface; +} diff --git a/vendor/ramsey/uuid/src/Codec/CodecInterface.php b/vendor/ramsey/uuid/src/Codec/CodecInterface.php new file mode 100644 index 0000000..b1e554e --- /dev/null +++ b/vendor/ramsey/uuid/src/Codec/CodecInterface.php @@ -0,0 +1,69 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Codec; + +use Ramsey\Uuid\UuidInterface; + +/** + * A codec encodes and decodes a UUID according to defined rules + * + * @immutable + */ +interface CodecInterface +{ + /** + * Returns a hexadecimal string representation of a UuidInterface + * + * @param UuidInterface $uuid The UUID for which to create a hexadecimal string representation + * + * @return non-empty-string Hexadecimal string representation of a UUID + * + * @pure + */ + public function encode(UuidInterface $uuid): string; + + /** + * Returns a binary string representation of a UuidInterface + * + * @param UuidInterface $uuid The UUID for which to create a binary string representation + * + * @return non-empty-string Binary string representation of a UUID + * + * @pure + */ + public function encodeBinary(UuidInterface $uuid): string; + + /** + * Returns a UuidInterface derived from a hexadecimal string representation + * + * @param string $encodedUuid The hexadecimal string representation to convert into a UuidInterface instance + * + * @return UuidInterface An instance of a UUID decoded from a hexadecimal string representation + * + * @pure + */ + public function decode(string $encodedUuid): UuidInterface; + + /** + * Returns a UuidInterface derived from a binary string representation + * + * @param string $bytes The binary string representation to convert into a UuidInterface instance + * + * @return UuidInterface An instance of a UUID decoded from a binary string representation + * + * @pure + */ + public function decodeBytes(string $bytes): UuidInterface; +} diff --git a/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php b/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php new file mode 100644 index 0000000..a1bd58a --- /dev/null +++ b/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php @@ -0,0 +1,78 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Codec; + +use Ramsey\Uuid\Guid\Guid; +use Ramsey\Uuid\UuidInterface; + +use function bin2hex; +use function sprintf; +use function substr; + +/** + * GuidStringCodec encodes and decodes globally unique identifiers (GUID) + * + * @see Guid + * + * @immutable + */ +class GuidStringCodec extends StringCodec +{ + public function encode(UuidInterface $uuid): string + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $hex = bin2hex($uuid->getFields()->getBytes()); + + /** @var non-empty-string */ + return sprintf( + '%02s%02s%02s%02s-%02s%02s-%02s%02s-%04s-%012s', + substr($hex, 6, 2), + substr($hex, 4, 2), + substr($hex, 2, 2), + substr($hex, 0, 2), + substr($hex, 10, 2), + substr($hex, 8, 2), + substr($hex, 14, 2), + substr($hex, 12, 2), + substr($hex, 16, 4), + substr($hex, 20), + ); + } + + public function decode(string $encodedUuid): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $bytes = $this->getBytes($encodedUuid); + + /** @phpstan-ignore possiblyImpure.methodCall, possiblyImpure.methodCall */ + return $this->getBuilder()->build($this, $this->swapBytes($bytes)); + } + + public function decodeBytes(string $bytes): UuidInterface + { + // Call parent::decode() to preserve the correct byte order. + return parent::decode(bin2hex($bytes)); + } + + /** + * Swaps bytes according to the GUID rules + */ + private function swapBytes(string $bytes): string + { + return $bytes[3] . $bytes[2] . $bytes[1] . $bytes[0] + . $bytes[5] . $bytes[4] . $bytes[7] . $bytes[6] + . substr($bytes, 8); + } +} diff --git a/vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php b/vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php new file mode 100644 index 0000000..ea533d9 --- /dev/null +++ b/vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php @@ -0,0 +1,101 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Codec; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Exception\UnsupportedOperationException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; +use Ramsey\Uuid\UuidInterface; + +use function strlen; +use function substr; + +/** + * OrderedTimeCodec encodes and decodes a UUID, optimizing the byte order for more efficient storage + * + * For binary representations of version 1 UUID, this codec may be used to reorganize the time fields, making the UUID + * closer to sequential when storing the bytes. According to Percona, this optimization can improve database INSERT and + * SELECT statements using the UUID column as a key. + * + * The string representation of the UUID will remain unchanged. Only the binary representation is reordered. + * + * PLEASE NOTE: Binary representations of UUIDs encoded with this codec must be decoded with this codec. Decoding using + * another codec can result in malformed UUIDs. + * + * @deprecated Please migrate to {@link https://uuid.ramsey.dev/en/stable/rfc4122/version6.html Version 6, reordered time-based UUIDs}. + * + * @link https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/ Storing UUID Values in MySQL + * + * @immutable + */ +class OrderedTimeCodec extends StringCodec +{ + /** + * Returns a binary string representation of a UUID, with the timestamp fields rearranged for optimized storage + * + * @return non-empty-string + */ + public function encodeBinary(UuidInterface $uuid): string + { + if ( + /** @phpstan-ignore possiblyImpure.methodCall */ + !($uuid->getFields() instanceof Rfc4122FieldsInterface) + /** @phpstan-ignore possiblyImpure.methodCall */ + || $uuid->getFields()->getVersion() !== Uuid::UUID_TYPE_TIME + ) { + throw new InvalidArgumentException('Expected version 1 (time-based) UUID'); + } + + /** @phpstan-ignore possiblyImpure.methodCall */ + $bytes = $uuid->getFields()->getBytes(); + + return $bytes[6] . $bytes[7] . $bytes[4] . $bytes[5] + . $bytes[0] . $bytes[1] . $bytes[2] . $bytes[3] + . substr($bytes, 8); + } + + /** + * Returns a UuidInterface derived from an ordered-time binary string representation + * + * @throws InvalidArgumentException if $bytes is an invalid length + * + * @inheritDoc + */ + public function decodeBytes(string $bytes): UuidInterface + { + if (strlen($bytes) !== 16) { + throw new InvalidArgumentException('$bytes string should contain 16 characters.'); + } + + // Rearrange the bytes to their original order. + $rearrangedBytes = $bytes[4] . $bytes[5] . $bytes[6] . $bytes[7] + . $bytes[2] . $bytes[3] . $bytes[0] . $bytes[1] + . substr($bytes, 8); + + $uuid = parent::decodeBytes($rearrangedBytes); + + /** @phpstan-ignore possiblyImpure.methodCall */ + $fields = $uuid->getFields(); + + if (!$fields instanceof Rfc4122FieldsInterface || $fields->getVersion() !== Uuid::UUID_TYPE_TIME) { + throw new UnsupportedOperationException( + 'Attempting to decode a non-time-based UUID using OrderedTimeCodec', + ); + } + + return $uuid; + } +} diff --git a/vendor/ramsey/uuid/src/Codec/StringCodec.php b/vendor/ramsey/uuid/src/Codec/StringCodec.php new file mode 100644 index 0000000..55f4f8b --- /dev/null +++ b/vendor/ramsey/uuid/src/Codec/StringCodec.php @@ -0,0 +1,121 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Codec; + +use Ramsey\Uuid\Builder\UuidBuilderInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Exception\InvalidUuidStringException; +use Ramsey\Uuid\Uuid; +use Ramsey\Uuid\UuidInterface; + +use function bin2hex; +use function hex2bin; +use function implode; +use function sprintf; +use function str_replace; +use function strlen; +use function substr; + +/** + * StringCodec encodes and decodes RFC 9562 (formerly RFC 4122) UUIDs + * + * @immutable + */ +class StringCodec implements CodecInterface +{ + /** + * Constructs a StringCodec + * + * @param UuidBuilderInterface $builder The builder to use when encoding UUIDs + */ + public function __construct(private UuidBuilderInterface $builder) + { + } + + public function encode(UuidInterface $uuid): string + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $hex = bin2hex($uuid->getFields()->getBytes()); + + /** @var non-empty-string */ + return sprintf( + '%08s-%04s-%04s-%04s-%012s', + substr($hex, 0, 8), + substr($hex, 8, 4), + substr($hex, 12, 4), + substr($hex, 16, 4), + substr($hex, 20), + ); + } + + /** + * @return non-empty-string + */ + public function encodeBinary(UuidInterface $uuid): string + { + /** @phpstan-ignore-next-line PHPStan complains that this is not a non-empty-string. */ + return $uuid->getFields()->getBytes(); + } + + /** + * @throws InvalidUuidStringException + * + * @inheritDoc + */ + public function decode(string $encodedUuid): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + return $this->builder->build($this, $this->getBytes($encodedUuid)); + } + + public function decodeBytes(string $bytes): UuidInterface + { + if (strlen($bytes) !== 16) { + throw new InvalidArgumentException('$bytes string should contain 16 characters.'); + } + + return $this->builder->build($this, $bytes); + } + + /** + * Returns the UUID builder + */ + protected function getBuilder(): UuidBuilderInterface + { + return $this->builder; + } + + /** + * Returns a byte string of the UUID + */ + protected function getBytes(string $encodedUuid): string + { + $parsedUuid = str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}', '-'], '', $encodedUuid); + + $components = [ + substr($parsedUuid, 0, 8), + substr($parsedUuid, 8, 4), + substr($parsedUuid, 12, 4), + substr($parsedUuid, 16, 4), + substr($parsedUuid, 20), + ]; + + if (!Uuid::isValid(implode('-', $components))) { + throw new InvalidUuidStringException('Invalid UUID string: ' . $encodedUuid); + } + + return (string) hex2bin($parsedUuid); + } +} diff --git a/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php b/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php new file mode 100644 index 0000000..e7c8efd --- /dev/null +++ b/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php @@ -0,0 +1,112 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Codec; + +use Ramsey\Uuid\Exception\InvalidUuidStringException; +use Ramsey\Uuid\UuidInterface; + +use function bin2hex; +use function sprintf; +use function substr; +use function substr_replace; + +/** + * TimestampFirstCombCodec encodes and decodes COMBs, with the timestamp as the first 48 bits + * + * In contrast with the TimestampLastCombCodec, the TimestampFirstCombCodec adds the timestamp to the first 48 bits of + * the COMB. To generate a timestamp-first COMB, set the TimestampFirstCombCodec as the codec, along with the + * CombGenerator as the random generator. + * + * ``` + * $factory = new UuidFactory(); + * + * $factory->setCodec(new TimestampFirstCombCodec($factory->getUuidBuilder())); + * + * $factory->setRandomGenerator(new CombGenerator( + * $factory->getRandomGenerator(), + * $factory->getNumberConverter(), + * )); + * + * $timestampFirstComb = $factory->uuid4(); + * ``` + * + * @deprecated Please migrate to {@link https://uuid.ramsey.dev/en/stable/rfc4122/version7.html Version 7, Unix Epoch Time UUIDs}. + * + * @link https://web.archive.org/web/20240118030355/https://www.informit.com/articles/printerfriendly/25862 The Cost of GUIDs as Primary Keys + * + * @immutable + */ +class TimestampFirstCombCodec extends StringCodec +{ + /** + * @return non-empty-string + */ + public function encode(UuidInterface $uuid): string + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $bytes = $this->swapBytes($uuid->getFields()->getBytes()); + + return sprintf( + '%08s-%04s-%04s-%04s-%012s', + bin2hex(substr($bytes, 0, 4)), + bin2hex(substr($bytes, 4, 2)), + bin2hex(substr($bytes, 6, 2)), + bin2hex(substr($bytes, 8, 2)), + bin2hex(substr($bytes, 10)) + ); + } + + /** + * @return non-empty-string + */ + public function encodeBinary(UuidInterface $uuid): string + { + /** @phpstan-ignore-next-line PHPStan complains that this is not a non-empty-string. */ + return $this->swapBytes($uuid->getFields()->getBytes()); + } + + /** + * @throws InvalidUuidStringException + * + * @inheritDoc + */ + public function decode(string $encodedUuid): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $bytes = $this->getBytes($encodedUuid); + + /** @phpstan-ignore possiblyImpure.methodCall */ + return $this->getBuilder()->build($this, $this->swapBytes($bytes)); + } + + public function decodeBytes(string $bytes): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + return $this->getBuilder()->build($this, $this->swapBytes($bytes)); + } + + /** + * Swaps bytes according to the timestamp-first COMB rules + * + * @pure + */ + private function swapBytes(string $bytes): string + { + $first48Bits = substr($bytes, 0, 6); + $last48Bits = substr($bytes, -6); + + return substr_replace(substr_replace($bytes, $last48Bits, 0, 6), $first48Bits, -6); + } +} diff --git a/vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php b/vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php new file mode 100644 index 0000000..14d10b6 --- /dev/null +++ b/vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php @@ -0,0 +1,48 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Codec; + +/** + * TimestampLastCombCodec encodes and decodes COMBs, with the timestamp as the last 48 bits + * + * The CombGenerator when used with the StringCodec (and, by proxy, the TimestampLastCombCodec) adds the timestamp to + * the last 48 bits of the COMB. The TimestampLastCombCodec is provided for the sake of consistency. In practice, it is + * identical to the standard StringCodec, but it may be used with the CombGenerator for additional context when reading + * code. + * + * Consider the following code. By default, the codec used by UuidFactory is the StringCodec, but here, we explicitly + * set the TimestampLastCombCodec. It is redundant, but it is clear that we intend this COMB to be generated with the + * timestamp appearing at the end. + * + * ``` + * $factory = new UuidFactory(); + * + * $factory->setCodec(new TimestampLastCombCodec($factory->getUuidBuilder())); + * + * $factory->setRandomGenerator(new CombGenerator( + * $factory->getRandomGenerator(), + * $factory->getNumberConverter(), + * )); + * + * $timestampLastComb = $factory->uuid4(); + * ``` + * + * @deprecated Please use {@see StringCodec} instead. + * + * @immutable + */ +class TimestampLastCombCodec extends StringCodec +{ +} diff --git a/vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php b/vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php new file mode 100644 index 0000000..ff4e1cc --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Number/BigNumberConverter.php @@ -0,0 +1,52 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Number; + +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Math\BrickMathCalculator; + +/** + * Previously used to integrate moontoast/math as a bignum arithmetic library, BigNumberConverter is deprecated in favor + * of GenericNumberConverter + * + * @deprecated Please transition to {@see GenericNumberConverter}. + * + * @immutable + */ +class BigNumberConverter implements NumberConverterInterface +{ + private NumberConverterInterface $converter; + + public function __construct() + { + $this->converter = new GenericNumberConverter(new BrickMathCalculator()); + } + + /** + * @pure + */ + public function fromHex(string $hex): string + { + return $this->converter->fromHex($hex); + } + + /** + * @pure + */ + public function toHex(string $number): string + { + return $this->converter->toHex($number); + } +} diff --git a/vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php b/vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php new file mode 100644 index 0000000..54e4e8c --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Number/DegradedNumberConverter.php @@ -0,0 +1,25 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Number; + +/** + * @deprecated DegradedNumberConverter is no longer necessary for converting numbers on 32-bit systems. Please + * transition to {@see GenericNumberConverter}. + * + * @immutable + */ +class DegradedNumberConverter extends BigNumberConverter +{ +} diff --git a/vendor/ramsey/uuid/src/Converter/Number/GenericNumberConverter.php b/vendor/ramsey/uuid/src/Converter/Number/GenericNumberConverter.php new file mode 100644 index 0000000..86968ab --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Number/GenericNumberConverter.php @@ -0,0 +1,48 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Number; + +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Math\CalculatorInterface; +use Ramsey\Uuid\Type\Integer as IntegerObject; + +/** + * GenericNumberConverter uses the provided calculator to convert decimal numbers to and from hexadecimal values + * + * @immutable + */ +class GenericNumberConverter implements NumberConverterInterface +{ + public function __construct(private CalculatorInterface $calculator) + { + } + + /** + * @pure + */ + public function fromHex(string $hex): string + { + return $this->calculator->fromBase($hex, 16)->toString(); + } + + /** + * @pure + */ + public function toHex(string $number): string + { + /** @phpstan-ignore return.type, possiblyImpure.new */ + return $this->calculator->toBase(new IntegerObject($number), 16); + } +} diff --git a/vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php b/vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php new file mode 100644 index 0000000..63eca6c --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php @@ -0,0 +1,49 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter; + +/** + * A number converter converts UUIDs from hexadecimal characters into representations of integers and vice versa + * + * @immutable + */ +interface NumberConverterInterface +{ + /** + * Converts a hexadecimal number into a string integer representation of the number + * + * The integer representation returned is a string representation of the integer to accommodate unsigned integers + * that are greater than `PHP_INT_MAX`. + * + * @param string $hex The hexadecimal string representation to convert + * + * @return numeric-string String representation of an integer + * + * @pure + */ + public function fromHex(string $hex): string; + + /** + * Converts a string integer representation into a hexadecimal string representation of the number + * + * @param string $number A string integer representation to convert; this must be a numeric string to accommodate + * unsigned integers that are greater than `PHP_INT_MAX`. + * + * @return non-empty-string Hexadecimal string + * + * @pure + */ + public function toHex(string $number): string; +} diff --git a/vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php b/vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php new file mode 100644 index 0000000..7112495 --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Time/BigNumberTimeConverter.php @@ -0,0 +1,48 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Time; + +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Math\BrickMathCalculator; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Time; + +/** + * Previously used to integrate moontoast/math as a bignum arithmetic library, BigNumberTimeConverter is deprecated in + * favor of GenericTimeConverter + * + * @deprecated Please transition to {@see GenericTimeConverter}. + * + * @immutable + */ +class BigNumberTimeConverter implements TimeConverterInterface +{ + private TimeConverterInterface $converter; + + public function __construct() + { + $this->converter = new GenericTimeConverter(new BrickMathCalculator()); + } + + public function calculateTime(string $seconds, string $microseconds): Hexadecimal + { + return $this->converter->calculateTime($seconds, $microseconds); + } + + public function convertTime(Hexadecimal $uuidTimestamp): Time + { + return $this->converter->convertTime($uuidTimestamp); + } +} diff --git a/vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php b/vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php new file mode 100644 index 0000000..4720450 --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Time/DegradedTimeConverter.php @@ -0,0 +1,25 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Time; + +/** + * @deprecated DegradedTimeConverter is no longer necessary for converting time on 32-bit systems. Please transition to + * {@see GenericTimeConverter}. + * + * @immutable + */ +class DegradedTimeConverter extends BigNumberTimeConverter +{ +} diff --git a/vendor/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php b/vendor/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php new file mode 100644 index 0000000..1079e88 --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php @@ -0,0 +1,112 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Time; + +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Math\CalculatorInterface; +use Ramsey\Uuid\Math\RoundingMode; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\Time; + +use function explode; +use function str_pad; + +use const STR_PAD_LEFT; + +/** + * GenericTimeConverter uses the provided calculator to calculate and convert time values + * + * @immutable + */ +class GenericTimeConverter implements TimeConverterInterface +{ + /** + * The number of 100-nanosecond intervals from the Gregorian calendar epoch to the Unix epoch. + */ + private const GREGORIAN_TO_UNIX_INTERVALS = '122192928000000000'; + + /** + * The number of 100-nanosecond intervals in one second. + */ + private const SECOND_INTERVALS = '10000000'; + + /** + * The number of 100-nanosecond intervals in one microsecond. + */ + private const MICROSECOND_INTERVALS = '10'; + + public function __construct(private CalculatorInterface $calculator) + { + } + + public function calculateTime(string $seconds, string $microseconds): Hexadecimal + { + /** @phpstan-ignore possiblyImpure.new */ + $timestamp = new Time($seconds, $microseconds); + + // Convert the seconds into a count of 100-nanosecond intervals. + $sec = $this->calculator->multiply( + $timestamp->getSeconds(), + new IntegerObject(self::SECOND_INTERVALS), /** @phpstan-ignore possiblyImpure.new */ + ); + + // Convert the microseconds into a count of 100-nanosecond intervals. + $usec = $this->calculator->multiply( + $timestamp->getMicroseconds(), + new IntegerObject(self::MICROSECOND_INTERVALS), /** @phpstan-ignore possiblyImpure.new */ + ); + + /** + * Combine the intervals of seconds and microseconds and add the count of 100-nanosecond intervals from the + * Gregorian calendar epoch to the Unix epoch. This gives us the correct count of 100-nanosecond intervals since + * the Gregorian calendar epoch for the given seconds and microseconds. + * + * @var IntegerObject $uuidTime + * @phpstan-ignore possiblyImpure.new + */ + $uuidTime = $this->calculator->add($sec, $usec, new IntegerObject(self::GREGORIAN_TO_UNIX_INTERVALS)); + + /** + * PHPStan considers CalculatorInterface::toHexadecimal, Hexadecimal:toString impure. + * + * @phpstan-ignore possiblyImpure.new + */ + return new Hexadecimal(str_pad($this->calculator->toHexadecimal($uuidTime)->toString(), 16, '0', STR_PAD_LEFT)); + } + + public function convertTime(Hexadecimal $uuidTimestamp): Time + { + // From the total, subtract the number of 100-nanosecond intervals from the Gregorian calendar epoch to the Unix + // epoch. This gives us the number of 100-nanosecond intervals from the Unix epoch, which also includes the microtime. + $epochNanoseconds = $this->calculator->subtract( + $this->calculator->toInteger($uuidTimestamp), + new IntegerObject(self::GREGORIAN_TO_UNIX_INTERVALS), /** @phpstan-ignore possiblyImpure.new */ + ); + + // Convert the 100-nanosecond intervals into seconds and microseconds. + $unixTimestamp = $this->calculator->divide( + RoundingMode::HALF_UP, + 6, + $epochNanoseconds, + new IntegerObject(self::SECOND_INTERVALS), /** @phpstan-ignore possiblyImpure.new */ + ); + + $split = explode('.', (string) $unixTimestamp, 2); + + /** @phpstan-ignore possiblyImpure.new */ + return new Time($split[0], $split[1] ?? 0); + } +} diff --git a/vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php b/vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php new file mode 100644 index 0000000..67dbf88 --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php @@ -0,0 +1,170 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Time; + +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Math\BrickMathCalculator; +use Ramsey\Uuid\Math\CalculatorInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\Time; + +use function count; +use function dechex; +use function explode; +use function is_float; +use function is_int; +use function str_pad; +use function strlen; +use function substr; + +use const STR_PAD_LEFT; +use const STR_PAD_RIGHT; + +/** + * PhpTimeConverter uses built-in PHP functions and standard math operations available to the PHP programming language + * to provide facilities for converting parts of time into representations that may be used in UUIDs + * + * @immutable + */ +class PhpTimeConverter implements TimeConverterInterface +{ + /** + * The number of 100-nanosecond intervals from the Gregorian calendar epoch to the Unix epoch. + */ + private const GREGORIAN_TO_UNIX_INTERVALS = 0x01b21dd213814000; + + /** + * The number of 100-nanosecond intervals in one second. + */ + private const SECOND_INTERVALS = 10_000_000; + + /** + * The number of 100-nanosecond intervals in one microsecond. + */ + private const MICROSECOND_INTERVALS = 10; + + private int $phpPrecision; + private CalculatorInterface $calculator; + private TimeConverterInterface $fallbackConverter; + + public function __construct( + ?CalculatorInterface $calculator = null, + ?TimeConverterInterface $fallbackConverter = null, + ) { + if ($calculator === null) { + $calculator = new BrickMathCalculator(); + } + + if ($fallbackConverter === null) { + $fallbackConverter = new GenericTimeConverter($calculator); + } + + $this->calculator = $calculator; + $this->fallbackConverter = $fallbackConverter; + $this->phpPrecision = (int) ini_get('precision'); + } + + public function calculateTime(string $seconds, string $microseconds): Hexadecimal + { + $seconds = new IntegerObject($seconds); /** @phpstan-ignore possiblyImpure.new */ + $microseconds = new IntegerObject($microseconds); /** @phpstan-ignore possiblyImpure.new */ + + // Calculate the count of 100-nanosecond intervals since the Gregorian calendar epoch + // for the given seconds and microseconds. + $uuidTime = ((int) $seconds->toString() * self::SECOND_INTERVALS) + + ((int) $microseconds->toString() * self::MICROSECOND_INTERVALS) + + self::GREGORIAN_TO_UNIX_INTERVALS; + + // Check to see whether we've overflowed the max/min integer size. + // If so, we will default to a different time converter. + // @phpstan-ignore function.alreadyNarrowedType (the integer value might have overflowed) + if (!is_int($uuidTime)) { + return $this->fallbackConverter->calculateTime( + $seconds->toString(), + $microseconds->toString(), + ); + } + + /** @phpstan-ignore possiblyImpure.new */ + return new Hexadecimal( + str_pad(dechex($uuidTime), 16, '0', STR_PAD_LEFT) + ); + } + + public function convertTime(Hexadecimal $uuidTimestamp): Time + { + $timestamp = $this->calculator->toInteger($uuidTimestamp); + + // Convert the 100-nanosecond intervals into seconds and microseconds. + $splitTime = $this->splitTime( + ((int) $timestamp->toString() - self::GREGORIAN_TO_UNIX_INTERVALS) / self::SECOND_INTERVALS, + ); + + if (count($splitTime) === 0) { + return $this->fallbackConverter->convertTime($uuidTimestamp); + } + + /** @phpstan-ignore possiblyImpure.new */ + return new Time($splitTime['sec'], $splitTime['usec']); + } + + /** + * @param float | int $time The time to split into seconds and microseconds + * + * @return string[] + * + * @pure + */ + private function splitTime(float | int $time): array + { + $split = explode('.', (string) $time, 2); + + // If the $time value is a float but $split only has 1 element, then the float math was rounded up to the next + // second, so we want to return an empty array to allow use of the fallback converter. + if (is_float($time) && count($split) === 1) { + return []; + } + + if (count($split) === 1) { + return ['sec' => $split[0], 'usec' => '0']; + } + + // If the microseconds are less than six characters AND the length of the number is greater than or equal to the + // PHP precision, then it's possible that we lost some precision for the microseconds. Return an empty array so + // that we can choose to use the fallback converter. + if (strlen($split[1]) < 6 && strlen((string) $time) >= $this->phpPrecision) { + return []; + } + + $microseconds = $split[1]; + + // Ensure the microseconds are no longer than 6 digits. If they are, + // truncate the number to the first 6 digits and round up, if needed. + if (strlen($microseconds) > 6) { + $roundingDigit = (int) substr($microseconds, 6, 1); + $microseconds = (int) substr($microseconds, 0, 6); + + if ($roundingDigit >= 5) { + $microseconds++; + } + } + + return [ + 'sec' => $split[0], + 'usec' => str_pad((string) $microseconds, 6, '0', STR_PAD_RIGHT), + ]; + } +} diff --git a/vendor/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php b/vendor/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php new file mode 100644 index 0000000..4bd4125 --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php @@ -0,0 +1,92 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter\Time; + +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Math\CalculatorInterface; +use Ramsey\Uuid\Math\RoundingMode; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\Time; + +use function explode; +use function str_pad; + +use const STR_PAD_LEFT; + +/** + * UnixTimeConverter converts Unix Epoch timestamps to/from hexadecimal values consisting of milliseconds elapsed since + * the Unix Epoch + * + * @immutable + */ +class UnixTimeConverter implements TimeConverterInterface +{ + private const MILLISECONDS = 1000; + + public function __construct(private CalculatorInterface $calculator) + { + } + + public function calculateTime(string $seconds, string $microseconds): Hexadecimal + { + /** @phpstan-ignore possiblyImpure.new */ + $timestamp = new Time($seconds, $microseconds); + + // Convert the seconds into milliseconds. + $sec = $this->calculator->multiply( + $timestamp->getSeconds(), + new IntegerObject(self::MILLISECONDS) /** @phpstan-ignore possiblyImpure.new */ + ); + + // Convert the microseconds into milliseconds; the scale is zero because we need to discard the fractional part. + $usec = $this->calculator->divide( + RoundingMode::DOWN, // Always round down to stay in the previous millisecond. + 0, + $timestamp->getMicroseconds(), + new IntegerObject(self::MILLISECONDS), /** @phpstan-ignore possiblyImpure.new */ + ); + + /** @var IntegerObject $unixTime */ + $unixTime = $this->calculator->add($sec, $usec); + + /** @phpstan-ignore possiblyImpure.new */ + return new Hexadecimal( + str_pad( + $this->calculator->toHexadecimal($unixTime)->toString(), + 12, + '0', + STR_PAD_LEFT + ), + ); + } + + public function convertTime(Hexadecimal $uuidTimestamp): Time + { + $milliseconds = $this->calculator->toInteger($uuidTimestamp); + + $unixTimestamp = $this->calculator->divide( + RoundingMode::HALF_UP, + 6, + $milliseconds, + new IntegerObject(self::MILLISECONDS), /** @phpstan-ignore possiblyImpure.new */ + ); + + $split = explode('.', (string) $unixTimestamp, 2); + + /** @phpstan-ignore possiblyImpure.new */ + return new Time($split[0], $split[1] ?? '0'); + } +} diff --git a/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php b/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php new file mode 100644 index 0000000..065e3b7 --- /dev/null +++ b/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php @@ -0,0 +1,53 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Converter; + +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Time; + +/** + * A time converter converts timestamps into representations that may be used in UUIDs + * + * @immutable + */ +interface TimeConverterInterface +{ + /** + * Uses the provided seconds and micro-seconds to calculate the count of 100-nanosecond intervals since + * UTC 00:00:00.00, 15 October 1582, for RFC 9562 (formerly RFC 4122) variant UUIDs + * + * @link https://www.rfc-editor.org/rfc/rfc9562#appendix-A RFC 9562, Appendix A. Test Vectors + * + * @param string $seconds A string representation of seconds since the Unix epoch for the time to calculate + * @param string $microseconds A string representation of the micro-seconds associated with the time to calculate + * + * @return Hexadecimal The full UUID timestamp as a Hexadecimal value + * + * @pure + */ + public function calculateTime(string $seconds, string $microseconds): Hexadecimal; + + /** + * Converts a timestamp extracted from a UUID to a Unix timestamp + * + * @param Hexadecimal $uuidTimestamp A hexadecimal representation of a UUID timestamp; a UUID timestamp is a count + * of 100-nanosecond intervals since UTC 00:00:00.00, 15 October 1582. + * + * @return Time An instance of {@see Time} + * + * @pure + */ + public function convertTime(Hexadecimal $uuidTimestamp): Time; +} diff --git a/vendor/ramsey/uuid/src/DegradedUuid.php b/vendor/ramsey/uuid/src/DegradedUuid.php new file mode 100644 index 0000000..169976e --- /dev/null +++ b/vendor/ramsey/uuid/src/DegradedUuid.php @@ -0,0 +1,25 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +/** + * @deprecated DegradedUuid is no longer necessary to represent UUIDs on 32-bit systems. + * Transition any type declarations using this class to {@see UuidInterface}. + * + * @immutable + */ +class DegradedUuid extends Uuid +{ +} diff --git a/vendor/ramsey/uuid/src/DeprecatedUuidInterface.php b/vendor/ramsey/uuid/src/DeprecatedUuidInterface.php new file mode 100644 index 0000000..91dbbc6 --- /dev/null +++ b/vendor/ramsey/uuid/src/DeprecatedUuidInterface.php @@ -0,0 +1,126 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use DateTimeInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; + +/** + * This interface encapsulates deprecated methods for ramsey/uuid + * + * @immutable + */ +interface DeprecatedUuidInterface +{ + /** + * @deprecated This method will be removed in 5.0.0. There is no alternative recommendation, so plan accordingly. + */ + public function getNumberConverter(): NumberConverterInterface; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. + * + * @return string[] + */ + public function getFieldsHex(): array; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeqHiAndReserved()}. + */ + public function getClockSeqHiAndReservedHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeqLow()}. + */ + public function getClockSeqLowHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeq()}. + */ + public function getClockSequenceHex(): string; + + /** + * @deprecated In ramsey/uuid version 5.0.0, this will be removed from the interface. It is available at + * {@see UuidV1::getDateTime()}. + */ + public function getDateTime(): DateTimeInterface; + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getLeastSignificantBitsHex(): string; + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getMostSignificantBitsHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getNode()}. + */ + public function getNodeHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeHiAndVersion()}. + */ + public function getTimeHiAndVersionHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeLow()}. + */ + public function getTimeLowHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeMid()}. + */ + public function getTimeMidHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimestamp()}. + */ + public function getTimestampHex(): string; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getVariant()}. + */ + public function getVariant(): ?int; + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getVersion()}. + */ + public function getVersion(): ?int; +} diff --git a/vendor/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php b/vendor/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php new file mode 100644 index 0000000..fb88578 --- /dev/null +++ b/vendor/ramsey/uuid/src/DeprecatedUuidMethodsTrait.php @@ -0,0 +1,326 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use DateTimeImmutable; +use DateTimeInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Exception\DateTimeException; +use Ramsey\Uuid\Exception\UnsupportedOperationException; +use Throwable; + +use function str_pad; +use function substr; + +use const STR_PAD_LEFT; + +/** + * This trait encapsulates deprecated methods for ramsey/uuid; this trait and its methods will be removed in ramsey/uuid 5.0.0. + * + * @deprecated This trait and its methods will be removed in ramsey/uuid 5.0.0. + * + * @immutable + */ +trait DeprecatedUuidMethodsTrait +{ + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeqHiAndReserved()} and use the arbitrary-precision math + * library of your choice to convert it to a string integer. + */ + public function getClockSeqHiAndReserved(): string + { + return $this->numberConverter->fromHex($this->fields->getClockSeqHiAndReserved()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeqHiAndReserved()}. + */ + public function getClockSeqHiAndReservedHex(): string + { + return $this->fields->getClockSeqHiAndReserved()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeqLow()} and use the arbitrary-precision math library of + * your choice to convert it to a string integer. + */ + public function getClockSeqLow(): string + { + return $this->numberConverter->fromHex($this->fields->getClockSeqLow()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeqLow()}. + */ + public function getClockSeqLowHex(): string + { + return $this->fields->getClockSeqLow()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeq()} and use the arbitrary-precision math library of + * your choice to convert it to a string integer. + */ + public function getClockSequence(): string + { + return $this->numberConverter->fromHex($this->fields->getClockSeq()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getClockSeq()}. + */ + public function getClockSequenceHex(): string + { + return $this->fields->getClockSeq()->toString(); + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no alternative recommendation, so plan accordingly. + */ + public function getNumberConverter(): NumberConverterInterface + { + return $this->numberConverter; + } + + /** + * @deprecated In ramsey/uuid version 5.0.0, this will be removed. It is available at {@see UuidV1::getDateTime()}. + * + * @return DateTimeImmutable An immutable instance of DateTimeInterface + * + * @throws UnsupportedOperationException if UUID is not time-based + * @throws DateTimeException if DateTime throws an exception/error + */ + public function getDateTime(): DateTimeInterface + { + if ($this->fields->getVersion() !== 1) { + throw new UnsupportedOperationException('Not a time-based UUID'); + } + + $time = $this->timeConverter->convertTime($this->fields->getTimestamp()); + + try { + return new DateTimeImmutable( + '@' + . $time->getSeconds()->toString() + . '.' + . str_pad($time->getMicroseconds()->toString(), 6, '0', STR_PAD_LEFT) + ); + } catch (Throwable $e) { + throw new DateTimeException($e->getMessage(), (int) $e->getCode(), $e); + } + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * + * @return string[] + */ + public function getFieldsHex(): array + { + return [ + 'time_low' => $this->fields->getTimeLow()->toString(), + 'time_mid' => $this->fields->getTimeMid()->toString(), + 'time_hi_and_version' => $this->fields->getTimeHiAndVersion()->toString(), + 'clock_seq_hi_and_reserved' => $this->fields->getClockSeqHiAndReserved()->toString(), + 'clock_seq_low' => $this->fields->getClockSeqLow()->toString(), + 'node' => $this->fields->getNode()->toString(), + ]; + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getLeastSignificantBits(): string + { + $leastSignificantHex = substr($this->getHex()->toString(), 16); + + return $this->numberConverter->fromHex($leastSignificantHex); + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getLeastSignificantBitsHex(): string + { + return substr($this->getHex()->toString(), 16); + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getMostSignificantBits(): string + { + $mostSignificantHex = substr($this->getHex()->toString(), 0, 16); + + return $this->numberConverter->fromHex($mostSignificantHex); + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getMostSignificantBitsHex(): string + { + return substr($this->getHex()->toString(), 0, 16); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getNode()} and use the arbitrary-precision math library of your + * choice to convert it to a string integer. + */ + public function getNode(): string + { + return $this->numberConverter->fromHex($this->fields->getNode()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getNode()}. + */ + public function getNodeHex(): string + { + return $this->fields->getNode()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeHiAndVersion()} and use the arbitrary-precision math + * library of your choice to convert it to a string integer. + */ + public function getTimeHiAndVersion(): string + { + return $this->numberConverter->fromHex($this->fields->getTimeHiAndVersion()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeHiAndVersion()}. + */ + public function getTimeHiAndVersionHex(): string + { + return $this->fields->getTimeHiAndVersion()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeLow()} and use the arbitrary-precision math library of + * your choice to convert it to a string integer. + */ + public function getTimeLow(): string + { + return $this->numberConverter->fromHex($this->fields->getTimeLow()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeLow()}. + */ + public function getTimeLowHex(): string + { + return $this->fields->getTimeLow()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeMid()} and use the arbitrary-precision math library of + * your choice to convert it to a string integer. + */ + public function getTimeMid(): string + { + return $this->numberConverter->fromHex($this->fields->getTimeMid()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimeMid()}. + */ + public function getTimeMidHex(): string + { + return $this->fields->getTimeMid()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimestamp()} and use the arbitrary-precision math library of + * your choice to convert it to a string integer. + */ + public function getTimestamp(): string + { + if ($this->fields->getVersion() !== 1) { + throw new UnsupportedOperationException('Not a time-based UUID'); + } + + return $this->numberConverter->fromHex($this->fields->getTimestamp()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getTimestamp()}. + */ + public function getTimestampHex(): string + { + if ($this->fields->getVersion() !== 1) { + throw new UnsupportedOperationException('Not a time-based UUID'); + } + + return $this->fields->getTimestamp()->toString(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getVariant()}. + */ + public function getVariant(): ?int + { + return $this->fields->getVariant(); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see \Ramsey\Uuid\Fields\FieldsInterface} instance. + * If it is a {@see \Ramsey\Uuid\Rfc4122\FieldsInterface} instance, you may call + * {@see \Ramsey\Uuid\Rfc4122\FieldsInterface::getVersion()}. + */ + public function getVersion(): ?int + { + return $this->fields->getVersion(); + } +} diff --git a/vendor/ramsey/uuid/src/Exception/BuilderNotFoundException.php b/vendor/ramsey/uuid/src/Exception/BuilderNotFoundException.php new file mode 100644 index 0000000..220ffed --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/BuilderNotFoundException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that no suitable builder could be found + */ +class BuilderNotFoundException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/DateTimeException.php b/vendor/ramsey/uuid/src/Exception/DateTimeException.php new file mode 100644 index 0000000..5f0e658 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/DateTimeException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that the PHP DateTime extension encountered an exception/error + */ +class DateTimeException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/DceSecurityException.php b/vendor/ramsey/uuid/src/Exception/DceSecurityException.php new file mode 100644 index 0000000..bd8ca4c --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/DceSecurityException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate an exception occurred while dealing with DCE Security (version 2) UUIDs + */ +class DceSecurityException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/InvalidArgumentException.php b/vendor/ramsey/uuid/src/Exception/InvalidArgumentException.php new file mode 100644 index 0000000..2a1fa3a --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/InvalidArgumentException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use InvalidArgumentException as PhpInvalidArgumentException; + +/** + * Thrown to indicate that the argument received is not valid + */ +class InvalidArgumentException extends PhpInvalidArgumentException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/InvalidBytesException.php b/vendor/ramsey/uuid/src/Exception/InvalidBytesException.php new file mode 100644 index 0000000..1c94f65 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/InvalidBytesException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that the bytes being operated on are invalid in some way + */ +class InvalidBytesException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php b/vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php new file mode 100644 index 0000000..cfc7eee --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php @@ -0,0 +1,25 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +/** + * Thrown to indicate that the string received is not a valid UUID + * + * The InvalidArgumentException that this extends is the ramsey/uuid version of this exception. It exists in the same + * namespace as this class. + */ +class InvalidUuidStringException extends InvalidArgumentException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/NameException.php b/vendor/ramsey/uuid/src/Exception/NameException.php new file mode 100644 index 0000000..ee72e16 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/NameException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that an error occurred while attempting to hash a namespace and name + */ +class NameException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/NodeException.php b/vendor/ramsey/uuid/src/Exception/NodeException.php new file mode 100644 index 0000000..0dbdd50 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/NodeException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that attempting to fetch or create a node ID encountered an error + */ +class NodeException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/RandomSourceException.php b/vendor/ramsey/uuid/src/Exception/RandomSourceException.php new file mode 100644 index 0000000..7b24604 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/RandomSourceException.php @@ -0,0 +1,27 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that the source of random data encountered an error + * + * This exception is used mostly to indicate that random_bytes() or random_int() threw an exception. However, it may be + * used for other sources of random data. + */ +class RandomSourceException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/TimeSourceException.php b/vendor/ramsey/uuid/src/Exception/TimeSourceException.php new file mode 100644 index 0000000..fc9cf36 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/TimeSourceException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate that the source of time encountered an error + */ +class TimeSourceException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/UnableToBuildUuidException.php b/vendor/ramsey/uuid/src/Exception/UnableToBuildUuidException.php new file mode 100644 index 0000000..5ba26d8 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/UnableToBuildUuidException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use RuntimeException as PhpRuntimeException; + +/** + * Thrown to indicate a builder is unable to build a UUID + */ +class UnableToBuildUuidException extends PhpRuntimeException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php b/vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php new file mode 100644 index 0000000..e1b3eda --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php @@ -0,0 +1,24 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use LogicException as PhpLogicException; + +/** + * Thrown to indicate that the requested operation is not supported + */ +class UnsupportedOperationException extends PhpLogicException implements UuidExceptionInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Exception/UuidExceptionInterface.php b/vendor/ramsey/uuid/src/Exception/UuidExceptionInterface.php new file mode 100644 index 0000000..a2f1c10 --- /dev/null +++ b/vendor/ramsey/uuid/src/Exception/UuidExceptionInterface.php @@ -0,0 +1,21 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Exception; + +use Throwable; + +interface UuidExceptionInterface extends Throwable +{ +} diff --git a/vendor/ramsey/uuid/src/FeatureSet.php b/vendor/ramsey/uuid/src/FeatureSet.php new file mode 100644 index 0000000..88ce7c4 --- /dev/null +++ b/vendor/ramsey/uuid/src/FeatureSet.php @@ -0,0 +1,383 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use Ramsey\Uuid\Builder\FallbackBuilder; +use Ramsey\Uuid\Builder\UuidBuilderInterface; +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Codec\GuidStringCodec; +use Ramsey\Uuid\Codec\StringCodec; +use Ramsey\Uuid\Converter\Number\GenericNumberConverter; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\Time\GenericTimeConverter; +use Ramsey\Uuid\Converter\Time\PhpTimeConverter; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Generator\DceSecurityGenerator; +use Ramsey\Uuid\Generator\DceSecurityGeneratorInterface; +use Ramsey\Uuid\Generator\NameGeneratorFactory; +use Ramsey\Uuid\Generator\NameGeneratorInterface; +use Ramsey\Uuid\Generator\PeclUuidNameGenerator; +use Ramsey\Uuid\Generator\PeclUuidRandomGenerator; +use Ramsey\Uuid\Generator\PeclUuidTimeGenerator; +use Ramsey\Uuid\Generator\RandomGeneratorFactory; +use Ramsey\Uuid\Generator\RandomGeneratorInterface; +use Ramsey\Uuid\Generator\TimeGeneratorFactory; +use Ramsey\Uuid\Generator\TimeGeneratorInterface; +use Ramsey\Uuid\Generator\UnixTimeGenerator; +use Ramsey\Uuid\Guid\GuidBuilder; +use Ramsey\Uuid\Math\BrickMathCalculator; +use Ramsey\Uuid\Math\CalculatorInterface; +use Ramsey\Uuid\Nonstandard\UuidBuilder as NonstandardUuidBuilder; +use Ramsey\Uuid\Provider\Dce\SystemDceSecurityProvider; +use Ramsey\Uuid\Provider\DceSecurityProviderInterface; +use Ramsey\Uuid\Provider\Node\FallbackNodeProvider; +use Ramsey\Uuid\Provider\Node\RandomNodeProvider; +use Ramsey\Uuid\Provider\Node\SystemNodeProvider; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Provider\Time\SystemTimeProvider; +use Ramsey\Uuid\Provider\TimeProviderInterface; +use Ramsey\Uuid\Rfc4122\UuidBuilder as Rfc4122UuidBuilder; +use Ramsey\Uuid\Validator\GenericValidator; +use Ramsey\Uuid\Validator\ValidatorInterface; + +use const PHP_INT_SIZE; + +/** + * FeatureSet detects and exposes available features in the current environment + * + * A feature set is used by UuidFactory to determine the available features and capabilities of the environment. + */ +class FeatureSet +{ + private ?TimeProviderInterface $timeProvider = null; + private CalculatorInterface $calculator; + private CodecInterface $codec; + private DceSecurityGeneratorInterface $dceSecurityGenerator; + private NameGeneratorInterface $nameGenerator; + private NodeProviderInterface $nodeProvider; + private NumberConverterInterface $numberConverter; + private RandomGeneratorInterface $randomGenerator; + private TimeConverterInterface $timeConverter; + private TimeGeneratorInterface $timeGenerator; + private TimeGeneratorInterface $unixTimeGenerator; + private UuidBuilderInterface $builder; + private ValidatorInterface $validator; + + /** + * @param bool $useGuids True build UUIDs using the GuidStringCodec + * @param bool $force32Bit True to force the use of 32-bit functionality (primarily for testing purposes) + * @param bool $forceNoBigNumber (obsolete) + * @param bool $ignoreSystemNode True to disable attempts to check for the system node ID (primarily for testing purposes) + * @param bool $enablePecl True to enable the use of the PeclUuidTimeGenerator to generate version 1 UUIDs + * + * @phpstan-ignore constructor.unusedParameter ($forceNoBigNumber is deprecated) + */ + public function __construct( + bool $useGuids = false, + private bool $force32Bit = false, + bool $forceNoBigNumber = false, + private bool $ignoreSystemNode = false, + private bool $enablePecl = false, + ) { + $this->randomGenerator = $this->buildRandomGenerator(); + $this->setCalculator(new BrickMathCalculator()); + $this->builder = $this->buildUuidBuilder($useGuids); + $this->codec = $this->buildCodec($useGuids); + $this->nodeProvider = $this->buildNodeProvider(); + $this->nameGenerator = $this->buildNameGenerator(); + $this->setTimeProvider(new SystemTimeProvider()); + $this->setDceSecurityProvider(new SystemDceSecurityProvider()); + $this->validator = new GenericValidator(); + + assert($this->timeProvider !== null); + $this->unixTimeGenerator = $this->buildUnixTimeGenerator(); + } + + /** + * Returns the builder configured for this environment + */ + public function getBuilder(): UuidBuilderInterface + { + return $this->builder; + } + + /** + * Returns the calculator configured for this environment + */ + public function getCalculator(): CalculatorInterface + { + return $this->calculator; + } + + /** + * Returns the codec configured for this environment + */ + public function getCodec(): CodecInterface + { + return $this->codec; + } + + /** + * Returns the DCE Security generator configured for this environment + */ + public function getDceSecurityGenerator(): DceSecurityGeneratorInterface + { + return $this->dceSecurityGenerator; + } + + /** + * Returns the name generator configured for this environment + */ + public function getNameGenerator(): NameGeneratorInterface + { + return $this->nameGenerator; + } + + /** + * Returns the node provider configured for this environment + */ + public function getNodeProvider(): NodeProviderInterface + { + return $this->nodeProvider; + } + + /** + * Returns the number converter configured for this environment + */ + public function getNumberConverter(): NumberConverterInterface + { + return $this->numberConverter; + } + + /** + * Returns the random generator configured for this environment + */ + public function getRandomGenerator(): RandomGeneratorInterface + { + return $this->randomGenerator; + } + + /** + * Returns the time converter configured for this environment + */ + public function getTimeConverter(): TimeConverterInterface + { + return $this->timeConverter; + } + + /** + * Returns the time generator configured for this environment + */ + public function getTimeGenerator(): TimeGeneratorInterface + { + return $this->timeGenerator; + } + + /** + * Returns the Unix Epoch time generator configured for this environment + */ + public function getUnixTimeGenerator(): TimeGeneratorInterface + { + return $this->unixTimeGenerator; + } + + /** + * Returns the validator configured for this environment + */ + public function getValidator(): ValidatorInterface + { + return $this->validator; + } + + /** + * Sets the calculator to use in this environment + */ + public function setCalculator(CalculatorInterface $calculator): void + { + $this->calculator = $calculator; + $this->numberConverter = $this->buildNumberConverter($calculator); + $this->timeConverter = $this->buildTimeConverter($calculator); + + if (isset($this->timeProvider)) { + $this->timeGenerator = $this->buildTimeGenerator($this->timeProvider); + } + } + + /** + * Sets the DCE Security provider to use in this environment + */ + public function setDceSecurityProvider(DceSecurityProviderInterface $dceSecurityProvider): void + { + $this->dceSecurityGenerator = $this->buildDceSecurityGenerator($dceSecurityProvider); + } + + /** + * Sets the node provider to use in this environment + */ + public function setNodeProvider(NodeProviderInterface $nodeProvider): void + { + $this->nodeProvider = $nodeProvider; + + if (isset($this->timeProvider)) { + $this->timeGenerator = $this->buildTimeGenerator($this->timeProvider); + } + } + + /** + * Sets the time provider to use in this environment + */ + public function setTimeProvider(TimeProviderInterface $timeProvider): void + { + $this->timeProvider = $timeProvider; + $this->timeGenerator = $this->buildTimeGenerator($timeProvider); + } + + /** + * Set the validator to use in this environment + */ + public function setValidator(ValidatorInterface $validator): void + { + $this->validator = $validator; + } + + /** + * Returns a codec configured for this environment + * + * @param bool $useGuids Whether to build UUIDs using the GuidStringCodec + */ + private function buildCodec(bool $useGuids = false): CodecInterface + { + if ($useGuids) { + return new GuidStringCodec($this->builder); + } + + return new StringCodec($this->builder); + } + + /** + * Returns a DCE Security generator configured for this environment + */ + private function buildDceSecurityGenerator( + DceSecurityProviderInterface $dceSecurityProvider, + ): DceSecurityGeneratorInterface { + return new DceSecurityGenerator($this->numberConverter, $this->timeGenerator, $dceSecurityProvider); + } + + /** + * Returns a node provider configured for this environment + */ + private function buildNodeProvider(): NodeProviderInterface + { + if ($this->ignoreSystemNode) { + return new RandomNodeProvider(); + } + + return new FallbackNodeProvider([new SystemNodeProvider(), new RandomNodeProvider()]); + } + + /** + * Returns a number converter configured for this environment + */ + private function buildNumberConverter(CalculatorInterface $calculator): NumberConverterInterface + { + return new GenericNumberConverter($calculator); + } + + /** + * Returns a random generator configured for this environment + */ + private function buildRandomGenerator(): RandomGeneratorInterface + { + if ($this->enablePecl) { + return new PeclUuidRandomGenerator(); + } + + return (new RandomGeneratorFactory())->getGenerator(); + } + + /** + * Returns a time generator configured for this environment + * + * @param TimeProviderInterface $timeProvider The time provider to use with + * the time generator + */ + private function buildTimeGenerator(TimeProviderInterface $timeProvider): TimeGeneratorInterface + { + if ($this->enablePecl) { + return new PeclUuidTimeGenerator(); + } + + return (new TimeGeneratorFactory($this->nodeProvider, $this->timeConverter, $timeProvider))->getGenerator(); + } + + /** + * Returns a Unix Epoch time generator configured for this environment + */ + private function buildUnixTimeGenerator(): TimeGeneratorInterface + { + return new UnixTimeGenerator($this->randomGenerator); + } + + /** + * Returns a name generator configured for this environment + */ + private function buildNameGenerator(): NameGeneratorInterface + { + if ($this->enablePecl) { + return new PeclUuidNameGenerator(); + } + + return (new NameGeneratorFactory())->getGenerator(); + } + + /** + * Returns a time converter configured for this environment + */ + private function buildTimeConverter(CalculatorInterface $calculator): TimeConverterInterface + { + $genericConverter = new GenericTimeConverter($calculator); + + if ($this->is64BitSystem()) { + return new PhpTimeConverter($calculator, $genericConverter); + } + + return $genericConverter; + } + + /** + * Returns a UUID builder configured for this environment + * + * @param bool $useGuids Whether to build UUIDs using the GuidStringCodec + */ + private function buildUuidBuilder(bool $useGuids = false): UuidBuilderInterface + { + if ($useGuids) { + return new GuidBuilder($this->numberConverter, $this->timeConverter); + } + + return new FallbackBuilder([ + new Rfc4122UuidBuilder($this->numberConverter, $this->timeConverter), + new NonstandardUuidBuilder($this->numberConverter, $this->timeConverter), + ]); + } + + /** + * Returns true if the PHP build is 64-bit + */ + private function is64BitSystem(): bool + { + return PHP_INT_SIZE === 8 && !$this->force32Bit; + } +} diff --git a/vendor/ramsey/uuid/src/Fields/FieldsInterface.php b/vendor/ramsey/uuid/src/Fields/FieldsInterface.php new file mode 100644 index 0000000..f17ea88 --- /dev/null +++ b/vendor/ramsey/uuid/src/Fields/FieldsInterface.php @@ -0,0 +1,33 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Fields; + +use Serializable; + +/** + * UUIDs consist of unsigned integers, the bytes of which are separated into fields and arranged in a particular layout + * defined by the specification for the variant + * + * @immutable + */ +interface FieldsInterface extends Serializable +{ + /** + * Returns the bytes that comprise the fields + * + * @pure + */ + public function getBytes(): string; +} diff --git a/vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php b/vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php new file mode 100644 index 0000000..9ea47c6 --- /dev/null +++ b/vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php @@ -0,0 +1,83 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Fields; + +use ValueError; + +use function base64_decode; +use function sprintf; +use function strlen; + +/** + * Provides common serialization functionality to fields + * + * @immutable + */ +trait SerializableFieldsTrait +{ + /** + * @param string $bytes The bytes that comprise the fields + */ + abstract public function __construct(string $bytes); + + /** + * Returns the bytes that comprise the fields + */ + abstract public function getBytes(): string; + + /** + * Returns a string representation of the object + */ + public function serialize(): string + { + return $this->getBytes(); + } + + /** + * @return array{bytes: string} + */ + public function __serialize(): array + { + return ['bytes' => $this->getBytes()]; + } + + /** + * Constructs the object from a serialized string representation + * + * @param string $data The serialized string representation of the object + */ + public function unserialize(string $data): void + { + if (strlen($data) === 16) { + $this->__construct($data); + } else { + $this->__construct(base64_decode($data)); + } + } + + /** + * @param array{bytes?: string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['bytes'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->unserialize($data['bytes']); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/CombGenerator.php b/vendor/ramsey/uuid/src/Generator/CombGenerator.php new file mode 100644 index 0000000..5f6fa1d --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/CombGenerator.php @@ -0,0 +1,112 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; + +use function bin2hex; +use function explode; +use function hex2bin; +use function microtime; +use function str_pad; +use function substr; + +use const STR_PAD_LEFT; + +/** + * CombGenerator generates COMBs (combined UUID/timestamp) + * + * The CombGenerator, when used with the StringCodec (and, by proxy, the TimestampLastCombCodec) or the + * TimestampFirstCombCodec, combines the current timestamp with a UUID (hence the name "COMB"). The timestamp either + * appears as the first or last 48 bits of the COMB, depending on the codec used. + * + * By default, COMBs will have the timestamp set as the last 48 bits of the identifier. + * + * ``` + * $factory = new UuidFactory(); + * + * $factory->setRandomGenerator(new CombGenerator( + * $factory->getRandomGenerator(), + * $factory->getNumberConverter(), + * )); + * + * $comb = $factory->uuid4(); + * ``` + * + * To generate a COMB with the timestamp as the first 48 bits, set the TimestampFirstCombCodec as the codec. + * + * ``` + * $factory->setCodec(new TimestampFirstCombCodec($factory->getUuidBuilder())); + * ``` + * + * @deprecated Please migrate to {@link https://uuid.ramsey.dev/en/stable/rfc4122/version7.html Version 7, Unix Epoch Time UUIDs}. + * + * @link https://web.archive.org/web/20240118030355/https://www.informit.com/articles/printerfriendly/25862 The Cost of GUIDs as Primary Keys + */ +class CombGenerator implements RandomGeneratorInterface +{ + public const TIMESTAMP_BYTES = 6; + + public function __construct( + private RandomGeneratorInterface $generator, + private NumberConverterInterface $numberConverter + ) { + } + + /** + * @throws InvalidArgumentException if $length is not a positive integer greater than or equal to CombGenerator::TIMESTAMP_BYTES + * + * @inheritDoc + */ + public function generate(int $length): string + { + if ($length < self::TIMESTAMP_BYTES) { + throw new InvalidArgumentException( + 'Length must be a positive integer greater than or equal to ' . self::TIMESTAMP_BYTES + ); + } + + if ($length % 2 !== 0) { + throw new InvalidArgumentException('Length must be an even number'); + } + + $hash = ''; + + /** @phpstan-ignore greater.alwaysTrue (TIMESTAMP_BYTES constant could change in child classes) */ + if (self::TIMESTAMP_BYTES > 0 && $length > self::TIMESTAMP_BYTES) { + $hash = $this->generator->generate($length - self::TIMESTAMP_BYTES); + } + + $lsbTime = str_pad( + $this->numberConverter->toHex($this->timestamp()), + self::TIMESTAMP_BYTES * 2, + '0', + STR_PAD_LEFT, + ); + + return (string) hex2bin(str_pad(bin2hex($hash), $length - self::TIMESTAMP_BYTES, '0') . $lsbTime); + } + + /** + * Returns the current timestamp as a string integer, precise to 0.00001 seconds + */ + private function timestamp(): string + { + $time = explode(' ', microtime(false)); + + return $time[1] . substr($time[0], 2, 5); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/DceSecurityGenerator.php b/vendor/ramsey/uuid/src/Generator/DceSecurityGenerator.php new file mode 100644 index 0000000..71192c0 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/DceSecurityGenerator.php @@ -0,0 +1,133 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Exception\DceSecurityException; +use Ramsey\Uuid\Provider\DceSecurityProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Uuid; + +use function hex2bin; +use function in_array; +use function pack; +use function str_pad; +use function strlen; +use function substr_replace; + +use const STR_PAD_LEFT; + +/** + * DceSecurityGenerator generates strings of binary data based on a local domain, local identifier, node ID, clock + * sequence, and the current time + */ +class DceSecurityGenerator implements DceSecurityGeneratorInterface +{ + private const DOMAINS = [ + Uuid::DCE_DOMAIN_PERSON, + Uuid::DCE_DOMAIN_GROUP, + Uuid::DCE_DOMAIN_ORG, + ]; + + /** + * Upper bounds for the clock sequence in DCE Security UUIDs. + */ + private const CLOCK_SEQ_HIGH = 63; + + /** + * Lower bounds for the clock sequence in DCE Security UUIDs. + */ + private const CLOCK_SEQ_LOW = 0; + + public function __construct( + private NumberConverterInterface $numberConverter, + private TimeGeneratorInterface $timeGenerator, + private DceSecurityProviderInterface $dceSecurityProvider, + ) { + } + + public function generate( + int $localDomain, + ?IntegerObject $localIdentifier = null, + ?Hexadecimal $node = null, + ?int $clockSeq = null, + ): string { + if (!in_array($localDomain, self::DOMAINS)) { + throw new DceSecurityException('Local domain must be a valid DCE Security domain'); + } + + if ($localIdentifier && $localIdentifier->isNegative()) { + throw new DceSecurityException( + 'Local identifier out of bounds; it must be a value between 0 and 4294967295', + ); + } + + if ($clockSeq > self::CLOCK_SEQ_HIGH || $clockSeq < self::CLOCK_SEQ_LOW) { + throw new DceSecurityException('Clock sequence out of bounds; it must be a value between 0 and 63'); + } + + switch ($localDomain) { + case Uuid::DCE_DOMAIN_ORG: + if ($localIdentifier === null) { + throw new DceSecurityException('A local identifier must be provided for the org domain'); + } + + break; + case Uuid::DCE_DOMAIN_PERSON: + if ($localIdentifier === null) { + $localIdentifier = $this->dceSecurityProvider->getUid(); + } + + break; + case Uuid::DCE_DOMAIN_GROUP: + default: + if ($localIdentifier === null) { + $localIdentifier = $this->dceSecurityProvider->getGid(); + } + + break; + } + + $identifierHex = $this->numberConverter->toHex($localIdentifier->toString()); + + // The maximum value for the local identifier is 0xffffffff, or 4,294,967,295. This is 8 hexadecimal digits, so + // if the length of hexadecimal digits is greater than 8, we know the value is greater than 0xffffffff. + if (strlen($identifierHex) > 8) { + throw new DceSecurityException( + 'Local identifier out of bounds; it must be a value between 0 and 4294967295', + ); + } + + $domainByte = pack('n', $localDomain)[1]; + $identifierBytes = (string) hex2bin(str_pad($identifierHex, 8, '0', STR_PAD_LEFT)); + + if ($node instanceof Hexadecimal) { + $node = $node->toString(); + } + + // Shift the clock sequence 8 bits to the left, so it matches 0x3f00. + if ($clockSeq !== null) { + $clockSeq = $clockSeq << 8; + } + + $bytes = $this->timeGenerator->generate($node, $clockSeq); + + // Replace bytes in the time-based UUID with DCE Security values. + $bytes = substr_replace($bytes, $identifierBytes, 0, 4); + + return substr_replace($bytes, $domainByte, 9, 1); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/DceSecurityGeneratorInterface.php b/vendor/ramsey/uuid/src/Generator/DceSecurityGeneratorInterface.php new file mode 100644 index 0000000..f52eb55 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/DceSecurityGeneratorInterface.php @@ -0,0 +1,48 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Rfc4122\UuidV2; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; + +/** + * A DCE Security generator generates strings of binary data based on a local domain, local identifier, node ID, clock + * sequence, and the current time + * + * @see UuidV2 + */ +interface DceSecurityGeneratorInterface +{ + /** + * Generate a binary string from a local domain, local identifier, node ID, clock sequence, and current time + * + * @param int $localDomain The local domain to use when generating bytes, according to DCE Security + * @param IntegerObject | null $localIdentifier The local identifier for the given domain; this may be a UID or GID + * on POSIX systems if the local domain is "person" or "group," or it may be a site-defined identifier if the + * local domain is "org" + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return string A binary string + */ + public function generate( + int $localDomain, + ?IntegerObject $localIdentifier = null, + ?Hexadecimal $node = null, + ?int $clockSeq = null, + ): string; +} diff --git a/vendor/ramsey/uuid/src/Generator/DefaultNameGenerator.php b/vendor/ramsey/uuid/src/Generator/DefaultNameGenerator.php new file mode 100644 index 0000000..cf37b45 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/DefaultNameGenerator.php @@ -0,0 +1,42 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Exception\NameException; +use Ramsey\Uuid\UuidInterface; +use ValueError; + +use function hash; + +/** + * DefaultNameGenerator generates strings of binary data based on a namespace, name, and hashing algorithm + */ +class DefaultNameGenerator implements NameGeneratorInterface +{ + /** + * @pure + */ + public function generate(UuidInterface $ns, string $name, string $hashAlgorithm): string + { + try { + return hash($hashAlgorithm, $ns->getBytes() . $name, true); + } catch (ValueError $e) { + throw new NameException( + message: sprintf('Unable to hash namespace and name with algorithm \'%s\'', $hashAlgorithm), + previous: $e, + ); + } + } +} diff --git a/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php b/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php new file mode 100644 index 0000000..6ded59d --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php @@ -0,0 +1,118 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Exception\RandomSourceException; +use Ramsey\Uuid\Exception\TimeSourceException; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Provider\TimeProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Throwable; + +use function dechex; +use function hex2bin; +use function is_int; +use function pack; +use function preg_match; +use function sprintf; +use function str_pad; +use function strlen; + +use const STR_PAD_LEFT; + +/** + * DefaultTimeGenerator generates strings of binary data based on a node ID, clock sequence, and the current time + */ +class DefaultTimeGenerator implements TimeGeneratorInterface +{ + public function __construct( + private NodeProviderInterface $nodeProvider, + private TimeConverterInterface $timeConverter, + private TimeProviderInterface $timeProvider, + ) { + } + + /** + * @throws InvalidArgumentException if the parameters contain invalid values + * @throws RandomSourceException if random_int() throws an exception/error + * + * @inheritDoc + */ + public function generate($node = null, ?int $clockSeq = null): string + { + if ($node instanceof Hexadecimal) { + $node = $node->toString(); + } + + $node = $this->getValidNode($node); + + if ($clockSeq === null) { + try { + // This does not use "stable storage"; see RFC 9562, section 6.3. + $clockSeq = random_int(0, 0x3fff); + } catch (Throwable $exception) { + throw new RandomSourceException($exception->getMessage(), (int) $exception->getCode(), $exception); + } + } + + $time = $this->timeProvider->getTime(); + + $uuidTime = $this->timeConverter->calculateTime( + $time->getSeconds()->toString(), + $time->getMicroseconds()->toString() + ); + + $timeHex = str_pad($uuidTime->toString(), 16, '0', STR_PAD_LEFT); + + if (strlen($timeHex) !== 16) { + throw new TimeSourceException(sprintf('The generated time of \'%s\' is larger than expected', $timeHex)); + } + + $timeBytes = (string) hex2bin($timeHex); + + return $timeBytes[4] . $timeBytes[5] . $timeBytes[6] . $timeBytes[7] + . $timeBytes[2] . $timeBytes[3] . $timeBytes[0] . $timeBytes[1] + . pack('n*', $clockSeq) . $node; + } + + /** + * Uses the node provider given when constructing this instance to get the node ID (usually a MAC address) + * + * @param int | string | null $node A node value that may be used to override the node provider + * + * @return string 6-byte binary string representation of the node + * + * @throws InvalidArgumentException + */ + private function getValidNode(int | string | null $node): string + { + if ($node === null) { + $node = $this->nodeProvider->getNode(); + } + + // Convert the node to hex if it is still an integer. + if (is_int($node)) { + $node = dechex($node); + } + + if (!preg_match('/^[A-Fa-f0-9]+$/', (string) $node) || strlen((string) $node) > 12) { + throw new InvalidArgumentException('Invalid node value'); + } + + return (string) hex2bin(str_pad((string) $node, 12, '0', STR_PAD_LEFT)); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/NameGeneratorFactory.php b/vendor/ramsey/uuid/src/Generator/NameGeneratorFactory.php new file mode 100644 index 0000000..d68e94b --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/NameGeneratorFactory.php @@ -0,0 +1,29 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +/** + * NameGeneratorFactory retrieves a default name generator, based on the environment + */ +class NameGeneratorFactory +{ + /** + * Returns a default name generator, based on the current environment + */ + public function getGenerator(): NameGeneratorInterface + { + return new DefaultNameGenerator(); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/NameGeneratorInterface.php b/vendor/ramsey/uuid/src/Generator/NameGeneratorInterface.php new file mode 100644 index 0000000..f0fb8da --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/NameGeneratorInterface.php @@ -0,0 +1,37 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\UuidInterface; + +/** + * A name generator generates strings of binary data created by hashing together a namespace with a name, according to a + * hashing algorithm + */ +interface NameGeneratorInterface +{ + /** + * Generate a binary string from a namespace and name hashed together with the specified hashing algorithm + * + * @param UuidInterface $ns The namespace + * @param string $name The name to use for creating a UUID + * @param string $hashAlgorithm The hashing algorithm to use + * + * @return string A binary string + * + * @pure + */ + public function generate(UuidInterface $ns, string $name, string $hashAlgorithm): string; +} diff --git a/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php b/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php new file mode 100644 index 0000000..d13bafc --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php @@ -0,0 +1,48 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Exception\NameException; +use Ramsey\Uuid\UuidInterface; + +use function sprintf; +use function uuid_generate_md5; +use function uuid_generate_sha1; +use function uuid_parse; + +/** + * PeclUuidNameGenerator generates strings of binary data from a namespace and a name, using ext-uuid + * + * @link https://pecl.php.net/package/uuid ext-uuid + */ +class PeclUuidNameGenerator implements NameGeneratorInterface +{ + /** + * @pure + */ + public function generate(UuidInterface $ns, string $name, string $hashAlgorithm): string + { + $uuid = match ($hashAlgorithm) { + 'md5' => uuid_generate_md5($ns->toString(), $name), /** @phpstan-ignore possiblyImpure.functionCall */ + 'sha1' => uuid_generate_sha1($ns->toString(), $name), /** @phpstan-ignore possiblyImpure.functionCall */ + default => throw new NameException( + sprintf('Unable to hash namespace and name with algorithm \'%s\'', $hashAlgorithm), + ), + }; + + /** @phpstan-ignore possiblyImpure.functionCall */ + return (string) uuid_parse($uuid); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php b/vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php new file mode 100644 index 0000000..6ad45ac --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php @@ -0,0 +1,35 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use function uuid_create; +use function uuid_parse; + +use const UUID_TYPE_RANDOM; + +/** + * PeclUuidRandomGenerator generates strings of random binary data using ext-uuid + * + * @link https://pecl.php.net/package/uuid ext-uuid + */ +class PeclUuidRandomGenerator implements RandomGeneratorInterface +{ + public function generate(int $length): string + { + $uuid = uuid_create(UUID_TYPE_RANDOM); + + return (string) uuid_parse($uuid); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php b/vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php new file mode 100644 index 0000000..558abf7 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php @@ -0,0 +1,38 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use function uuid_create; +use function uuid_parse; + +use const UUID_TYPE_TIME; + +/** + * PeclUuidTimeGenerator generates strings of binary data for time-base UUIDs, using ext-uuid + * + * @link https://pecl.php.net/package/uuid ext-uuid + */ +class PeclUuidTimeGenerator implements TimeGeneratorInterface +{ + /** + * @inheritDoc + */ + public function generate($node = null, ?int $clockSeq = null): string + { + $uuid = uuid_create(UUID_TYPE_TIME); + + return (string) uuid_parse($uuid); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php b/vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php new file mode 100644 index 0000000..c169e63 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php @@ -0,0 +1,40 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Exception\RandomSourceException; +use Throwable; + +/** + * RandomBytesGenerator generates strings of random binary data using the built-in `random_bytes()` PHP function + * + * @link http://php.net/random_bytes random_bytes() + */ +class RandomBytesGenerator implements RandomGeneratorInterface +{ + /** + * @throws RandomSourceException if random_bytes() throws an exception/error + * + * @inheritDoc + */ + public function generate(int $length): string + { + try { + return random_bytes($length); + } catch (Throwable $exception) { + throw new RandomSourceException($exception->getMessage(), (int) $exception->getCode(), $exception); + } + } +} diff --git a/vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php b/vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php new file mode 100644 index 0000000..f4c3a6f --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php @@ -0,0 +1,29 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +/** + * RandomGeneratorFactory retrieves a default random generator, based on the environment + */ +class RandomGeneratorFactory +{ + /** + * Returns a default random generator, based on the current environment + */ + public function getGenerator(): RandomGeneratorInterface + { + return new RandomBytesGenerator(); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php b/vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php new file mode 100644 index 0000000..ddd8732 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php @@ -0,0 +1,30 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +/** + * A random generator generates strings of random binary data + */ +interface RandomGeneratorInterface +{ + /** + * Generates a string of randomized binary data + * + * @param int<1, max> $length The number of bytes to generate of random binary data + * + * @return string A binary string + */ + public function generate(int $length): string; +} diff --git a/vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php b/vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php new file mode 100644 index 0000000..b6d401d --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/RandomLibAdapter.php @@ -0,0 +1,54 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use RandomLib\Factory; +use RandomLib\Generator; + +/** + * RandomLibAdapter generates strings of random binary data using the paragonie/random-lib library + * + * @deprecated This class will be removed in 5.0.0. Use the default RandomBytesGenerator or implement your own generator + * that implements RandomGeneratorInterface. + * + * @link https://packagist.org/packages/paragonie/random-lib paragonie/random-lib + */ +class RandomLibAdapter implements RandomGeneratorInterface +{ + private Generator $generator; + + /** + * Constructs a RandomLibAdapter + * + * By default, if no Generator is passed in, this creates a high-strength generator to use when generating random + * binary data. + * + * @param Generator | null $generator The generator to use when generating binary data + */ + public function __construct(?Generator $generator = null) + { + if ($generator === null) { + $factory = new Factory(); + $generator = $factory->getHighStrengthGenerator(); + } + + $this->generator = $generator; + } + + public function generate(int $length): string + { + return $this->generator->generate($length); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php b/vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php new file mode 100644 index 0000000..433e74c --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php @@ -0,0 +1,40 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Provider\TimeProviderInterface; + +/** + * TimeGeneratorFactory retrieves a default time generator, based on the environment + */ +class TimeGeneratorFactory +{ + public function __construct( + private NodeProviderInterface $nodeProvider, + private TimeConverterInterface $timeConverter, + private TimeProviderInterface $timeProvider, + ) { + } + + /** + * Returns a default time generator, based on the current environment + */ + public function getGenerator(): TimeGeneratorInterface + { + return new DefaultTimeGenerator($this->nodeProvider, $this->timeConverter, $this->timeProvider); + } +} diff --git a/vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php b/vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php new file mode 100644 index 0000000..c15d820 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php @@ -0,0 +1,35 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Ramsey\Uuid\Type\Hexadecimal; + +/** + * A time generator generates strings of binary data based on a node ID, clock sequence, and the current time + */ +interface TimeGeneratorInterface +{ + /** + * Generate a binary string from a node ID, clock sequence, and current time + * + * @param Hexadecimal | int | string | null $node A 48-bit number representing the hardware address; this number may + * be represented as an integer or a hexadecimal string + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return string A binary string + */ + public function generate($node = null, ?int $clockSeq = null): string; +} diff --git a/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php b/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php new file mode 100644 index 0000000..a2615f1 --- /dev/null +++ b/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php @@ -0,0 +1,165 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Generator; + +use Brick\Math\BigInteger; +use DateTimeInterface; +use Ramsey\Uuid\Type\Hexadecimal; + +use function assert; +use function hash; +use function pack; +use function str_pad; +use function strlen; +use function substr; +use function substr_replace; +use function unpack; + +use const PHP_INT_SIZE; +use const STR_PAD_LEFT; + +/** + * UnixTimeGenerator generates bytes, combining a 48-bit timestamp in milliseconds since the Unix Epoch with 80 random bits + * + * Code and concepts within this class are borrowed from the symfony/uid package and are used under the terms of the MIT + * license distributed with symfony/uid. + * + * symfony/uid is copyright (c) Fabien Potencier. + * + * @link https://symfony.com/components/Uid Symfony Uid component + * @link https://github.com/symfony/uid/blob/4f9f537e57261519808a7ce1d941490736522bbc/UuidV7.php Symfony UuidV7 class + * @link https://github.com/symfony/uid/blob/6.2/LICENSE MIT License + */ +class UnixTimeGenerator implements TimeGeneratorInterface +{ + private static string $time = ''; + private static ?string $seed = null; + private static int $seedIndex = 0; + + /** @var int[] */ + private static array $rand = []; + + /** @var int[] */ + private static array $seedParts; + + public function __construct( + private RandomGeneratorInterface $randomGenerator, + private int $intSize = PHP_INT_SIZE, + ) { + } + + /** + * @param Hexadecimal | int | string | null $node Unused in this generator + * @param int | null $clockSeq Unused in this generator + * @param DateTimeInterface | null $dateTime A date-time instance to use when generating bytes + */ + public function generate($node = null, ?int $clockSeq = null, ?DateTimeInterface $dateTime = null): string + { + if ($dateTime === null) { + $time = microtime(false); + $time = substr($time, 11) . substr($time, 2, 3); + } else { + $time = $dateTime->format('Uv'); + } + + if ($time > self::$time || ($dateTime !== null && $time !== self::$time)) { + $this->randomize($time); + } else { + $time = $this->increment(); + } + + if ($this->intSize >= 8) { + $time = substr(pack('J', (int) $time), -6); + } else { + $time = str_pad(BigInteger::of($time)->toBytes(false), 6, "\x00", STR_PAD_LEFT); + } + + assert(strlen($time) === 6); + + return $time . pack('n*', self::$rand[1], self::$rand[2], self::$rand[3], self::$rand[4], self::$rand[5]); + } + + private function randomize(string $time): void + { + if (self::$seed === null) { + $seed = $this->randomGenerator->generate(16); + self::$seed = $seed; + } else { + $seed = $this->randomGenerator->generate(10); + } + + /** @var int[] $rand */ + $rand = unpack('n*', $seed); + $rand[1] &= 0x03ff; + + self::$rand = $rand; + self::$time = $time; + } + + /** + * Special thanks to Nicolas Grekas () for sharing the following information: + * + * Within the same ms, we increment the rand part by a random 24-bit number. + * + * Instead of getting this number from random_bytes(), which is slow, we get it by sha512-hashing self::$seed. This + * produces 64 bytes of entropy, which we need to split in a list of 24-bit numbers. `unpack()` first splits them + * into 16 x 32-bit numbers; we take the first byte of each number to get 5 extra 24-bit numbers. Then, we consume + * each number one-by-one and run this logic every 21 iterations. + * + * `self::$rand` holds the random part of the UUID, split into 5 x 16-bit numbers for x86 portability. We increment + * this random part by the next 24-bit number in the `self::$seedParts` list and decrement `self::$seedIndex`. + */ + private function increment(): string + { + if (self::$seedIndex === 0 && self::$seed !== null) { + self::$seed = hash('sha512', self::$seed, true); + + /** @var int[] $s */ + $s = unpack('l*', self::$seed); + $s[] = ($s[1] >> 8 & 0xff0000) | ($s[2] >> 16 & 0xff00) | ($s[3] >> 24 & 0xff); + $s[] = ($s[4] >> 8 & 0xff0000) | ($s[5] >> 16 & 0xff00) | ($s[6] >> 24 & 0xff); + $s[] = ($s[7] >> 8 & 0xff0000) | ($s[8] >> 16 & 0xff00) | ($s[9] >> 24 & 0xff); + $s[] = ($s[10] >> 8 & 0xff0000) | ($s[11] >> 16 & 0xff00) | ($s[12] >> 24 & 0xff); + $s[] = ($s[13] >> 8 & 0xff0000) | ($s[14] >> 16 & 0xff00) | ($s[15] >> 24 & 0xff); + + self::$seedParts = $s; + self::$seedIndex = 21; + } + + self::$rand[5] = 0xffff & $carry = self::$rand[5] + 1 + (self::$seedParts[self::$seedIndex--] & 0xffffff); + self::$rand[4] = 0xffff & $carry = self::$rand[4] + ($carry >> 16); + self::$rand[3] = 0xffff & $carry = self::$rand[3] + ($carry >> 16); + self::$rand[2] = 0xffff & $carry = self::$rand[2] + ($carry >> 16); + self::$rand[1] += $carry >> 16; + + if (0xfc00 & self::$rand[1]) { + $time = self::$time; + $mtime = (int) substr($time, -9); + + if ($this->intSize >= 8 || strlen($time) < 10) { + $time = (string) ((int) $time + 1); + } elseif ($mtime === 999999999) { + $time = (1 + (int) substr($time, 0, -9)) . '000000000'; + } else { + $mtime++; + $time = substr_replace($time, str_pad((string) $mtime, 9, '0', STR_PAD_LEFT), -9); + } + + $this->randomize($time); + } + + return self::$time; + } +} diff --git a/vendor/ramsey/uuid/src/Guid/Fields.php b/vendor/ramsey/uuid/src/Guid/Fields.php new file mode 100644 index 0000000..58aa5e1 --- /dev/null +++ b/vendor/ramsey/uuid/src/Guid/Fields.php @@ -0,0 +1,180 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Guid; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Fields\SerializableFieldsTrait; +use Ramsey\Uuid\Rfc4122\FieldsInterface; +use Ramsey\Uuid\Rfc4122\MaxTrait; +use Ramsey\Uuid\Rfc4122\NilTrait; +use Ramsey\Uuid\Rfc4122\VariantTrait; +use Ramsey\Uuid\Rfc4122\VersionTrait; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Uuid; + +use function bin2hex; +use function dechex; +use function hexdec; +use function pack; +use function sprintf; +use function str_pad; +use function strlen; +use function substr; +use function unpack; + +use const STR_PAD_LEFT; + +/** + * GUIDs consist of a set of named fields, according to RFC 9562 (formerly RFC 4122) + * + * @see Guid + * + * @immutable + */ +final class Fields implements FieldsInterface +{ + use MaxTrait; + use NilTrait; + use SerializableFieldsTrait; + use VariantTrait; + use VersionTrait; + + /** + * @param string $bytes A 16-byte binary string representation of a UUID + * + * @throws InvalidArgumentException if the byte string is not exactly 16 bytes + * @throws InvalidArgumentException if the byte string does not represent a GUID + * @throws InvalidArgumentException if the byte string does not contain a valid version + */ + public function __construct(private string $bytes) + { + if (strlen($this->bytes) !== 16) { + throw new InvalidArgumentException( + 'The byte string must be 16 bytes long; received ' . strlen($this->bytes) . ' bytes', + ); + } + + if (!$this->isCorrectVariant()) { + throw new InvalidArgumentException( + 'The byte string received does not conform to the RFC 9562 (formerly RFC 4122) ' + . 'or Microsoft Corporation variants', + ); + } + + if (!$this->isCorrectVersion()) { + throw new InvalidArgumentException('The byte string received does not contain a valid version'); + } + } + + public function getBytes(): string + { + return $this->bytes; + } + + public function getTimeLow(): Hexadecimal + { + // Swap the bytes from little endian to network byte order. + /** @var string[] $hex */ + $hex = unpack( + 'H*', + pack( + 'v*', + hexdec(bin2hex(substr($this->bytes, 2, 2))), + hexdec(bin2hex(substr($this->bytes, 0, 2))), + ), + ); + + return new Hexadecimal($hex[1] ?? ''); + } + + public function getTimeMid(): Hexadecimal + { + // Swap the bytes from little endian to network byte order. + /** @var string[] $hex */ + $hex = unpack('H*', pack('v', hexdec(bin2hex(substr($this->bytes, 4, 2))))); + + return new Hexadecimal($hex[1] ?? ''); + } + + public function getTimeHiAndVersion(): Hexadecimal + { + // Swap the bytes from little endian to network byte order. + /** @var string[] $hex */ + $hex = unpack('H*', pack('v', hexdec(bin2hex(substr($this->bytes, 6, 2))))); + + return new Hexadecimal($hex[1] ?? ''); + } + + public function getTimestamp(): Hexadecimal + { + return new Hexadecimal(sprintf( + '%03x%04s%08s', + hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff, + $this->getTimeMid()->toString(), + $this->getTimeLow()->toString() + )); + } + + public function getClockSeq(): Hexadecimal + { + if ($this->isMax()) { + $clockSeq = 0xffff; + } elseif ($this->isNil()) { + $clockSeq = 0x0000; + } else { + $clockSeq = hexdec(bin2hex(substr($this->bytes, 8, 2))) & 0x3fff; + } + + return new Hexadecimal(str_pad(dechex($clockSeq), 4, '0', STR_PAD_LEFT)); + } + + public function getClockSeqHiAndReserved(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 8, 1))); + } + + public function getClockSeqLow(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 9, 1))); + } + + public function getNode(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 10))); + } + + public function getVersion(): ?int + { + if ($this->isNil() || $this->isMax()) { + return null; + } + + /** @var int[] $parts */ + $parts = unpack('n*', $this->bytes); + + return ($parts[4] >> 4) & 0x00f; + } + + private function isCorrectVariant(): bool + { + if ($this->isNil() || $this->isMax()) { + return true; + } + + $variant = $this->getVariant(); + + return $variant === Uuid::RFC_4122 || $variant === Uuid::RESERVED_MICROSOFT; + } +} diff --git a/vendor/ramsey/uuid/src/Guid/Guid.php b/vendor/ramsey/uuid/src/Guid/Guid.php new file mode 100644 index 0000000..af551cf --- /dev/null +++ b/vendor/ramsey/uuid/src/Guid/Guid.php @@ -0,0 +1,57 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Guid; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Uuid; + +/** + * Guid represents a UUID with "native" (little-endian) byte order + * + * From Wikipedia: + * + * > The first three fields are unsigned 32- and 16-bit integers and are subject to swapping, while the last two fields + * > consist of uninterpreted bytes, not subject to swapping. This byte swapping applies even for versions 3, 4, and 5, + * > where the canonical fields do not correspond to the content of the UUID. + * + * The first three fields of a GUID are encoded in little-endian byte order, while the last three fields are in network + * (big-endian) byte order. This is according to the history of the Microsoft GUID definition. + * + * According to the .NET Guid.ToByteArray method documentation: + * + * > Note that the order of bytes in the returned byte array is different from the string representation of a Guid value. + * > The order of the beginning four-byte group and the next two two-byte groups is reversed, whereas the order of the + * > last two-byte group and the closing six-byte group is the same. + * + * @link https://en.wikipedia.org/wiki/Universally_unique_identifier#Variants UUID Variants on Wikipedia + * @link https://docs.microsoft.com/en-us/windows/win32/api/guiddef/ns-guiddef-guid Windows GUID structure + * @link https://docs.microsoft.com/en-us/dotnet/api/system.guid .NET Guid Struct + * @link https://docs.microsoft.com/en-us/dotnet/api/system.guid.tobytearray .NET Guid.ToByteArray Method + * + * @immutable + */ +final class Guid extends Uuid +{ + public function __construct( + Fields $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Guid/GuidBuilder.php b/vendor/ramsey/uuid/src/Guid/GuidBuilder.php new file mode 100644 index 0000000..db743d9 --- /dev/null +++ b/vendor/ramsey/uuid/src/Guid/GuidBuilder.php @@ -0,0 +1,76 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Guid; + +use Ramsey\Uuid\Builder\UuidBuilderInterface; +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\UnableToBuildUuidException; +use Ramsey\Uuid\UuidInterface; +use Throwable; + +/** + * GuidBuilder builds instances of Guid + * + * @see Guid + * + * @immutable + */ +class GuidBuilder implements UuidBuilderInterface +{ + /** + * @param NumberConverterInterface $numberConverter The number converter to use when constructing the Guid + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to Unix timestamps + */ + public function __construct( + private NumberConverterInterface $numberConverter, + private TimeConverterInterface $timeConverter, + ) { + } + + /** + * Builds and returns a Guid + * + * @param CodecInterface $codec The codec to use for building this Guid instance + * @param string $bytes The byte string from which to construct a UUID + * + * @return Guid The GuidBuilder returns an instance of Ramsey\Uuid\Guid\Guid + * + * @pure + */ + public function build(CodecInterface $codec, string $bytes): UuidInterface + { + try { + /** @phpstan-ignore possiblyImpure.new */ + return new Guid($this->buildFields($bytes), $this->numberConverter, $codec, $this->timeConverter); + } catch (Throwable $e) { + /** @phpstan-ignore possiblyImpure.methodCall, possiblyImpure.methodCall */ + throw new UnableToBuildUuidException($e->getMessage(), (int) $e->getCode(), $e); + } + } + + /** + * Proxy method to allow injecting a mock for testing + * + * @pure + */ + protected function buildFields(string $bytes): Fields + { + /** @phpstan-ignore possiblyImpure.new */ + return new Fields($bytes); + } +} diff --git a/vendor/ramsey/uuid/src/Lazy/LazyUuidFromString.php b/vendor/ramsey/uuid/src/Lazy/LazyUuidFromString.php new file mode 100644 index 0000000..8d3129c --- /dev/null +++ b/vendor/ramsey/uuid/src/Lazy/LazyUuidFromString.php @@ -0,0 +1,426 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Lazy; + +use DateTimeInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Exception\UnsupportedOperationException; +use Ramsey\Uuid\Fields\FieldsInterface; +use Ramsey\Uuid\Rfc4122\UuidV1; +use Ramsey\Uuid\Rfc4122\UuidV6; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\UuidFactory; +use Ramsey\Uuid\UuidInterface; +use ValueError; + +use function assert; +use function bin2hex; +use function hex2bin; +use function sprintf; +use function str_replace; +use function substr; + +/** + * Lazy version of a UUID: its format has not been determined yet, so it is mostly only usable for string/bytes + * conversion. This object optimizes instantiation, serialization and string conversion time, at the cost of increased + * overhead for more advanced UUID operations. + * + * > [!NOTE] + * > The {@see FieldsInterface} does not declare methods that deprecated API relies upon: the API has been ported from + * > the {@see \Ramsey\Uuid\Uuid} definition, and is deprecated anyway. + * + * > [!NOTE] + * > The deprecated API from {@see \Ramsey\Uuid\Uuid} is in use here (on purpose): it will be removed once the + * > deprecated API is gone from this class too. + * + * @internal this type is used internally for performance reasons and is not supposed to be directly referenced in consumer libraries. + */ +final class LazyUuidFromString implements UuidInterface +{ + public const VALID_REGEX = '/\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/ms'; + + private ?UuidInterface $unwrapped = null; + + /** + * @param non-empty-string $uuid + */ + public function __construct(private string $uuid) + { + } + + public static function fromBytes(string $bytes): self + { + $base16Uuid = bin2hex($bytes); + + return new self( + substr($base16Uuid, 0, 8) + . '-' + . substr($base16Uuid, 8, 4) + . '-' + . substr($base16Uuid, 12, 4) + . '-' + . substr($base16Uuid, 16, 4) + . '-' + . substr($base16Uuid, 20, 12) + ); + } + + public function serialize(): string + { + return $this->uuid; + } + + /** + * @return array{string: non-empty-string} + */ + public function __serialize(): array + { + return ['string' => $this->uuid]; + } + + /** + * {@inheritDoc} + * + * @param non-empty-string $data + */ + public function unserialize(string $data): void + { + $this->uuid = $data; + } + + /** + * @param array{string?: non-empty-string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['string'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->unserialize($data['string']); + } + + public function getNumberConverter(): NumberConverterInterface + { + return ($this->unwrapped ?? $this->unwrap())->getNumberConverter(); + } + + /** + * @inheritDoc + */ + public function getFieldsHex(): array + { + return ($this->unwrapped ?? $this->unwrap())->getFieldsHex(); + } + + public function getClockSeqHiAndReservedHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getClockSeqHiAndReservedHex(); + } + + public function getClockSeqLowHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getClockSeqLowHex(); + } + + public function getClockSequenceHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getClockSequenceHex(); + } + + public function getDateTime(): DateTimeInterface + { + return ($this->unwrapped ?? $this->unwrap())->getDateTime(); + } + + public function getLeastSignificantBitsHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getLeastSignificantBitsHex(); + } + + public function getMostSignificantBitsHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getMostSignificantBitsHex(); + } + + public function getNodeHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getNodeHex(); + } + + public function getTimeHiAndVersionHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getTimeHiAndVersionHex(); + } + + public function getTimeLowHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getTimeLowHex(); + } + + public function getTimeMidHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getTimeMidHex(); + } + + public function getTimestampHex(): string + { + return ($this->unwrapped ?? $this->unwrap())->getTimestampHex(); + } + + public function getUrn(): string + { + return ($this->unwrapped ?? $this->unwrap())->getUrn(); + } + + public function getVariant(): ?int + { + return ($this->unwrapped ?? $this->unwrap())->getVariant(); + } + + public function getVersion(): ?int + { + return ($this->unwrapped ?? $this->unwrap())->getVersion(); + } + + public function compareTo(UuidInterface $other): int + { + return ($this->unwrapped ?? $this->unwrap())->compareTo($other); + } + + public function equals(?object $other): bool + { + if (!$other instanceof UuidInterface) { + return false; + } + + return $this->uuid === $other->toString(); + } + + public function getBytes(): string + { + /** + * @var non-empty-string + * @phpstan-ignore possiblyImpure.functionCall, possiblyImpure.functionCall + */ + return (string) hex2bin(str_replace('-', '', $this->uuid)); + } + + public function getFields(): FieldsInterface + { + return ($this->unwrapped ?? $this->unwrap())->getFields(); + } + + public function getHex(): Hexadecimal + { + return ($this->unwrapped ?? $this->unwrap())->getHex(); + } + + public function getInteger(): IntegerObject + { + return ($this->unwrapped ?? $this->unwrap())->getInteger(); + } + + public function toString(): string + { + return $this->uuid; + } + + public function __toString(): string + { + return $this->uuid; + } + + public function jsonSerialize(): string + { + return $this->uuid; + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getClockSeqHiAndReserved()} + * and use the arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getClockSeqHiAndReserved(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getClockSeqHiAndReserved()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getClockSeqLow()} and use + * the arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getClockSeqLow(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getClockSeqLow()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getClockSeq()} and use the + * arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getClockSequence(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getClockSeq()->toString()); + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getLeastSignificantBits(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + return $instance->getNumberConverter()->fromHex(substr($instance->getHex()->toString(), 16)); + } + + /** + * @deprecated This method will be removed in 5.0.0. There is no direct alternative, but the same information may be + * obtained by splitting in half the value returned by {@see UuidInterface::getHex()}. + */ + public function getMostSignificantBits(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + return $instance->getNumberConverter()->fromHex(substr($instance->getHex()->toString(), 0, 16)); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getNode()} and use the + * arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getNode(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getNode()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getTimeHiAndVersion()} and + * use the arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getTimeHiAndVersion(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getTimeHiAndVersion()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getTimeLow()} and use the + * arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getTimeLow(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getTimeLow()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getTimeMid()} and use the + * arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getTimeMid(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + return $instance->getNumberConverter()->fromHex($fields->getTimeMid()->toString()); + } + + /** + * @deprecated Use {@see UuidInterface::getFields()} to get a {@see FieldsInterface} instance. If it is a + * {@see Rfc4122FieldsInterface} instance, you may call {@see Rfc4122FieldsInterface::getTimestamp()} and use + * the arbitrary-precision math library of your choice to convert it to a string integer. + */ + public function getTimestamp(): string + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + $fields = $instance->getFields(); + assert($fields instanceof \Ramsey\Uuid\Rfc4122\FieldsInterface); + + if ($fields->getVersion() !== 1) { + throw new UnsupportedOperationException('Not a time-based UUID'); + } + + return $instance->getNumberConverter()->fromHex($fields->getTimestamp()->toString()); + } + + public function toUuidV1(): UuidV1 + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + if ($instance instanceof UuidV1) { + return $instance; + } + + assert($instance instanceof UuidV6); + + return $instance->toUuidV1(); + } + + public function toUuidV6(): UuidV6 + { + $instance = ($this->unwrapped ?? $this->unwrap()); + + assert($instance instanceof UuidV6); + + return $instance; + } + + private function unwrap(): UuidInterface + { + return $this->unwrapped = (new UuidFactory())->fromString($this->uuid); + } +} diff --git a/vendor/ramsey/uuid/src/Math/BrickMathCalculator.php b/vendor/ramsey/uuid/src/Math/BrickMathCalculator.php new file mode 100644 index 0000000..649f580 --- /dev/null +++ b/vendor/ramsey/uuid/src/Math/BrickMathCalculator.php @@ -0,0 +1,154 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Math; + +use Brick\Math\BigDecimal; +use Brick\Math\BigInteger; +use Brick\Math\Exception\MathException; +use Brick\Math\RoundingMode as BrickMathRounding; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Type\Decimal; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\NumberInterface; + +/** + * A calculator using the brick/math library for arbitrary-precision arithmetic + * + * @immutable + */ +final class BrickMathCalculator implements CalculatorInterface +{ + private const ROUNDING_MODE_MAP = [ + RoundingMode::UNNECESSARY => BrickMathRounding::UNNECESSARY, + RoundingMode::UP => BrickMathRounding::UP, + RoundingMode::DOWN => BrickMathRounding::DOWN, + RoundingMode::CEILING => BrickMathRounding::CEILING, + RoundingMode::FLOOR => BrickMathRounding::FLOOR, + RoundingMode::HALF_UP => BrickMathRounding::HALF_UP, + RoundingMode::HALF_DOWN => BrickMathRounding::HALF_DOWN, + RoundingMode::HALF_CEILING => BrickMathRounding::HALF_CEILING, + RoundingMode::HALF_FLOOR => BrickMathRounding::HALF_FLOOR, + RoundingMode::HALF_EVEN => BrickMathRounding::HALF_EVEN, + ]; + + public function add(NumberInterface $augend, NumberInterface ...$addends): NumberInterface + { + $sum = BigInteger::of($augend->toString()); + + foreach ($addends as $addend) { + $sum = $sum->plus($addend->toString()); + } + + /** @phpstan-ignore possiblyImpure.new */ + return new IntegerObject((string) $sum); + } + + public function subtract(NumberInterface $minuend, NumberInterface ...$subtrahends): NumberInterface + { + $difference = BigInteger::of($minuend->toString()); + + foreach ($subtrahends as $subtrahend) { + $difference = $difference->minus($subtrahend->toString()); + } + + /** @phpstan-ignore possiblyImpure.new */ + return new IntegerObject((string) $difference); + } + + public function multiply(NumberInterface $multiplicand, NumberInterface ...$multipliers): NumberInterface + { + $product = BigInteger::of($multiplicand->toString()); + + foreach ($multipliers as $multiplier) { + $product = $product->multipliedBy($multiplier->toString()); + } + + /** @phpstan-ignore possiblyImpure.new */ + return new IntegerObject((string) $product); + } + + public function divide( + int $roundingMode, + int $scale, + NumberInterface $dividend, + NumberInterface ...$divisors, + ): NumberInterface { + /** @phpstan-ignore possiblyImpure.methodCall */ + $brickRounding = $this->getBrickRoundingMode($roundingMode); + + $quotient = BigDecimal::of($dividend->toString()); + + foreach ($divisors as $divisor) { + $quotient = $quotient->dividedBy($divisor->toString(), $scale, $brickRounding); + } + + if ($scale === 0) { + /** @phpstan-ignore possiblyImpure.new */ + return new IntegerObject((string) $quotient->toBigInteger()); + } + + /** @phpstan-ignore possiblyImpure.new */ + return new Decimal((string) $quotient); + } + + public function fromBase(string $value, int $base): IntegerObject + { + try { + /** @phpstan-ignore possiblyImpure.new */ + return new IntegerObject((string) BigInteger::fromBase($value, $base)); + } catch (MathException | \InvalidArgumentException $exception) { + throw new InvalidArgumentException( + $exception->getMessage(), + (int) $exception->getCode(), + $exception + ); + } + } + + public function toBase(IntegerObject $value, int $base): string + { + try { + return BigInteger::of($value->toString())->toBase($base); + } catch (MathException | \InvalidArgumentException $exception) { + throw new InvalidArgumentException( + $exception->getMessage(), + (int) $exception->getCode(), + $exception + ); + } + } + + public function toHexadecimal(IntegerObject $value): Hexadecimal + { + /** @phpstan-ignore possiblyImpure.new */ + return new Hexadecimal($this->toBase($value, 16)); + } + + public function toInteger(Hexadecimal $value): IntegerObject + { + return $this->fromBase($value->toString(), 16); + } + + /** + * Maps ramsey/uuid rounding modes to those used by brick/math + * + * @return BrickMathRounding::* + */ + private function getBrickRoundingMode(int $roundingMode) + { + return self::ROUNDING_MODE_MAP[$roundingMode] ?? BrickMathRounding::UNNECESSARY; + } +} diff --git a/vendor/ramsey/uuid/src/Math/CalculatorInterface.php b/vendor/ramsey/uuid/src/Math/CalculatorInterface.php new file mode 100644 index 0000000..e6789a6 --- /dev/null +++ b/vendor/ramsey/uuid/src/Math/CalculatorInterface.php @@ -0,0 +1,121 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Math; + +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\NumberInterface; + +/** + * A calculator performs arithmetic operations on numbers + * + * @immutable + */ +interface CalculatorInterface +{ + /** + * Returns the sum of all the provided parameters + * + * @param NumberInterface $augend The first addend (the integer being added to) + * @param NumberInterface ...$addends The additional integers to a add to the augend + * + * @return NumberInterface The sum of all the parameters + * + * @pure + */ + public function add(NumberInterface $augend, NumberInterface ...$addends): NumberInterface; + + /** + * Returns the difference of all the provided parameters + * + * @param NumberInterface $minuend The integer being subtracted from + * @param NumberInterface ...$subtrahends The integers to subtract from the minuend + * + * @return NumberInterface The difference after subtracting all parameters + * + * @pure + */ + public function subtract(NumberInterface $minuend, NumberInterface ...$subtrahends): NumberInterface; + + /** + * Returns the product of all the provided parameters + * + * @param NumberInterface $multiplicand The integer to be multiplied + * @param NumberInterface ...$multipliers The factors by which to multiply the multiplicand + * + * @return NumberInterface The product of multiplying all the provided parameters + * + * @pure + */ + public function multiply(NumberInterface $multiplicand, NumberInterface ...$multipliers): NumberInterface; + + /** + * Returns the quotient of the provided parameters divided left-to-right + * + * @param int $roundingMode The RoundingMode constant to use for this operation + * @param int $scale The scale to use for this operation + * @param NumberInterface $dividend The integer to be divided + * @param NumberInterface ...$divisors The integers to divide $dividend by, in the order in which the division + * operations should take place (left-to-right) + * + * @return NumberInterface The quotient of dividing the provided parameters left-to-right + * + * @pure + */ + public function divide( + int $roundingMode, + int $scale, + NumberInterface $dividend, + NumberInterface ...$divisors, + ): NumberInterface; + + /** + * Converts a value from an arbitrary base to a base-10 integer value + * + * @param string $value The value to convert + * @param int $base The base to convert from (i.e., 2, 16, 32, etc.) + * + * @return IntegerObject The base-10 integer value of the converted value + * + * @pure + */ + public function fromBase(string $value, int $base): IntegerObject; + + /** + * Converts a base-10 integer value to an arbitrary base + * + * @param IntegerObject $value The integer value to convert + * @param int $base The base to convert to (i.e., 2, 16, 32, etc.) + * + * @return string The value represented in the specified base + * + * @pure + */ + public function toBase(IntegerObject $value, int $base): string; + + /** + * Converts an Integer instance to a Hexadecimal instance + * + * @pure + */ + public function toHexadecimal(IntegerObject $value): Hexadecimal; + + /** + * Converts a Hexadecimal instance to an Integer instance + * + * @pure + */ + public function toInteger(Hexadecimal $value): IntegerObject; +} diff --git a/vendor/ramsey/uuid/src/Math/RoundingMode.php b/vendor/ramsey/uuid/src/Math/RoundingMode.php new file mode 100644 index 0000000..1497aa6 --- /dev/null +++ b/vendor/ramsey/uuid/src/Math/RoundingMode.php @@ -0,0 +1,127 @@ += 0.5; otherwise, behaves as for DOWN. Note that this is the + * rounding mode commonly taught at school. + */ + public const HALF_UP = 5; + + /** + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round down. + * + * Behaves as for UP if the discarded fraction is > 0.5; otherwise, behaves as for DOWN. + */ + public const HALF_DOWN = 6; + + /** + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards positive infinity. + * + * If the result is positive, behaves as for HALF_UP; if negative, behaves as for HALF_DOWN. + */ + public const HALF_CEILING = 7; + + /** + * Rounds towards "nearest neighbor" unless both neighbors are equidistant, in which case round towards negative infinity. + * + * If the result is positive, behaves as for HALF_DOWN; if negative, behaves as for HALF_UP. + */ + public const HALF_FLOOR = 8; + + /** + * Rounds towards the "nearest neighbor" unless both neighbors are equidistant, in which case rounds towards the even neighbor. + * + * Behaves as for HALF_UP if the digit to the left of the discarded fraction is odd; behaves as for HALF_DOWN if it's even. + * + * Note that this is the rounding mode that statistically minimizes cumulative error when applied repeatedly over a + * sequence of calculations. It is sometimes known as "Banker's rounding", and is chiefly used in the USA. + */ + public const HALF_EVEN = 9; + + /** + * Private constructor. This class is not instantiable. + * + * @codeCoverageIgnore + */ + private function __construct() + { + } +} diff --git a/vendor/ramsey/uuid/src/Nonstandard/Fields.php b/vendor/ramsey/uuid/src/Nonstandard/Fields.php new file mode 100644 index 0000000..d309c9a --- /dev/null +++ b/vendor/ramsey/uuid/src/Nonstandard/Fields.php @@ -0,0 +1,128 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Nonstandard; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Fields\SerializableFieldsTrait; +use Ramsey\Uuid\Rfc4122\FieldsInterface; +use Ramsey\Uuid\Rfc4122\VariantTrait; +use Ramsey\Uuid\Type\Hexadecimal; + +use function bin2hex; +use function dechex; +use function hexdec; +use function sprintf; +use function str_pad; +use function strlen; +use function substr; + +use const STR_PAD_LEFT; + +/** + * Nonstandard UUID fields do not conform to the RFC 9562 (formerly RFC 4122) standard + * + * Since some systems may create nonstandard UUIDs, this implements the {@see FieldsInterface}, so that functionality of + * a nonstandard UUID is not degraded, in the event these UUIDs are expected to contain RFC 9562 (formerly RFC 4122) fields. + * + * Internally, this class represents the fields together as a 16-byte binary string. + * + * @immutable + */ +final class Fields implements FieldsInterface +{ + use SerializableFieldsTrait; + use VariantTrait; + + /** + * @param string $bytes A 16-byte binary string representation of a UUID + * + * @throws InvalidArgumentException if the byte string is not exactly 16 bytes + */ + public function __construct(private string $bytes) + { + if (strlen($this->bytes) !== 16) { + throw new InvalidArgumentException( + 'The byte string must be 16 bytes long; received ' . strlen($this->bytes) . ' bytes', + ); + } + } + + public function getBytes(): string + { + return $this->bytes; + } + + public function getClockSeq(): Hexadecimal + { + $clockSeq = hexdec(bin2hex(substr($this->bytes, 8, 2))) & 0x3fff; + + return new Hexadecimal(str_pad(dechex($clockSeq), 4, '0', STR_PAD_LEFT)); + } + + public function getClockSeqHiAndReserved(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 8, 1))); + } + + public function getClockSeqLow(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 9, 1))); + } + + public function getNode(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 10))); + } + + public function getTimeHiAndVersion(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 6, 2))); + } + + public function getTimeLow(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 0, 4))); + } + + public function getTimeMid(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 4, 2))); + } + + public function getTimestamp(): Hexadecimal + { + return new Hexadecimal(sprintf( + '%03x%04s%08s', + hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff, + $this->getTimeMid()->toString(), + $this->getTimeLow()->toString() + )); + } + + public function getVersion(): ?int + { + return null; + } + + public function isNil(): bool + { + return false; + } + + public function isMax(): bool + { + return false; + } +} diff --git a/vendor/ramsey/uuid/src/Nonstandard/Uuid.php b/vendor/ramsey/uuid/src/Nonstandard/Uuid.php new file mode 100644 index 0000000..7f15e6e --- /dev/null +++ b/vendor/ramsey/uuid/src/Nonstandard/Uuid.php @@ -0,0 +1,38 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Nonstandard; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Uuid as BaseUuid; + +/** + * Nonstandard\Uuid is a UUID that doesn't conform to RFC 9562 (formerly RFC 4122) + * + * @immutable + * @pure + */ +final class Uuid extends BaseUuid +{ + public function __construct( + Fields $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php b/vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php new file mode 100644 index 0000000..74da992 --- /dev/null +++ b/vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php @@ -0,0 +1,74 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Nonstandard; + +use Ramsey\Uuid\Builder\UuidBuilderInterface; +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\UnableToBuildUuidException; +use Ramsey\Uuid\UuidInterface; +use Throwable; + +/** + * Nonstandard\UuidBuilder builds instances of Nonstandard\Uuid + * + * @immutable + */ +class UuidBuilder implements UuidBuilderInterface +{ + /** + * @param NumberConverterInterface $numberConverter The number converter to use when constructing the Nonstandard\Uuid + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to Unix timestamps + */ + public function __construct( + private NumberConverterInterface $numberConverter, + private TimeConverterInterface $timeConverter, + ) { + } + + /** + * Builds and returns a Nonstandard\Uuid + * + * @param CodecInterface $codec The codec to use for building this instance + * @param string $bytes The byte string from which to construct a UUID + * + * @return Uuid The Nonstandard\UuidBuilder returns an instance of Nonstandard\Uuid + * + * @pure + */ + public function build(CodecInterface $codec, string $bytes): UuidInterface + { + try { + /** @phpstan-ignore possiblyImpure.new */ + return new Uuid($this->buildFields($bytes), $this->numberConverter, $codec, $this->timeConverter); + } catch (Throwable $e) { + /** @phpstan-ignore possiblyImpure.methodCall, possiblyImpure.methodCall */ + throw new UnableToBuildUuidException($e->getMessage(), (int) $e->getCode(), $e); + } + } + + /** + * Proxy method to allow injecting a mock for testing + * + * @pure + */ + protected function buildFields(string $bytes): Fields + { + /** @phpstan-ignore possiblyImpure.new */ + return new Fields($bytes); + } +} diff --git a/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php b/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php new file mode 100644 index 0000000..e277afc --- /dev/null +++ b/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php @@ -0,0 +1,103 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Nonstandard; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Lazy\LazyUuidFromString; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Rfc4122\TimeTrait; +use Ramsey\Uuid\Rfc4122\UuidInterface; +use Ramsey\Uuid\Rfc4122\UuidV1; +use Ramsey\Uuid\Uuid as BaseUuid; + +/** + * Reordered time, or version 6, UUIDs include timestamp, clock sequence, and node values that are combined into a + * 128-bit unsigned integer + * + * @deprecated Use {@see \Ramsey\Uuid\Rfc4122\UuidV6} instead. + * + * @link https://github.com/uuid6/uuid6-ietf-draft UUID version 6 IETF draft + * @link http://gh.peabody.io/uuidv6/ "Version 6" UUIDs + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.6 RFC 9562, 5.6. UUID Version 6 + * + * @immutable + */ +class UuidV6 extends BaseUuid implements UuidInterface +{ + use TimeTrait; + + /** + * Creates a version 6 (reordered Gregorian time) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== BaseUuid::UUID_TYPE_REORDERED_TIME) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV6 must represent a version 6 (reordered time) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } + + /** + * Converts this UUID into an instance of a version 1 UUID + */ + public function toUuidV1(): UuidV1 + { + $hex = $this->getHex()->toString(); + $hex = substr($hex, 7, 5) + . substr($hex, 13, 3) + . substr($hex, 3, 4) + . '1' . substr($hex, 0, 3) + . substr($hex, 16); + + /** @var LazyUuidFromString $uuid */ + $uuid = BaseUuid::fromBytes((string) hex2bin($hex)); + + return $uuid->toUuidV1(); + } + + /** + * Converts a version 1 UUID into an instance of a version 6 UUID + */ + public static function fromUuidV1(UuidV1 $uuidV1): \Ramsey\Uuid\Rfc4122\UuidV6 + { + $hex = $uuidV1->getHex()->toString(); + $hex = substr($hex, 13, 3) + . substr($hex, 8, 4) + . substr($hex, 0, 5) + . '6' . substr($hex, 5, 3) + . substr($hex, 16); + + /** @var LazyUuidFromString $uuid */ + $uuid = BaseUuid::fromBytes((string) hex2bin($hex)); + + return $uuid->toUuidV6(); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/Dce/SystemDceSecurityProvider.php b/vendor/ramsey/uuid/src/Provider/Dce/SystemDceSecurityProvider.php new file mode 100644 index 0000000..830ffdd --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Dce/SystemDceSecurityProvider.php @@ -0,0 +1,216 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Dce; + +use Ramsey\Uuid\Exception\DceSecurityException; +use Ramsey\Uuid\Provider\DceSecurityProviderInterface; +use Ramsey\Uuid\Type\Integer as IntegerObject; + +use function escapeshellarg; +use function preg_split; +use function str_getcsv; +use function strrpos; +use function strtolower; +use function strtoupper; +use function substr; +use function trim; + +use const PREG_SPLIT_NO_EMPTY; + +/** + * SystemDceSecurityProvider retrieves the user or group identifiers from the system + */ +class SystemDceSecurityProvider implements DceSecurityProviderInterface +{ + /** + * @throws DceSecurityException if unable to get a user identifier + * + * @inheritDoc + */ + public function getUid(): IntegerObject + { + /** @var IntegerObject | int | float | string | null $uid */ + static $uid = null; + + if ($uid instanceof IntegerObject) { + return $uid; + } + + if ($uid === null) { + $uid = $this->getSystemUid(); + } + + if ($uid === '') { + throw new DceSecurityException( + 'Unable to get a user identifier using the system DCE Security provider; please provide a custom ' + . 'identifier or use a different provider', + ); + } + + $uid = new IntegerObject($uid); + + return $uid; + } + + /** + * @throws DceSecurityException if unable to get a group identifier + * + * @inheritDoc + */ + public function getGid(): IntegerObject + { + /** @var IntegerObject | int | float | string | null $gid */ + static $gid = null; + + if ($gid instanceof IntegerObject) { + return $gid; + } + + if ($gid === null) { + $gid = $this->getSystemGid(); + } + + if ($gid === '') { + throw new DceSecurityException( + 'Unable to get a group identifier using the system DCE Security provider; please provide a custom ' + . 'identifier or use a different provider', + ); + } + + $gid = new IntegerObject($gid); + + return $gid; + } + + /** + * Returns the UID from the system + */ + private function getSystemUid(): string + { + if (!$this->hasShellExec()) { + return ''; + } + + return match ($this->getOs()) { + 'WIN' => $this->getWindowsUid(), + default => trim((string) shell_exec('id -u')), + }; + } + + /** + * Returns the GID from the system + */ + private function getSystemGid(): string + { + if (!$this->hasShellExec()) { + return ''; + } + + return match ($this->getOs()) { + 'WIN' => $this->getWindowsGid(), + default => trim((string) shell_exec('id -g')), + }; + } + + /** + * Returns true if shell_exec() is available for use + */ + private function hasShellExec(): bool + { + return !str_contains(strtolower((string) ini_get('disable_functions')), 'shell_exec'); + } + + /** + * Returns the PHP_OS string + */ + private function getOs(): string + { + /** @var string $phpOs */ + $phpOs = constant('PHP_OS'); + + return strtoupper(substr($phpOs, 0, 3)); + } + + /** + * Returns the user identifier for a user on a Windows system + * + * Windows does not have the same concept as an effective POSIX UID for the running script. Instead, each user is + * uniquely identified by an SID (security identifier). The SID includes three 32-bit unsigned integers that make up + * a unique domain identifier, followed by an RID (relative identifier) that we will use as the UID. The primary + * caveat is that this UID may not be unique to the system, since it is, instead, unique to the domain. + * + * @link https://www.lifewire.com/what-is-an-sid-number-2626005 What Is an SID Number? + * @link https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/81d92bba-d22b-4a8c-908a-554ab29148ab Well-known SID Structures + * @link https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/understand-security-identifiers#well-known-sids Well-known SIDs + * @link https://www.windows-commandline.com/get-sid-of-user/ Get SID of user + */ + private function getWindowsUid(): string + { + $response = shell_exec('whoami /user /fo csv /nh'); + + if ($response === null) { + return ''; + } + + $sid = str_getcsv(trim((string) $response), escape: '\\')[1] ?? ''; + + if (($lastHyphen = strrpos($sid, '-')) === false) { + return ''; + } + + return trim(substr($sid, $lastHyphen + 1)); + } + + /** + * Returns a group identifier for a user on a Windows system + * + * Since Windows does not have the same concept as an effective POSIX GID for the running script, we will get the + * local group memberships for the user running the script. Then, we will get the SID (security identifier) for the + * first group that appears in that list. Finally, we will return the RID (relative identifier) for the group and + * use that as the GID. + * + * @link https://www.windows-commandline.com/list-of-user-groups-command-line/ List of user groups command line + */ + private function getWindowsGid(): string + { + $response = shell_exec('net user %username% | findstr /b /i "Local Group Memberships"'); + + if ($response === null) { + return ''; + } + + $userGroups = preg_split('/\s{2,}/', (string) $response, -1, PREG_SPLIT_NO_EMPTY); + $firstGroup = trim($userGroups[1] ?? '', "* \t\n\r\0\x0B"); + + if ($firstGroup === '') { + return ''; + } + + $response = shell_exec('wmic group get name,sid | findstr /b /i ' . escapeshellarg($firstGroup)); + + if ($response === null) { + return ''; + } + + $userGroup = preg_split('/\s{2,}/', (string) $response, -1, PREG_SPLIT_NO_EMPTY); + $sid = $userGroup[1] ?? ''; + + if (($lastHyphen = strrpos($sid, '-')) === false) { + return ''; + } + + return trim(substr($sid, $lastHyphen + 1)); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/DceSecurityProviderInterface.php b/vendor/ramsey/uuid/src/Provider/DceSecurityProviderInterface.php new file mode 100644 index 0000000..f1c3e97 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/DceSecurityProviderInterface.php @@ -0,0 +1,40 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider; + +use Ramsey\Uuid\Rfc4122\UuidV2; +use Ramsey\Uuid\Type\Integer as IntegerObject; + +/** + * A DCE provider provides access to local domain identifiers for version 2, DCE Security, UUIDs + * + * @see UuidV2 + */ +interface DceSecurityProviderInterface +{ + /** + * Returns a user identifier for the system + * + * @link https://en.wikipedia.org/wiki/User_identifier User identifier + */ + public function getUid(): IntegerObject; + + /** + * Returns a group identifier for the system + * + * @link https://en.wikipedia.org/wiki/Group_identifier Group identifier + */ + public function getGid(): IntegerObject; +} diff --git a/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php b/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php new file mode 100644 index 0000000..267ea9b --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php @@ -0,0 +1,49 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Node; + +use Ramsey\Uuid\Exception\NodeException; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; + +/** + * FallbackNodeProvider retrieves the system node ID by stepping through a list of providers until a node ID can be obtained + */ +class FallbackNodeProvider implements NodeProviderInterface +{ + /** + * @param iterable $providers Array of node providers + */ + public function __construct(private iterable $providers) + { + } + + public function getNode(): Hexadecimal + { + $lastProviderException = null; + + foreach ($this->providers as $provider) { + try { + return $provider->getNode(); + } catch (NodeException $exception) { + $lastProviderException = $exception; + + continue; + } + } + + throw new NodeException(message: 'Unable to find a suitable node provider', previous: $lastProviderException); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/Node/NodeProviderCollection.php b/vendor/ramsey/uuid/src/Provider/Node/NodeProviderCollection.php new file mode 100644 index 0000000..1d4908a --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Node/NodeProviderCollection.php @@ -0,0 +1,58 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Node; + +use Ramsey\Collection\AbstractCollection; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; + +/** + * A collection of NodeProviderInterface objects + * + * @deprecated this class has been deprecated and will be removed in 5.0.0. The use-case for this class comes from a + * pre-`phpstan/phpstan` and pre-`vimeo/psalm` ecosystem, in which type safety had to be mostly enforced at runtime: + * that is no longer necessary, now that you can safely verify your code to be correct and use more generic types + * like `iterable` instead. + * + * @extends AbstractCollection + */ +class NodeProviderCollection extends AbstractCollection +{ + public function getType(): string + { + return NodeProviderInterface::class; + } + + /** + * Re-constructs the object from its serialized form + * + * @param string $serialized The serialized PHP string to unserialize into a UuidInterface instance + */ + public function unserialize($serialized): void + { + /** @var array $data */ + $data = unserialize($serialized, [ + 'allowed_classes' => [ + Hexadecimal::class, + RandomNodeProvider::class, + StaticNodeProvider::class, + SystemNodeProvider::class, + ], + ]); + + /** @phpstan-ignore-next-line */ + $this->data = array_filter($data, fn ($unserialized): bool => $unserialized instanceof NodeProviderInterface); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php b/vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php new file mode 100644 index 0000000..9334ce0 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php @@ -0,0 +1,55 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Node; + +use Ramsey\Uuid\Exception\RandomSourceException; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Throwable; + +use function bin2hex; +use function dechex; +use function hex2bin; +use function hexdec; +use function str_pad; +use function substr; + +use const STR_PAD_LEFT; + +/** + * RandomNodeProvider generates a random node ID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-6.10 RFC 9562, 6.10. UUIDs That Do Not Identify the Host + */ +class RandomNodeProvider implements NodeProviderInterface +{ + public function getNode(): Hexadecimal + { + try { + $nodeBytes = random_bytes(6); + } catch (Throwable $exception) { + throw new RandomSourceException($exception->getMessage(), (int) $exception->getCode(), $exception); + } + + // Split the node bytes for math on 32-bit systems. + $nodeMsb = substr($nodeBytes, 0, 3); + $nodeLsb = substr($nodeBytes, 3); + + // Set the multicast bit; see RFC 9562, section 6.10. + $nodeMsb = hex2bin(str_pad(dechex(hexdec(bin2hex($nodeMsb)) | 0x010000), 6, '0', STR_PAD_LEFT)); + + return new Hexadecimal(str_pad(bin2hex($nodeMsb . $nodeLsb), 12, '0', STR_PAD_LEFT)); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/Node/StaticNodeProvider.php b/vendor/ramsey/uuid/src/Provider/Node/StaticNodeProvider.php new file mode 100644 index 0000000..612ccd9 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Node/StaticNodeProvider.php @@ -0,0 +1,65 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Node; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; + +use function dechex; +use function hexdec; +use function str_pad; +use function substr; + +use const STR_PAD_LEFT; + +/** + * StaticNodeProvider provides a static node value with the multicast bit set + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-6.10 RFC 9562, 6.10. UUIDs That Do Not Identify the Host + */ +class StaticNodeProvider implements NodeProviderInterface +{ + private Hexadecimal $node; + + /** + * @param Hexadecimal $node The static node value to use + */ + public function __construct(Hexadecimal $node) + { + if (strlen($node->toString()) > 12) { + throw new InvalidArgumentException('Static node value cannot be greater than 12 hexadecimal characters'); + } + + $this->node = $this->setMulticastBit($node); + } + + public function getNode(): Hexadecimal + { + return $this->node; + } + + /** + * Set the multicast bit for the static node value + */ + private function setMulticastBit(Hexadecimal $node): Hexadecimal + { + $nodeHex = str_pad($node->toString(), 12, '0', STR_PAD_LEFT); + $firstOctet = substr($nodeHex, 0, 2); + $firstOctet = str_pad(dechex(hexdec($firstOctet) | 0x01), 2, '0', STR_PAD_LEFT); + + return new Hexadecimal($firstOctet . substr($nodeHex, 2)); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php b/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php new file mode 100644 index 0000000..05e2ea8 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php @@ -0,0 +1,184 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Node; + +use Ramsey\Uuid\Exception\NodeException; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Type\Hexadecimal; + +use function array_filter; +use function array_map; +use function array_walk; +use function count; +use function ob_get_clean; +use function ob_start; +use function preg_match; +use function preg_match_all; +use function reset; +use function str_contains; +use function str_replace; +use function strtolower; +use function strtoupper; +use function substr; + +use const GLOB_NOSORT; +use const PREG_PATTERN_ORDER; + +/** + * SystemNodeProvider retrieves the system node ID, if possible + * + * The system node ID, or host ID, is often the same as the MAC address for a network interface on the host. + */ +class SystemNodeProvider implements NodeProviderInterface +{ + /** + * Pattern to match nodes in `ifconfig` and `ipconfig` output. + */ + private const IFCONFIG_PATTERN = '/[^:]([0-9a-f]{2}([:-])[0-9a-f]{2}(\2[0-9a-f]{2}){4})[^:]/i'; + + /** + * Pattern to match nodes in sysfs stream output. + */ + private const SYSFS_PATTERN = '/^([0-9a-f]{2}:){5}[0-9a-f]{2}$/i'; + + public function getNode(): Hexadecimal + { + $node = $this->getNodeFromSystem(); + + if ($node === '') { + throw new NodeException('Unable to fetch a node for this system'); + } + + return new Hexadecimal($node); + } + + /** + * Returns the system node if found + */ + protected function getNodeFromSystem(): string + { + /** @var string | null $node */ + static $node = null; + + if ($node !== null) { + return $node; + } + + // First, try a Linux-specific approach. + $node = $this->getSysfs(); + + if ($node === '') { + // Search ifconfig output for MAC addresses & return the first one. + $node = $this->getIfconfig(); + } + + $node = str_replace([':', '-'], '', $node); + + return $node; + } + + /** + * Returns the network interface configuration for the system + * + * @codeCoverageIgnore + */ + protected function getIfconfig(): string + { + if (str_contains(strtolower((string) ini_get('disable_functions')), 'passthru')) { + return ''; + } + + /** @var string $phpOs */ + $phpOs = constant('PHP_OS'); + + ob_start(); + switch (strtoupper(substr($phpOs, 0, 3))) { + case 'WIN': + passthru('ipconfig /all 2>&1'); + + break; + case 'DAR': + passthru('ifconfig 2>&1'); + + break; + case 'FRE': + passthru('netstat -i -f link 2>&1'); + + break; + case 'LIN': + default: + passthru('netstat -ie 2>&1'); + + break; + } + + $ifconfig = (string) ob_get_clean(); + + if (preg_match_all(self::IFCONFIG_PATTERN, $ifconfig, $matches, PREG_PATTERN_ORDER)) { + foreach ($matches[1] as $iface) { + if ($iface !== '00:00:00:00:00:00' && $iface !== '00-00-00-00-00-00') { + return $iface; + } + } + } + + return ''; + } + + /** + * Returns MAC address from the first system interface via the sysfs interface + */ + protected function getSysfs(): string + { + /** @var string $phpOs */ + $phpOs = constant('PHP_OS'); + + if (strtoupper($phpOs) !== 'LINUX') { + return ''; + } + + $addressPaths = glob('/sys/class/net/*/address', GLOB_NOSORT); + + if ($addressPaths === false || count($addressPaths) === 0) { + return ''; + } + + /** @var array $macs */ + $macs = []; + + array_walk($addressPaths, function (string $addressPath) use (&$macs): void { + if (is_readable($addressPath)) { + $macs[] = file_get_contents($addressPath); + } + }); + + /** @var callable $trim */ + $trim = 'trim'; + + $macs = array_map($trim, $macs); + + // Remove invalid entries. + $macs = array_filter($macs, function (mixed $address): bool { + assert(is_string($address)); + + return $address !== '00:00:00:00:00:00' && preg_match(self::SYSFS_PATTERN, $address); + }); + + /** @var bool | string $mac */ + $mac = reset($macs); + + return (string) $mac; + } +} diff --git a/vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php b/vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php new file mode 100644 index 0000000..d536b45 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php @@ -0,0 +1,30 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider; + +use Ramsey\Uuid\Type\Hexadecimal; + +/** + * A node provider retrieves or generates a node ID + */ +interface NodeProviderInterface +{ + /** + * Returns a node ID + * + * @return Hexadecimal The node ID as a hexadecimal string + */ + public function getNode(): Hexadecimal; +} diff --git a/vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php b/vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php new file mode 100644 index 0000000..68d9f10 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php @@ -0,0 +1,56 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Time; + +use Ramsey\Uuid\Provider\TimeProviderInterface; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\Time; + +/** + * FixedTimeProvider uses a known time to provide the time + * + * This provider allows the use of a previously generated, or known, time when generating time-based UUIDs. + */ +class FixedTimeProvider implements TimeProviderInterface +{ + public function __construct(private Time $time) + { + } + + /** + * Sets the `usec` component of the time + * + * @param IntegerObject | int | string $value The `usec` value to set + */ + public function setUsec($value): void + { + $this->time = new Time($this->time->getSeconds(), $value); + } + + /** + * Sets the `sec` component of the time + * + * @param IntegerObject | int | string $value The `sec` value to set + */ + public function setSec($value): void + { + $this->time = new Time($value, $this->time->getMicroseconds()); + } + + public function getTime(): Time + { + return $this->time; + } +} diff --git a/vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php b/vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php new file mode 100644 index 0000000..3a1e09c --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php @@ -0,0 +1,33 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider\Time; + +use Ramsey\Uuid\Provider\TimeProviderInterface; +use Ramsey\Uuid\Type\Time; + +use function gettimeofday; + +/** + * SystemTimeProvider retrieves the current time using built-in PHP functions + */ +class SystemTimeProvider implements TimeProviderInterface +{ + public function getTime(): Time + { + $time = gettimeofday(); + + return new Time($time['sec'], $time['usec']); + } +} diff --git a/vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php b/vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php new file mode 100644 index 0000000..43588e0 --- /dev/null +++ b/vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php @@ -0,0 +1,28 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Provider; + +use Ramsey\Uuid\Type\Time; + +/** + * A time provider retrieves the current time + */ +interface TimeProviderInterface +{ + /** + * Returns a time object + */ + public function getTime(): Time; +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/Fields.php b/vendor/ramsey/uuid/src/Rfc4122/Fields.php new file mode 100644 index 0000000..4f607d5 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/Fields.php @@ -0,0 +1,190 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Fields\SerializableFieldsTrait; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Uuid; + +use function bin2hex; +use function dechex; +use function hexdec; +use function sprintf; +use function str_pad; +use function strlen; +use function substr; +use function unpack; + +use const STR_PAD_LEFT; + +/** + * RFC 9562 (formerly RFC 4122) variant UUIDs consist of a set of named fields + * + * Internally, this class represents the fields together as a 16-byte binary string. + * + * @immutable + */ +final class Fields implements FieldsInterface +{ + use MaxTrait; + use NilTrait; + use SerializableFieldsTrait; + use VariantTrait; + use VersionTrait; + + /** + * @param string $bytes A 16-byte binary string representation of a UUID + * + * @throws InvalidArgumentException if the byte string is not exactly 16 bytes + * @throws InvalidArgumentException if the byte string does not represent an RFC 9562 (formerly RFC 4122) UUID + * @throws InvalidArgumentException if the byte string does not contain a valid version + */ + public function __construct(private string $bytes) + { + if (strlen($this->bytes) !== 16) { + throw new InvalidArgumentException( + 'The byte string must be 16 bytes long; ' . 'received ' . strlen($this->bytes) . ' bytes', + ); + } + + if (!$this->isCorrectVariant()) { + throw new InvalidArgumentException( + 'The byte string received does not conform to the RFC 9562 (formerly RFC 4122) variant', + ); + } + + if (!$this->isCorrectVersion()) { + throw new InvalidArgumentException( + 'The byte string received does not contain a valid RFC 9562 (formerly RFC 4122) version', + ); + } + } + + /** + * @pure + */ + public function getBytes(): string + { + return $this->bytes; + } + + public function getClockSeq(): Hexadecimal + { + if ($this->isMax()) { + $clockSeq = 0xffff; + } elseif ($this->isNil()) { + $clockSeq = 0x0000; + } else { + $clockSeq = hexdec(bin2hex(substr($this->bytes, 8, 2))) & 0x3fff; + } + + return new Hexadecimal(str_pad(dechex($clockSeq), 4, '0', STR_PAD_LEFT)); + } + + public function getClockSeqHiAndReserved(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 8, 1))); + } + + public function getClockSeqLow(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 9, 1))); + } + + public function getNode(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 10))); + } + + public function getTimeHiAndVersion(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 6, 2))); + } + + public function getTimeLow(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 0, 4))); + } + + public function getTimeMid(): Hexadecimal + { + return new Hexadecimal(bin2hex(substr($this->bytes, 4, 2))); + } + + /** + * Returns the full 60-bit timestamp, without the version + * + * For version 2 UUIDs, the time_low field is the local identifier and should not be returned as part of the time. + * For this reason, we set the bottom 32 bits of the timestamp to 0's. As a result, there is some loss of timestamp + * fidelity, for version 2 UUIDs. The timestamp can be off by a range of 0 to 429.4967295 seconds (or 7 minutes, 9 + * seconds, and 496,730 microseconds). + * + * For version 6 UUIDs, the timestamp order is reversed from the typical RFC 9562 (formerly RFC 4122) order (the + * time bits are in the correct bit order, so that it is monotonically increasing). In returning the timestamp + * value, we put the bits in the order: time_low + time_mid + time_hi. + */ + public function getTimestamp(): Hexadecimal + { + return new Hexadecimal(match ($this->getVersion()) { + Uuid::UUID_TYPE_DCE_SECURITY => sprintf( + '%03x%04s%08s', + hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff, + $this->getTimeMid()->toString(), + '' + ), + Uuid::UUID_TYPE_REORDERED_TIME => sprintf( + '%08s%04s%03x', + $this->getTimeLow()->toString(), + $this->getTimeMid()->toString(), + hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff + ), + // The Unix timestamp in version 7 UUIDs is a 48-bit number, but for consistency, we will return a 60-bit + // number, padded to the left with zeros. + Uuid::UUID_TYPE_UNIX_TIME => sprintf( + '%011s%04s', + $this->getTimeLow()->toString(), + $this->getTimeMid()->toString(), + ), + default => sprintf( + '%03x%04s%08s', + hexdec($this->getTimeHiAndVersion()->toString()) & 0x0fff, + $this->getTimeMid()->toString(), + $this->getTimeLow()->toString() + ), + }); + } + + public function getVersion(): ?int + { + if ($this->isNil() || $this->isMax()) { + return null; + } + + /** @var int[] $parts */ + $parts = unpack('n*', $this->bytes); + + return $parts[4] >> 12; + } + + private function isCorrectVariant(): bool + { + if ($this->isNil() || $this->isMax()) { + return true; + } + + return $this->getVariant() === Uuid::RFC_4122; + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/FieldsInterface.php b/vendor/ramsey/uuid/src/Rfc4122/FieldsInterface.php new file mode 100644 index 0000000..13d86d9 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/FieldsInterface.php @@ -0,0 +1,130 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Fields\FieldsInterface as BaseFieldsInterface; +use Ramsey\Uuid\Type\Hexadecimal; + +/** + * UUID fields, as defined by RFC 4122 + * + * This interface defines the fields of an RFC 4122 variant UUID. Since RFC 9562 removed the concept of fields and + * instead defined layouts that are specific to a given version, this interface is a legacy artifact of the earlier, and + * now obsolete, RFC 4122. + * + * The fields of an RFC 4122 variant UUID are: + * + * * **time_low**: The low field of the timestamp, an unsigned 32-bit integer + * * **time_mid**: The middle field of the timestamp, an unsigned 16-bit integer + * * **time_hi_and_version**: The high field of the timestamp multiplexed with the version number, an unsigned 16-bit integer + * * **clock_seq_hi_and_reserved**: The high field of the clock sequence multiplexed with the variant, an unsigned 8-bit integer + * * **clock_seq_low**: The low field of the clock sequence, an unsigned 8-bit integer + * * **node**: The spatially unique node identifier, an unsigned 48-bit integer + * + * @link https://www.rfc-editor.org/rfc/rfc4122#section-4.1 RFC 4122, 4.1. Format + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4 RFC 9562, 4. UUID Format + * + * @immutable + */ +interface FieldsInterface extends BaseFieldsInterface +{ + /** + * Returns the full 16-bit clock sequence, with the variant bits (two most significant bits) masked out + */ + public function getClockSeq(): Hexadecimal; + + /** + * Returns the high field of the clock sequence multiplexed with the variant + */ + public function getClockSeqHiAndReserved(): Hexadecimal; + + /** + * Returns the low field of the clock sequence + */ + public function getClockSeqLow(): Hexadecimal; + + /** + * Returns the node field + */ + public function getNode(): Hexadecimal; + + /** + * Returns the high field of the timestamp multiplexed with the version + */ + public function getTimeHiAndVersion(): Hexadecimal; + + /** + * Returns the low field of the timestamp + */ + public function getTimeLow(): Hexadecimal; + + /** + * Returns the middle field of the timestamp + */ + public function getTimeMid(): Hexadecimal; + + /** + * Returns the full 60-bit timestamp, without the version + */ + public function getTimestamp(): Hexadecimal; + + /** + * Returns the variant + * + * The variant number describes the layout of the UUID. The variant number has the following meaning: + * + * - 0 - Reserved for NCS backward compatibility + * - 2 - The RFC 9562 (formerly RFC 4122) variant + * - 6 - Reserved, Microsoft Corporation backward compatibility + * - 7 - Reserved for future definition + * + * For RFC 9562 (formerly RFC 4122) variant UUIDs, this value should always be the integer `2`. + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + */ + public function getVariant(): int; + + /** + * Returns the UUID version + * + * The version number describes how the UUID was generated and has the following meaning: + * + * 1. Gregorian time UUID + * 2. DCE security UUID + * 3. Name-based UUID hashed with MD5 + * 4. Randomly generated UUID + * 5. Name-based UUID hashed with SHA-1 + * 6. Reordered Gregorian time UUID + * 7. Unix Epoch time UUID + * 8. Custom format UUID + * + * This returns `null` if the UUID is not an RFC 9562 (formerly RFC 4122) variant, since the version is only + * meaningful for this variant. + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + * + * @pure + */ + public function getVersion(): ?int; + + /** + * Returns true if these fields represent a nil UUID + * + * The nil UUID is a special form of UUID that is specified to have all 128 bits set to zero. + * + * @pure + */ + public function isNil(): bool; +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php b/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php new file mode 100644 index 0000000..8646e6a --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php @@ -0,0 +1,40 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +/** + * Provides common functionality for max UUIDs + * + * @immutable + */ +trait MaxTrait +{ + /** + * Returns the bytes that comprise the fields + * + * @pure + */ + abstract public function getBytes(): string; + + /** + * Returns true if the byte string represents a max UUID + * + * @pure + */ + public function isMax(): bool + { + return $this->getBytes() === "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"; + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php b/vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php new file mode 100644 index 0000000..ac50bce --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php @@ -0,0 +1,28 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Uuid; + +/** + * The max UUID is a special form of UUID that has all 128 bits set to one (`1`) + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.10 RFC 9562, 5.10. Max UUID + * + * @immutable + */ +final class MaxUuid extends Uuid implements UuidInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/NilTrait.php b/vendor/ramsey/uuid/src/Rfc4122/NilTrait.php new file mode 100644 index 0000000..19d1377 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/NilTrait.php @@ -0,0 +1,38 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +/** + * Provides common functionality for nil UUIDs + * + * @immutable + */ +trait NilTrait +{ + /** + * Returns the bytes that comprise the fields + * + * @pure + */ + abstract public function getBytes(): string; + + /** + * Returns true if the byte string represents a nil UUID + */ + public function isNil(): bool + { + return $this->getBytes() === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/NilUuid.php b/vendor/ramsey/uuid/src/Rfc4122/NilUuid.php new file mode 100644 index 0000000..a139de7 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/NilUuid.php @@ -0,0 +1,28 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Uuid; + +/** + * The nil UUID is a special form of UUID that has all 128 bits set to zero (`0`) + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.9 RFC 9562, 5.9. Nil UUID + * + * @immutable + */ +final class NilUuid extends Uuid implements UuidInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php b/vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php new file mode 100644 index 0000000..c468c9b --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php @@ -0,0 +1,53 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use DateTimeImmutable; +use DateTimeInterface; +use Ramsey\Uuid\Exception\DateTimeException; +use Throwable; + +use function str_pad; + +use const STR_PAD_LEFT; + +/** + * Provides common functionality for getting the time from a time-based UUID + * + * @immutable + */ +trait TimeTrait +{ + /** + * Returns a DateTimeInterface object representing the timestamp associated with the UUID + * + * @return DateTimeImmutable A PHP DateTimeImmutable instance representing the timestamp of a time-based UUID + */ + public function getDateTime(): DateTimeInterface + { + $time = $this->timeConverter->convertTime($this->fields->getTimestamp()); + + try { + return new DateTimeImmutable( + '@' + . $time->getSeconds()->toString() + . '.' + . str_pad($time->getMicroseconds()->toString(), 6, '0', STR_PAD_LEFT) + ); + } catch (Throwable $e) { + throw new DateTimeException($e->getMessage(), (int) $e->getCode(), $e); + } + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php b/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php new file mode 100644 index 0000000..787a0b7 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php @@ -0,0 +1,122 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Builder\UuidBuilderInterface; +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\Time\UnixTimeConverter; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\UnableToBuildUuidException; +use Ramsey\Uuid\Exception\UnsupportedOperationException; +use Ramsey\Uuid\Math\BrickMathCalculator; +use Ramsey\Uuid\Rfc4122\UuidInterface as Rfc4122UuidInterface; +use Ramsey\Uuid\Uuid; +use Ramsey\Uuid\UuidInterface; +use Throwable; + +/** + * UuidBuilder builds instances of RFC 9562 (formerly 4122) UUIDs + * + * @immutable + */ +class UuidBuilder implements UuidBuilderInterface +{ + private TimeConverterInterface $unixTimeConverter; + + /** + * Constructs the DefaultUuidBuilder + * + * @param NumberConverterInterface $numberConverter The number converter to use when constructing the Uuid + * @param TimeConverterInterface $timeConverter The time converter to use for converting Gregorian time extracted + * from version 1, 2, and 6 UUIDs to Unix timestamps + * @param TimeConverterInterface | null $unixTimeConverter The time converter to use for converter Unix Epoch time + * extracted from version 7 UUIDs to Unix timestamps + */ + public function __construct( + private NumberConverterInterface $numberConverter, + private TimeConverterInterface $timeConverter, + ?TimeConverterInterface $unixTimeConverter = null, + ) { + $this->unixTimeConverter = $unixTimeConverter ?? new UnixTimeConverter(new BrickMathCalculator()); + } + + /** + * Builds and returns a Uuid + * + * @param CodecInterface $codec The codec to use for building this Uuid instance + * @param string $bytes The byte string from which to construct a UUID + * + * @return Rfc4122UuidInterface UuidBuilder returns instances of Rfc4122UuidInterface + * + * @pure + */ + public function build(CodecInterface $codec, string $bytes): UuidInterface + { + try { + /** @var Fields $fields */ + $fields = $this->buildFields($bytes); + + if ($fields->isNil()) { + /** @phpstan-ignore possiblyImpure.new */ + return new NilUuid($fields, $this->numberConverter, $codec, $this->timeConverter); + } + + if ($fields->isMax()) { + /** @phpstan-ignore possiblyImpure.new */ + return new MaxUuid($fields, $this->numberConverter, $codec, $this->timeConverter); + } + + return match ($fields->getVersion()) { + /** @phpstan-ignore possiblyImpure.new */ + Uuid::UUID_TYPE_TIME => new UuidV1($fields, $this->numberConverter, $codec, $this->timeConverter), + Uuid::UUID_TYPE_DCE_SECURITY + /** @phpstan-ignore possiblyImpure.new */ + => new UuidV2($fields, $this->numberConverter, $codec, $this->timeConverter), + /** @phpstan-ignore possiblyImpure.new */ + Uuid::UUID_TYPE_HASH_MD5 => new UuidV3($fields, $this->numberConverter, $codec, $this->timeConverter), + /** @phpstan-ignore possiblyImpure.new */ + Uuid::UUID_TYPE_RANDOM => new UuidV4($fields, $this->numberConverter, $codec, $this->timeConverter), + /** @phpstan-ignore possiblyImpure.new */ + Uuid::UUID_TYPE_HASH_SHA1 => new UuidV5($fields, $this->numberConverter, $codec, $this->timeConverter), + Uuid::UUID_TYPE_REORDERED_TIME + /** @phpstan-ignore possiblyImpure.new */ + => new UuidV6($fields, $this->numberConverter, $codec, $this->timeConverter), + Uuid::UUID_TYPE_UNIX_TIME + /** @phpstan-ignore possiblyImpure.new */ + => new UuidV7($fields, $this->numberConverter, $codec, $this->unixTimeConverter), + /** @phpstan-ignore possiblyImpure.new */ + Uuid::UUID_TYPE_CUSTOM => new UuidV8($fields, $this->numberConverter, $codec, $this->timeConverter), + default => throw new UnsupportedOperationException( + 'The UUID version in the given fields is not supported by this UUID builder', + ), + }; + } catch (Throwable $e) { + /** @phpstan-ignore possiblyImpure.methodCall, possiblyImpure.methodCall */ + throw new UnableToBuildUuidException($e->getMessage(), (int) $e->getCode(), $e); + } + } + + /** + * Proxy method to allow injecting a mock for testing + * + * @pure + */ + protected function buildFields(string $bytes): FieldsInterface + { + /** @phpstan-ignore possiblyImpure.new */ + return new Fields($bytes); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidInterface.php b/vendor/ramsey/uuid/src/Rfc4122/UuidInterface.php new file mode 100644 index 0000000..5918306 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidInterface.php @@ -0,0 +1,28 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\UuidInterface as BaseUuidInterface; + +/** + * A universally unique identifier (UUID), as defined in RFC 9562 (formerly RFC 4122) + * + * @link https://www.rfc-editor.org/rfc/rfc9562 RFC 9562 + * + * @immutable + */ +interface UuidInterface extends BaseUuidInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV1.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV1.php new file mode 100644 index 0000000..df2af6f --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV1.php @@ -0,0 +1,58 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; + +/** + * Gregorian time, or version 1, UUIDs include timestamp, clock sequence, and node values, combined into a 128-bit unsigned integer + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.1 RFC 9562, 5.1. UUID Version 1 + * + * @immutable + */ +final class UuidV1 extends Uuid implements UuidInterface +{ + use TimeTrait; + + /** + * Creates a version 1 (Gregorian time) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_TIME) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV1 must represent a version 1 (time-based) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV2.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV2.php new file mode 100644 index 0000000..c3417d7 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV2.php @@ -0,0 +1,107 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Uuid; + +use function hexdec; + +/** + * DCE Security version, or version 2, UUIDs include local domain identifier, local ID for the specified domain, and + * node values that are combined into a 128-bit unsigned integer + * + * It is important to note that a version 2 UUID suffers from some loss of timestamp fidelity, due to replacing the + * time_low field with the local identifier. When constructing the timestamp value for date purposes, we replace the + * local identifier bits with zeros. As a result, the timestamp can be off by a range of 0 to 429.4967295 seconds (or 7 + * minutes, 9 seconds, and 496,730 microseconds). + * + * Astute observers might note this value directly corresponds to `2^32-1`, or `0xffffffff`. The local identifier is + * 32-bits, and we have set each of these bits to `0`, so the maximum range of timestamp drift is `0x00000000` to + * `0xffffffff` (counted in 100-nanosecond intervals). + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.2 RFC 9562, 5.2. UUID Version 2 + * @link https://publications.opengroup.org/c311 DCE 1.1: Authentication and Security Services + * @link https://publications.opengroup.org/c706 DCE 1.1: Remote Procedure Call + * @link https://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01 DCE 1.1: Auth & Sec, §5.2.1.1 + * @link https://pubs.opengroup.org/onlinepubs/9696989899/chap11.htm#tagcjh_14_05_01_01 DCE 1.1: Auth & Sec, §11.5.1.1 + * @link https://pubs.opengroup.org/onlinepubs/9629399/apdxa.htm DCE 1.1: RPC, Appendix A + * @link https://github.com/google/uuid Go package for UUIDs (includes DCE implementation) + * + * @immutable + */ +final class UuidV2 extends Uuid implements UuidInterface +{ + use TimeTrait; + + /** + * Creates a version 2 (DCE Security) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_DCE_SECURITY) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV2 must represent a version 2 (DCE Security) UUID' + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } + + /** + * Returns the local domain used to create this version 2 UUID + */ + public function getLocalDomain(): int + { + /** @var Rfc4122FieldsInterface $fields */ + $fields = $this->getFields(); + + return (int) hexdec($fields->getClockSeqLow()->toString()); + } + + /** + * Returns the string name of the local domain + */ + public function getLocalDomainName(): string + { + return Uuid::DCE_DOMAIN_NAMES[$this->getLocalDomain()]; + } + + /** + * Returns the local identifier for the domain used to create this version 2 UUID + */ + public function getLocalIdentifier(): IntegerObject + { + /** @var Rfc4122FieldsInterface $fields */ + $fields = $this->getFields(); + + return new IntegerObject($this->numberConverter->fromHex($fields->getTimeLow()->toString())); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV3.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV3.php new file mode 100644 index 0000000..1b065e2 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV3.php @@ -0,0 +1,57 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; + +/** + * Version 3 UUIDs are named-based, using a combination of a namespace and name that are hashed into a 128-bit unsigned + * integer using the MD5 hashing algorithm + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.3 RFC 9562, 5.3. UUID Version 3 + * + * @immutable + */ +final class UuidV3 extends Uuid implements UuidInterface +{ + /** + * Creates a version 3 (name-based, MD5-hashed) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_HASH_MD5) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV3 must represent a version 3 (name-based, MD5-hashed) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV4.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV4.php new file mode 100644 index 0000000..e28ddc3 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV4.php @@ -0,0 +1,56 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; + +/** + * Random, or version 4, UUIDs are randomly or pseudo-randomly generated 128-bit integers + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.4 RFC 9562, 5.4. UUID Version 4 + * + * @immutable + */ +final class UuidV4 extends Uuid implements UuidInterface +{ + /** + * Creates a version 4 (random) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_RANDOM) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV4 must represent a version 4 (random) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV5.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV5.php new file mode 100644 index 0000000..be43908 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV5.php @@ -0,0 +1,57 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; + +/** + * Version 5 UUIDs are named-based, using a combination of a namespace and name that are hashed into a 128-bit unsigned + * integer using the SHA1 hashing algorithm + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.5 RFC 9562, 5.5. UUID Version 5 + * + * @immutable + */ +final class UuidV5 extends Uuid implements UuidInterface +{ + /** + * Creates a version 5 (name-based, SHA1-hashed) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_HASH_SHA1) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV5 must represent a version 5 (named-based, SHA1-hashed) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php new file mode 100644 index 0000000..3ae4ffc --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php @@ -0,0 +1,29 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Nonstandard\UuidV6 as NonstandardUuidV6; + +/** + * Reordered Gregorian time, or version 6, UUIDs include timestamp, clock sequence, and node values that are combined + * into a 128-bit unsigned integer + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.6 RFC 9562, 5.6. UUID Version 6 + * + * @immutable + */ +final class UuidV6 extends NonstandardUuidV6 implements UuidInterface +{ +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php new file mode 100644 index 0000000..1f2f4b5 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php @@ -0,0 +1,58 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; + +/** + * Unix Epoch time, or version 7, UUIDs include a timestamp in milliseconds since the Unix Epoch, along with random bytes + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.7 RFC 9562, 5.7. UUID Version 7 + * + * @immutable + */ +final class UuidV7 extends Uuid implements UuidInterface +{ + use TimeTrait; + + /** + * Creates a version 7 (Unix Epoch time) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_UNIX_TIME) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV7 must represent a version 7 (Unix Epoch time) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php b/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php new file mode 100644 index 0000000..ea57ec2 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php @@ -0,0 +1,60 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Uuid; + +/** + * Custom format, or version 8, UUIDs provide an RFC-compatible format for experimental or vendor-specific uses + * + * The only requirement for version 8 UUIDs is that the version and variant bits must be set. Otherwise, implementations + * are free to set the other bits according to their needs. As a result, the uniqueness of version 8 UUIDs is + * implementation-specific and should not be assumed. + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.8 RFC 9562, 5.8. UUID Version 8 + * + * @immutable + */ +final class UuidV8 extends Uuid implements UuidInterface +{ + /** + * Creates a version 8 (custom format) UUID + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + if ($fields->getVersion() !== Uuid::UUID_TYPE_CUSTOM) { + throw new InvalidArgumentException( + 'Fields used to create a UuidV8 must represent a version 8 (custom format) UUID', + ); + } + + parent::__construct($fields, $numberConverter, $codec, $timeConverter); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/Validator.php b/vendor/ramsey/uuid/src/Rfc4122/Validator.php new file mode 100644 index 0000000..1736286 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/Validator.php @@ -0,0 +1,49 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Uuid; +use Ramsey\Uuid\Validator\ValidatorInterface; + +use function preg_match; +use function str_replace; + +/** + * Rfc4122\Validator validates strings as UUIDs of the RFC 9562 (formerly RFC 4122) variant + * + * @immutable + */ +final class Validator implements ValidatorInterface +{ + private const VALID_PATTERN = '\A[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-' + . '[1-8][0-9A-Fa-f]{3}-[ABab89][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}\z'; + + /** + * @return non-empty-string + */ + public function getPattern(): string + { + return self::VALID_PATTERN; + } + + public function validate(string $uuid): bool + { + /** @phpstan-ignore possiblyImpure.functionCall */ + $uuid = strtolower(str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}'], '', $uuid)); + + /** @phpstan-ignore possiblyImpure.functionCall */ + return $uuid === Uuid::NIL || $uuid === Uuid::MAX || preg_match('/' . self::VALID_PATTERN . '/Dms', $uuid); + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php b/vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php new file mode 100644 index 0000000..3d39369 --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php @@ -0,0 +1,93 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Exception\InvalidBytesException; +use Ramsey\Uuid\Uuid; + +use function decbin; +use function str_pad; +use function str_starts_with; +use function strlen; +use function substr; +use function unpack; + +use const STR_PAD_LEFT; + +/** + * Provides common functionality for handling the variant, as defined by RFC 9562 (formerly RFC 4122) + * + * @immutable + */ +trait VariantTrait +{ + /** + * Returns the bytes that comprise the fields + */ + abstract public function getBytes(): string; + + /** + * Returns the variant + * + * The variant number describes the layout of the UUID. The variant number has the following meaning: + * + * - 0 - Reserved for NCS backward compatibility + * - 2 - The RFC 9562 (formerly RFC 4122) variant + * - 6 - Reserved, Microsoft Corporation backward compatibility + * - 7 - Reserved for future definition + * + * For RFC 9562 (formerly RFC 4122) variant UUIDs, this value should always be the integer `2`. + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + */ + public function getVariant(): int + { + if (strlen($this->getBytes()) !== 16) { + throw new InvalidBytesException('Invalid number of bytes'); + } + + // According to RFC 9562, sections {@link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 4.1} and + // {@link https://www.rfc-editor.org/rfc/rfc9562#section-5.10 5.10}, the Max UUID falls within the range + // of the future variant. + if ($this->isMax()) { + return Uuid::RESERVED_FUTURE; + } + + // According to RFC 9562, sections {@link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 4.1} and + // {@link https://www.rfc-editor.org/rfc/rfc9562#section-5.9 5.9}, the Nil UUID falls within the range + // of the Apollo NCS variant. + if ($this->isNil()) { + return Uuid::RESERVED_NCS; + } + + /** @var int[] $parts */ + $parts = unpack('n*', $this->getBytes()); + + // $parts[5] is a 16-bit, unsigned integer containing the variant bits of the UUID. We convert this integer into + // a string containing a binary representation, padded to 16 characters. We analyze the first three characters + // (three most-significant bits) to determine the variant. + $msb = substr(str_pad(decbin($parts[5]), 16, '0', STR_PAD_LEFT), 0, 3); + + if ($msb === '111') { + return Uuid::RESERVED_FUTURE; + } elseif ($msb === '110') { + return Uuid::RESERVED_MICROSOFT; + } elseif (str_starts_with($msb, '10')) { + return Uuid::RFC_4122; + } + + return Uuid::RESERVED_NCS; + } +} diff --git a/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php b/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php new file mode 100644 index 0000000..5f4e17b --- /dev/null +++ b/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php @@ -0,0 +1,78 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Rfc4122; + +use Ramsey\Uuid\Uuid; + +/** + * Provides common functionality for handling the version, as defined by RFC 9562 (formerly RFC 4122) + * + * @immutable + */ +trait VersionTrait +{ + /** + * Returns the UUID version + * + * The version number describes how the UUID was generated and has the following meaning: + * + * 1. Gregorian time UUID + * 2. DCE security UUID + * 3. Name-based UUID hashed with MD5 + * 4. Randomly generated UUID + * 5. Name-based UUID hashed with SHA-1 + * 6. Reordered Gregorian time UUID + * 7. Unix Epoch time UUID + * 8. Custom format UUID + * + * This returns `null` if the UUID is not an RFC 9562 (formerly RFC 4122) variant, since the version is only + * meaningful for this variant. + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + * + * @pure + */ + abstract public function getVersion(): ?int; + + /** + * Returns true if these fields represent a max UUID + */ + abstract public function isMax(): bool; + + /** + * Returns true if these fields represent a nil UUID + */ + abstract public function isNil(): bool; + + /** + * Returns true if the version matches one of those defined by RFC 9562 (formerly RFC 4122) + * + * @return bool True if the UUID version is valid, false otherwise + */ + private function isCorrectVersion(): bool + { + if ($this->isNil() || $this->isMax()) { + return true; + } + + return match ($this->getVersion()) { + Uuid::UUID_TYPE_TIME, Uuid::UUID_TYPE_DCE_SECURITY, + Uuid::UUID_TYPE_HASH_MD5, Uuid::UUID_TYPE_RANDOM, + Uuid::UUID_TYPE_HASH_SHA1, Uuid::UUID_TYPE_REORDERED_TIME, + Uuid::UUID_TYPE_UNIX_TIME, Uuid::UUID_TYPE_CUSTOM => true, + default => false, + }; + } +} diff --git a/vendor/ramsey/uuid/src/Type/Decimal.php b/vendor/ramsey/uuid/src/Type/Decimal.php new file mode 100644 index 0000000..b5b4f97 --- /dev/null +++ b/vendor/ramsey/uuid/src/Type/Decimal.php @@ -0,0 +1,125 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Type; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use ValueError; + +use function is_numeric; +use function sprintf; +use function str_starts_with; + +/** + * A value object representing a decimal + * + * This class exists for type-safety purposes, to ensure that decimals returned from ramsey/uuid methods as strings are + * truly decimals and not some other kind of string. + * + * To support values as true decimals and not as floats or doubles, we store the decimals as strings. + * + * @immutable + */ +final class Decimal implements NumberInterface +{ + private string $value; + private bool $isNegative; + + public function __construct(float | int | string | self $value) + { + $value = (string) $value; + + if (!is_numeric($value)) { + throw new InvalidArgumentException( + 'Value must be a signed decimal or a string containing only ' + . 'digits 0-9 and, optionally, a decimal point or sign (+ or -)' + ); + } + + // Remove the leading +-symbol. + if (str_starts_with($value, '+')) { + $value = substr($value, 1); + } + + // For cases like `-0` or `-0.0000`, convert the value to `0`. + if (abs((float) $value) === 0.0) { + $value = '0'; + } + + if (str_starts_with($value, '-')) { + $this->isNegative = true; + } else { + $this->isNegative = false; + } + + $this->value = $value; + } + + public function isNegative(): bool + { + return $this->isNegative; + } + + public function toString(): string + { + return $this->value; + } + + public function __toString(): string + { + return $this->toString(); + } + + public function jsonSerialize(): string + { + return $this->toString(); + } + + public function serialize(): string + { + return $this->toString(); + } + + /** + * @return array{string: string} + */ + public function __serialize(): array + { + return ['string' => $this->toString()]; + } + + /** + * Constructs the object from a serialized string representation + * + * @param string $data The serialized string representation of the object + */ + public function unserialize(string $data): void + { + $this->__construct($data); + } + + /** + * @param array{string?: string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['string'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->unserialize($data['string']); + } +} diff --git a/vendor/ramsey/uuid/src/Type/Hexadecimal.php b/vendor/ramsey/uuid/src/Type/Hexadecimal.php new file mode 100644 index 0000000..c411764 --- /dev/null +++ b/vendor/ramsey/uuid/src/Type/Hexadecimal.php @@ -0,0 +1,131 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Type; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use ValueError; + +use function preg_match; +use function sprintf; +use function substr; + +/** + * A value object representing a hexadecimal number + * + * This class exists for type-safety purposes, to ensure that hexadecimal numbers returned from ramsey/uuid methods as + * strings are truly hexadecimal and not some other kind of string. + * + * @immutable + */ +final class Hexadecimal implements TypeInterface +{ + /** + * @var non-empty-string + */ + private string $value; + + /** + * @param self | string $value The hexadecimal value to store + */ + public function __construct(self | string $value) + { + $this->value = $value instanceof self ? (string) $value : $this->prepareValue($value); + } + + /** + * @return non-empty-string + * + * @pure + */ + public function toString(): string + { + return $this->value; + } + + /** + * @return non-empty-string + */ + public function __toString(): string + { + return $this->toString(); + } + + /** + * @return non-empty-string + */ + public function jsonSerialize(): string + { + return $this->toString(); + } + + /** + * @return non-empty-string + */ + public function serialize(): string + { + return $this->toString(); + } + + /** + * @return array{string: string} + */ + public function __serialize(): array + { + return ['string' => $this->toString()]; + } + + /** + * Constructs the object from a serialized string representation + * + * @param string $data The serialized string representation of the object + */ + public function unserialize(string $data): void + { + $this->__construct($data); + } + + /** + * @param array{string?: string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['string'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->unserialize($data['string']); + } + + /** + * @return non-empty-string + */ + private function prepareValue(string $value): string + { + $value = strtolower($value); + + if (str_starts_with($value, '0x')) { + $value = substr($value, 2); + } + + if (!preg_match('/^[A-Fa-f0-9]+$/', $value)) { + throw new InvalidArgumentException('Value must be a hexadecimal number'); + } + + /** @var non-empty-string */ + return $value; + } +} diff --git a/vendor/ramsey/uuid/src/Type/Integer.php b/vendor/ramsey/uuid/src/Type/Integer.php new file mode 100644 index 0000000..ed6c82d --- /dev/null +++ b/vendor/ramsey/uuid/src/Type/Integer.php @@ -0,0 +1,160 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Type; + +use Ramsey\Uuid\Exception\InvalidArgumentException; +use ValueError; + +use function assert; +use function is_numeric; +use function preg_match; +use function sprintf; +use function substr; + +/** + * A value object representing an integer + * + * This class exists for type-safety purposes, to ensure that integers returned from ramsey/uuid methods as strings are + * truly integers and not some other kind of string. + * + * To support large integers beyond PHP_INT_MAX and PHP_INT_MIN on both 64-bit and 32-bit systems, we store the integers + * as strings. + * + * @immutable + */ +final class Integer implements NumberInterface +{ + /** + * @var numeric-string + */ + private string $value; + + /** + * @phpstan-ignore property.readOnlyByPhpDocDefaultValue + */ + private bool $isNegative = false; + + public function __construct(self | float | int | string $value) + { + $this->value = $value instanceof self ? (string) $value : $this->prepareValue($value); + } + + public function isNegative(): bool + { + return $this->isNegative; + } + + /** + * @return numeric-string + * + * @pure + */ + public function toString(): string + { + return $this->value; + } + + /** + * @return numeric-string + */ + public function __toString(): string + { + return $this->toString(); + } + + public function jsonSerialize(): string + { + return $this->toString(); + } + + public function serialize(): string + { + return $this->toString(); + } + + /** + * @return array{string: string} + */ + public function __serialize(): array + { + return ['string' => $this->toString()]; + } + + /** + * Constructs the object from a serialized string representation + * + * @param string $data The serialized string representation of the object + */ + public function unserialize(string $data): void + { + $this->__construct($data); + } + + /** + * @param array{string?: string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['string'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->unserialize($data['string']); + } + + /** + * @return numeric-string + */ + private function prepareValue(float | int | string $value): string + { + $value = (string) $value; + $sign = '+'; + + // If the value contains a sign, remove it for the digit pattern check. + if (str_starts_with($value, '-') || str_starts_with($value, '+')) { + $sign = substr($value, 0, 1); + $value = substr($value, 1); + } + + if (!preg_match('/^\d+$/', $value)) { + throw new InvalidArgumentException( + 'Value must be a signed integer or a string containing only ' + . 'digits 0-9 and, optionally, a sign (+ or -)' + ); + } + + // Trim any leading zeros. + $value = ltrim($value, '0'); + + // Set to zero if the string is empty after trimming zeros. + if ($value === '') { + $value = '0'; + } + + // Add the negative sign back to the value. + if ($sign === '-' && $value !== '0') { + $value = $sign . $value; + + /** @phpstan-ignore property.readOnlyByPhpDocAssignNotInConstructor */ + $this->isNegative = true; + } + + assert(is_numeric($value)); + + return $value; + } +} diff --git a/vendor/ramsey/uuid/src/Type/NumberInterface.php b/vendor/ramsey/uuid/src/Type/NumberInterface.php new file mode 100644 index 0000000..d85e103 --- /dev/null +++ b/vendor/ramsey/uuid/src/Type/NumberInterface.php @@ -0,0 +1,28 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Type; + +/** + * NumberInterface ensures consistency in numeric values returned by ramsey/uuid + * + * @immutable + */ +interface NumberInterface extends TypeInterface +{ + /** + * Returns true if this number is less than zero + */ + public function isNegative(): bool; +} diff --git a/vendor/ramsey/uuid/src/Type/Time.php b/vendor/ramsey/uuid/src/Type/Time.php new file mode 100644 index 0000000..2556c5b --- /dev/null +++ b/vendor/ramsey/uuid/src/Type/Time.php @@ -0,0 +1,129 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Type; + +use Ramsey\Uuid\Exception\UnsupportedOperationException; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use ValueError; + +use function json_decode; +use function json_encode; +use function sprintf; + +/** + * A value object representing a timestamp + * + * This class exists for type-safety purposes, to ensure that timestamps used by ramsey/uuid are truly timestamp + * integers and not some other kind of string or integer. + * + * @immutable + */ +final class Time implements TypeInterface +{ + private IntegerObject $seconds; + private IntegerObject $microseconds; + + public function __construct( + IntegerObject | float | int | string $seconds, + IntegerObject | float | int | string $microseconds = 0, + ) { + $this->seconds = new IntegerObject($seconds); + $this->microseconds = new IntegerObject($microseconds); + } + + /** + * @pure + */ + public function getSeconds(): IntegerObject + { + return $this->seconds; + } + + /** + * @pure + */ + public function getMicroseconds(): IntegerObject + { + return $this->microseconds; + } + + public function toString(): string + { + return $this->seconds->toString() . '.' . sprintf('%06s', $this->microseconds->toString()); + } + + public function __toString(): string + { + return $this->toString(); + } + + /** + * @return string[] + */ + public function jsonSerialize(): array + { + return [ + 'seconds' => $this->getSeconds()->toString(), + 'microseconds' => $this->getMicroseconds()->toString(), + ]; + } + + public function serialize(): string + { + return (string) json_encode($this); + } + + /** + * @return array{seconds: string, microseconds: string} + */ + public function __serialize(): array + { + return [ + 'seconds' => $this->getSeconds()->toString(), + 'microseconds' => $this->getMicroseconds()->toString(), + ]; + } + + /** + * Constructs the object from a serialized string representation + * + * @param string $data The serialized string representation of the object + */ + public function unserialize(string $data): void + { + /** @var array{seconds?: float | int | string, microseconds?: float | int | string} $time */ + $time = json_decode($data, true); + + if (!isset($time['seconds']) || !isset($time['microseconds'])) { + throw new UnsupportedOperationException('Attempted to unserialize an invalid value'); + } + + $this->__construct($time['seconds'], $time['microseconds']); + } + + /** + * @param array{seconds?: string, microseconds?: string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['seconds']) || !isset($data['microseconds'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->__construct($data['seconds'], $data['microseconds']); + } +} diff --git a/vendor/ramsey/uuid/src/Type/TypeInterface.php b/vendor/ramsey/uuid/src/Type/TypeInterface.php new file mode 100644 index 0000000..0c88a28 --- /dev/null +++ b/vendor/ramsey/uuid/src/Type/TypeInterface.php @@ -0,0 +1,36 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Type; + +use JsonSerializable; +use Serializable; + +/** + * TypeInterface ensures consistency in typed values returned by ramsey/uuid + * + * @immutable + */ +interface TypeInterface extends JsonSerializable, Serializable +{ + /** + * @pure + */ + public function toString(): string; + + /** + * @pure + */ + public function __toString(): string; +} diff --git a/vendor/ramsey/uuid/src/Uuid.php b/vendor/ramsey/uuid/src/Uuid.php new file mode 100644 index 0000000..0f05bbf --- /dev/null +++ b/vendor/ramsey/uuid/src/Uuid.php @@ -0,0 +1,730 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use BadMethodCallException; +use DateTimeInterface; +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Exception\InvalidArgumentException; +use Ramsey\Uuid\Exception\UnsupportedOperationException; +use Ramsey\Uuid\Fields\FieldsInterface; +use Ramsey\Uuid\Lazy\LazyUuidFromString; +use Ramsey\Uuid\Rfc4122\FieldsInterface as Rfc4122FieldsInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use ValueError; + +use function assert; +use function bin2hex; +use function method_exists; +use function preg_match; +use function sprintf; +use function str_replace; +use function strcmp; +use function strlen; +use function strtolower; +use function substr; + +/** + * Uuid provides constants and static methods for working with and generating UUIDs + * + * @immutable + */ +class Uuid implements UuidInterface +{ + use DeprecatedUuidMethodsTrait; + + /** + * When this namespace is specified, the name string is a fully qualified domain name + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-6.6 RFC 9562, 6.6. Namespace ID Usage and Allocation + */ + public const NAMESPACE_DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; + + /** + * When this namespace is specified, the name string is a URL + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-6.6 RFC 9562, 6.6. Namespace ID Usage and Allocation + */ + public const NAMESPACE_URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; + + /** + * When this namespace is specified, the name string is an ISO OID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-6.6 RFC 9562, 6.6. Namespace ID Usage and Allocation + */ + public const NAMESPACE_OID = '6ba7b812-9dad-11d1-80b4-00c04fd430c8'; + + /** + * When this namespace is specified, the name string is an X.500 DN (in DER or a text output format) + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-6.6 RFC 9562, 6.6. Namespace ID Usage and Allocation + */ + public const NAMESPACE_X500 = '6ba7b814-9dad-11d1-80b4-00c04fd430c8'; + + /** + * The Nil UUID is a special form of UUID that is specified to have all 128 bits set to zero + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.9 RFC 9562, 5.9. Nil UUID + */ + public const NIL = '00000000-0000-0000-0000-000000000000'; + + /** + * The Max UUID is a special form of UUID that is specified to have all 128 bits set to one + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-5.10 RFC 9562, 5.10. Max UUID + */ + public const MAX = 'ffffffff-ffff-ffff-ffff-ffffffffffff'; + + /** + * Variant: reserved, NCS backward compatibility + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + */ + public const RESERVED_NCS = 0; + + /** + * Variant: the UUID layout specified in RFC 9562 (formerly RFC 4122) + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + * @see Uuid::RFC_9562 + */ + public const RFC_4122 = 2; + + /** + * Variant: the UUID layout specified in RFC 9562 (formerly RFC 4122) + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + */ + public const RFC_9562 = 2; + + /** + * Variant: reserved, Microsoft Corporation backward compatibility + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + */ + public const RESERVED_MICROSOFT = 6; + + /** + * Variant: reserved for future definition + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.1 RFC 9562, 4.1. Variant Field + */ + public const RESERVED_FUTURE = 7; + + /** + * @deprecated Use {@see ValidatorInterface::getPattern()} instead. + */ + public const VALID_PATTERN = '^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$'; + + /** + * Version 1 (Gregorian time) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_TIME = 1; + + /** + * Version 2 (DCE Security) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_DCE_SECURITY = 2; + + /** + * @deprecated Use {@see Uuid::UUID_TYPE_DCE_SECURITY} instead. + */ + public const UUID_TYPE_IDENTIFIER = 2; + + /** + * Version 3 (name-based and hashed with MD5) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_HASH_MD5 = 3; + + /** + * Version 4 (random) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_RANDOM = 4; + + /** + * Version 5 (name-based and hashed with SHA1) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_HASH_SHA1 = 5; + + /** + * @deprecated Use {@see Uuid::UUID_TYPE_REORDERED_TIME} instead. + */ + public const UUID_TYPE_PEABODY = 6; + + /** + * Version 6 (reordered Gregorian time) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_REORDERED_TIME = 6; + + /** + * Version 7 (Unix Epoch time) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_UNIX_TIME = 7; + + /** + * Version 8 (custom format) UUID + * + * @link https://www.rfc-editor.org/rfc/rfc9562#section-4.2 RFC 9562, 4.2. Version Field + */ + public const UUID_TYPE_CUSTOM = 8; + + /** + * DCE Security principal domain + * + * @link https://pubs.opengroup.org/onlinepubs/9696989899/chap11.htm#tagcjh_14_05_01_01 DCE 1.1, §11.5.1.1 + */ + public const DCE_DOMAIN_PERSON = 0; + + /** + * DCE Security group domain + * + * @link https://pubs.opengroup.org/onlinepubs/9696989899/chap11.htm#tagcjh_14_05_01_01 DCE 1.1, §11.5.1.1 + */ + public const DCE_DOMAIN_GROUP = 1; + + /** + * DCE Security organization domain + * + * @link https://pubs.opengroup.org/onlinepubs/9696989899/chap11.htm#tagcjh_14_05_01_01 DCE 1.1, §11.5.1.1 + */ + public const DCE_DOMAIN_ORG = 2; + + /** + * DCE Security domain string names + * + * @link https://pubs.opengroup.org/onlinepubs/9696989899/chap11.htm#tagcjh_14_05_01_01 DCE 1.1, §11.5.1.1 + */ + public const DCE_DOMAIN_NAMES = [ + self::DCE_DOMAIN_PERSON => 'person', + self::DCE_DOMAIN_GROUP => 'group', + self::DCE_DOMAIN_ORG => 'org', + ]; + + /** + * @phpstan-ignore property.readOnlyByPhpDocDefaultValue + */ + private static ?UuidFactoryInterface $factory = null; + + /** + * @var bool flag to detect if the UUID factory was replaced internally, which disables all optimizations for the + * default/happy path internal scenarios + * @phpstan-ignore property.readOnlyByPhpDocDefaultValue + */ + private static bool $factoryReplaced = false; + + protected CodecInterface $codec; + protected NumberConverterInterface $numberConverter; + protected Rfc4122FieldsInterface $fields; + protected TimeConverterInterface $timeConverter; + + /** + * Creates a universally unique identifier (UUID) from an array of fields + * + * Unless you're making advanced use of this library to generate identifiers that deviate from RFC 9562 (formerly + * RFC 4122), you probably do not want to instantiate a UUID directly. Use the static methods, instead: + * + * ``` + * use Ramsey\Uuid\Uuid; + * + * $timeBasedUuid = Uuid::uuid1(); + * $namespaceMd5Uuid = Uuid::uuid3(Uuid::NAMESPACE_URL, 'http://php.net/'); + * $randomUuid = Uuid::uuid4(); + * $namespaceSha1Uuid = Uuid::uuid5(Uuid::NAMESPACE_URL, 'http://php.net/'); + * ``` + * + * @param Rfc4122FieldsInterface $fields The fields from which to construct a UUID + * @param NumberConverterInterface $numberConverter The number converter to use for converting hex values to/from integers + * @param CodecInterface $codec The codec to use when encoding or decoding UUID strings + * @param TimeConverterInterface $timeConverter The time converter to use for converting timestamps extracted from a + * UUID to unix timestamps + */ + public function __construct( + Rfc4122FieldsInterface $fields, + NumberConverterInterface $numberConverter, + CodecInterface $codec, + TimeConverterInterface $timeConverter, + ) { + $this->fields = $fields; + $this->codec = $codec; + $this->numberConverter = $numberConverter; + $this->timeConverter = $timeConverter; + } + + /** + * @return non-empty-string + */ + public function __toString(): string + { + return $this->toString(); + } + + /** + * Converts the UUID to a string for JSON serialization + */ + public function jsonSerialize(): string + { + return $this->toString(); + } + + /** + * Converts the UUID to a string for PHP serialization + */ + public function serialize(): string + { + return $this->codec->encode($this); + } + + /** + * @return array{bytes: string} + */ + public function __serialize(): array + { + return ['bytes' => $this->serialize()]; + } + + /** + * Re-constructs the object from its serialized form + * + * @param string $data The serialized PHP string to unserialize into a UuidInterface instance + */ + public function unserialize(string $data): void + { + if (strlen($data) === 16) { + /** @var Uuid $uuid */ + $uuid = self::getFactory()->fromBytes($data); + } else { + /** @var Uuid $uuid */ + $uuid = self::getFactory()->fromString($data); + } + + /** @phpstan-ignore property.readOnlyByPhpDocAssignNotInConstructor */ + $this->codec = $uuid->codec; + + /** @phpstan-ignore property.readOnlyByPhpDocAssignNotInConstructor */ + $this->numberConverter = $uuid->numberConverter; + + /** @phpstan-ignore property.readOnlyByPhpDocAssignNotInConstructor */ + $this->fields = $uuid->fields; + + /** @phpstan-ignore property.readOnlyByPhpDocAssignNotInConstructor */ + $this->timeConverter = $uuid->timeConverter; + } + + /** + * @param array{bytes?: string} $data + */ + public function __unserialize(array $data): void + { + // @codeCoverageIgnoreStart + if (!isset($data['bytes'])) { + throw new ValueError(sprintf('%s(): Argument #1 ($data) is invalid', __METHOD__)); + } + // @codeCoverageIgnoreEnd + + $this->unserialize($data['bytes']); + } + + public function compareTo(UuidInterface $other): int + { + $compare = strcmp($this->toString(), $other->toString()); + + if ($compare < 0) { + return -1; + } + + if ($compare > 0) { + return 1; + } + + return 0; + } + + public function equals(?object $other): bool + { + if (!$other instanceof UuidInterface) { + return false; + } + + return $this->compareTo($other) === 0; + } + + /** + * @return non-empty-string + */ + public function getBytes(): string + { + return $this->codec->encodeBinary($this); + } + + public function getFields(): FieldsInterface + { + return $this->fields; + } + + public function getHex(): Hexadecimal + { + return new Hexadecimal(str_replace('-', '', $this->toString())); + } + + public function getInteger(): IntegerObject + { + return new IntegerObject($this->numberConverter->fromHex($this->getHex()->toString())); + } + + public function getUrn(): string + { + return 'urn:uuid:' . $this->toString(); + } + + /** + * @return non-empty-string + */ + public function toString(): string + { + return $this->codec->encode($this); + } + + /** + * Returns the factory used to create UUIDs + */ + public static function getFactory(): UuidFactoryInterface + { + if (self::$factory === null) { + self::$factory = new UuidFactory(); + } + + return self::$factory; + } + + /** + * Sets the factory used to create UUIDs + * + * @param UuidFactoryInterface $factory A factory that will be used by this class to create UUIDs + */ + public static function setFactory(UuidFactoryInterface $factory): void + { + // Note: non-strict equality is intentional here. If the factory is configured differently, every assumption + // around purity is broken, and we have to internally decide everything differently. + // phpcs:ignore SlevomatCodingStandard.Operators.DisallowEqualOperators.DisallowedNotEqualOperator + self::$factoryReplaced = ($factory != new UuidFactory()); + + self::$factory = $factory; + } + + /** + * Creates a UUID from a byte string + * + * @param string $bytes A binary string + * + * @return UuidInterface A UuidInterface instance created from a binary string representation + * + * @throws InvalidArgumentException + * + * @pure + */ + public static function fromBytes(string $bytes): UuidInterface + { + /** @phpstan-ignore impure.staticPropertyAccess */ + if (!self::$factoryReplaced && strlen($bytes) === 16) { + $base16Uuid = bin2hex($bytes); + + // Note: we are calling `fromString` internally because we don't know if the given `$bytes` is a valid UUID + return self::fromString( + substr($base16Uuid, 0, 8) + . '-' + . substr($base16Uuid, 8, 4) + . '-' + . substr($base16Uuid, 12, 4) + . '-' + . substr($base16Uuid, 16, 4) + . '-' + . substr($base16Uuid, 20, 12), + ); + } + + /** @phpstan-ignore possiblyImpure.methodCall */ + return self::getFactory()->fromBytes($bytes); + } + + /** + * Creates a UUID from the string standard representation + * + * @param string $uuid A hexadecimal string + * + * @return UuidInterface A UuidInterface instance created from a hexadecimal string representation + * + * @throws InvalidArgumentException + * + * @pure + */ + public static function fromString(string $uuid): UuidInterface + { + $uuid = strtolower($uuid); + /** @phpstan-ignore impure.staticPropertyAccess, possiblyImpure.functionCall */ + if (!self::$factoryReplaced && preg_match(LazyUuidFromString::VALID_REGEX, $uuid) === 1) { + /** @phpstan-ignore possiblyImpure.functionCall */ + assert($uuid !== ''); + + /** @phpstan-ignore possiblyImpure.new */ + return new LazyUuidFromString($uuid); + } + + /** @phpstan-ignore possiblyImpure.methodCall */ + return self::getFactory()->fromString($uuid); + } + + /** + * Creates a UUID from a DateTimeInterface instance + * + * @param DateTimeInterface $dateTime The date and time + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 1 UUID created from a DateTimeInterface instance + */ + public static function fromDateTime( + DateTimeInterface $dateTime, + ?Hexadecimal $node = null, + ?int $clockSeq = null + ): UuidInterface { + return self::getFactory()->fromDateTime($dateTime, $node, $clockSeq); + } + + /** + * Creates a UUID from the Hexadecimal object + * + * @param Hexadecimal $hex Hexadecimal object representing a hexadecimal number + * + * @return UuidInterface A UuidInterface instance created from the Hexadecimal object representing a hexadecimal number + * + * @throws InvalidArgumentException + * + * @pure + */ + public static function fromHexadecimal(Hexadecimal $hex): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $factory = self::getFactory(); + + if (method_exists($factory, 'fromHexadecimal')) { + /** @phpstan-ignore possiblyImpure.methodCall */ + $uuid = $factory->fromHexadecimal($hex); + /** @phpstan-ignore possiblyImpure.functionCall */ + assert($uuid instanceof UuidInterface); + + return $uuid; + } + + throw new BadMethodCallException('The method fromHexadecimal() does not exist on the provided factory'); + } + + /** + * Creates a UUID from a 128-bit integer string + * + * @param string $integer String representation of 128-bit integer + * + * @return UuidInterface A UuidInterface instance created from the string representation of a 128-bit integer + * + * @throws InvalidArgumentException + * + * @pure + */ + public static function fromInteger(string $integer): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + return self::getFactory()->fromInteger($integer); + } + + /** + * Returns true if the provided string is a valid UUID + * + * @param string $uuid A string to validate as a UUID + * + * @return bool True if the string is a valid UUID, false otherwise + * + * @phpstan-assert-if-true =non-empty-string $uuid + * + * @pure + */ + public static function isValid(string $uuid): bool + { + /** @phpstan-ignore possiblyImpure.methodCall, possiblyImpure.methodCall */ + return self::getFactory()->getValidator()->validate($uuid); + } + + /** + * Returns a version 1 (Gregorian time) UUID from a host ID, sequence number, and the current time + * + * @param Hexadecimal | int | string | null $node A 48-bit number representing the hardware address; this number may + * be represented as an integer or a hexadecimal string + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 1 UUID + */ + public static function uuid1($node = null, ?int $clockSeq = null): UuidInterface + { + return self::getFactory()->uuid1($node, $clockSeq); + } + + /** + * Returns a version 2 (DCE Security) UUID from a local domain, local identifier, host ID, clock sequence, and the current time + * + * @param int $localDomain The local domain to use when generating bytes, according to DCE Security + * @param IntegerObject | null $localIdentifier The local identifier for the given domain; this may be a UID or GID + * on POSIX systems, if the local domain is "person" or "group," or it may be a site-defined identifier if the + * local domain is "org" + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes (in a version 2 UUID, the lower 8 bits of this number are + * replaced with the domain). + * + * @return UuidInterface A UuidInterface instance that represents a version 2 UUID + */ + public static function uuid2( + int $localDomain, + ?IntegerObject $localIdentifier = null, + ?Hexadecimal $node = null, + ?int $clockSeq = null + ): UuidInterface { + return self::getFactory()->uuid2($localDomain, $localIdentifier, $node, $clockSeq); + } + + /** + * Returns a version 3 (name-based) UUID based on the MD5 hash of a namespace ID and a name + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * @param string $name The name to use for creating a UUID + * + * @return UuidInterface A UuidInterface instance that represents a version 3 UUID + * + * @pure + */ + public static function uuid3($ns, string $name): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + return self::getFactory()->uuid3($ns, $name); + } + + /** + * Returns a version 4 (random) UUID + * + * @return UuidInterface A UuidInterface instance that represents a version 4 UUID + */ + public static function uuid4(): UuidInterface + { + return self::getFactory()->uuid4(); + } + + /** + * Returns a version 5 (name-based) UUID based on the SHA-1 hash of a namespace ID and a name + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * @param string $name The name to use for creating a UUID + * + * @return UuidInterface A UuidInterface instance that represents a version 5 UUID + * + * @pure + */ + public static function uuid5($ns, string $name): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + return self::getFactory()->uuid5($ns, $name); + } + + /** + * Returns a version 6 (reordered Gregorian time) UUID from a host ID, sequence number, and the current time + * + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 6 UUID + */ + public static function uuid6( + ?Hexadecimal $node = null, + ?int $clockSeq = null + ): UuidInterface { + return self::getFactory()->uuid6($node, $clockSeq); + } + + /** + * Returns a version 7 (Unix Epoch time) UUID + * + * @param DateTimeInterface | null $dateTime An optional date/time from which to create the version 7 UUID. If not + * provided, the UUID is generated using the current date/time. + * + * @return UuidInterface A UuidInterface instance that represents a version 7 UUID + */ + public static function uuid7(?DateTimeInterface $dateTime = null): UuidInterface + { + $factory = self::getFactory(); + + if (method_exists($factory, 'uuid7')) { + /** @var UuidInterface */ + return $factory->uuid7($dateTime); + } + + throw new UnsupportedOperationException('The provided factory does not support the uuid7() method'); + } + + /** + * Returns a version 8 (custom format) UUID + * + * The bytes provided may contain any value according to your application's needs. Be aware, however, that other + * applications may not understand the semantics of the value. + * + * @param string $bytes A 16-byte octet string. This is an open blob of data that you may fill with 128 bits of + * information. Be aware, however, bits 48 through 51 will be replaced with the UUID version field, and bits 64 + * and 65 will be replaced with the UUID variant. You MUST NOT rely on these bits for your application needs. + * + * @return UuidInterface A UuidInterface instance that represents a version 8 UUID + * + * @pure + */ + public static function uuid8(string $bytes): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + $factory = self::getFactory(); + + if (method_exists($factory, 'uuid8')) { + /** + * @var UuidInterface + * @phpstan-ignore possiblyImpure.methodCall + */ + return $factory->uuid8($bytes); + } + + throw new UnsupportedOperationException('The provided factory does not support the uuid8() method'); + } +} diff --git a/vendor/ramsey/uuid/src/UuidFactory.php b/vendor/ramsey/uuid/src/UuidFactory.php new file mode 100644 index 0000000..c7607a1 --- /dev/null +++ b/vendor/ramsey/uuid/src/UuidFactory.php @@ -0,0 +1,476 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use DateTimeInterface; +use Ramsey\Uuid\Builder\UuidBuilderInterface; +use Ramsey\Uuid\Codec\CodecInterface; +use Ramsey\Uuid\Converter\NumberConverterInterface; +use Ramsey\Uuid\Converter\TimeConverterInterface; +use Ramsey\Uuid\Generator\DceSecurityGeneratorInterface; +use Ramsey\Uuid\Generator\DefaultTimeGenerator; +use Ramsey\Uuid\Generator\NameGeneratorInterface; +use Ramsey\Uuid\Generator\RandomGeneratorInterface; +use Ramsey\Uuid\Generator\TimeGeneratorInterface; +use Ramsey\Uuid\Generator\UnixTimeGenerator; +use Ramsey\Uuid\Lazy\LazyUuidFromString; +use Ramsey\Uuid\Provider\NodeProviderInterface; +use Ramsey\Uuid\Provider\Time\FixedTimeProvider; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Type\Time; +use Ramsey\Uuid\Validator\ValidatorInterface; + +use function bin2hex; +use function hex2bin; +use function pack; +use function str_pad; +use function strtolower; +use function substr; +use function substr_replace; +use function unpack; + +use const STR_PAD_LEFT; + +class UuidFactory implements UuidFactoryInterface +{ + private CodecInterface $codec; + private DceSecurityGeneratorInterface $dceSecurityGenerator; + private NameGeneratorInterface $nameGenerator; + private NodeProviderInterface $nodeProvider; + private NumberConverterInterface $numberConverter; + private RandomGeneratorInterface $randomGenerator; + private TimeConverterInterface $timeConverter; + private TimeGeneratorInterface $timeGenerator; + private TimeGeneratorInterface $unixTimeGenerator; + private UuidBuilderInterface $uuidBuilder; + private ValidatorInterface $validator; + + /** + * @var bool whether the feature set was provided from outside, or we can operate under "default" assumptions + */ + private bool $isDefaultFeatureSet; + + /** + * @param FeatureSet | null $features A set of available features in the current environment + */ + public function __construct(?FeatureSet $features = null) + { + $this->isDefaultFeatureSet = $features === null; + + $features = $features ?: new FeatureSet(); + + $this->codec = $features->getCodec(); + $this->dceSecurityGenerator = $features->getDceSecurityGenerator(); + $this->nameGenerator = $features->getNameGenerator(); + $this->nodeProvider = $features->getNodeProvider(); + $this->numberConverter = $features->getNumberConverter(); + $this->randomGenerator = $features->getRandomGenerator(); + $this->timeConverter = $features->getTimeConverter(); + $this->timeGenerator = $features->getTimeGenerator(); + $this->uuidBuilder = $features->getBuilder(); + $this->validator = $features->getValidator(); + $this->unixTimeGenerator = $features->getUnixTimeGenerator(); + } + + /** + * Returns the codec used by this factory + */ + public function getCodec(): CodecInterface + { + return $this->codec; + } + + /** + * Sets the codec to use for this factory + * + * @param CodecInterface $codec A UUID encoder-decoder + */ + public function setCodec(CodecInterface $codec): void + { + $this->isDefaultFeatureSet = false; + + $this->codec = $codec; + } + + /** + * Returns the name generator used by this factory + */ + public function getNameGenerator(): NameGeneratorInterface + { + return $this->nameGenerator; + } + + /** + * Sets the name generator to use for this factory + * + * @param NameGeneratorInterface $nameGenerator A generator to generate binary data, based on a namespace and name + */ + public function setNameGenerator(NameGeneratorInterface $nameGenerator): void + { + $this->isDefaultFeatureSet = false; + + $this->nameGenerator = $nameGenerator; + } + + /** + * Returns the node provider used by this factory + */ + public function getNodeProvider(): NodeProviderInterface + { + return $this->nodeProvider; + } + + /** + * Returns the random generator used by this factory + */ + public function getRandomGenerator(): RandomGeneratorInterface + { + return $this->randomGenerator; + } + + /** + * Returns the time generator used by this factory + */ + public function getTimeGenerator(): TimeGeneratorInterface + { + return $this->timeGenerator; + } + + /** + * Sets the time generator to use for this factory + * + * @param TimeGeneratorInterface $generator A generator to generate binary data, based on the time + */ + public function setTimeGenerator(TimeGeneratorInterface $generator): void + { + $this->isDefaultFeatureSet = false; + + $this->timeGenerator = $generator; + } + + /** + * Returns the DCE Security generator used by this factory + */ + public function getDceSecurityGenerator(): DceSecurityGeneratorInterface + { + return $this->dceSecurityGenerator; + } + + /** + * Sets the DCE Security generator to use for this factory + * + * @param DceSecurityGeneratorInterface $generator A generator to generate binary data, based on a local domain and + * local identifier + */ + public function setDceSecurityGenerator(DceSecurityGeneratorInterface $generator): void + { + $this->isDefaultFeatureSet = false; + + $this->dceSecurityGenerator = $generator; + } + + /** + * Returns the number converter used by this factory + */ + public function getNumberConverter(): NumberConverterInterface + { + return $this->numberConverter; + } + + /** + * Sets the random generator to use for this factory + * + * @param RandomGeneratorInterface $generator A generator to generate binary data, based on some random input + */ + public function setRandomGenerator(RandomGeneratorInterface $generator): void + { + $this->isDefaultFeatureSet = false; + + $this->randomGenerator = $generator; + } + + /** + * Sets the number converter to use for this factory + * + * @param NumberConverterInterface $converter A converter to use for working with large integers (i.e., integers + * greater than PHP_INT_MAX) + */ + public function setNumberConverter(NumberConverterInterface $converter): void + { + $this->isDefaultFeatureSet = false; + + $this->numberConverter = $converter; + } + + /** + * Returns the UUID builder used by this factory + */ + public function getUuidBuilder(): UuidBuilderInterface + { + return $this->uuidBuilder; + } + + /** + * Sets the UUID builder to use for this factory + * + * @param UuidBuilderInterface $builder A builder for constructing instances of UuidInterface + */ + public function setUuidBuilder(UuidBuilderInterface $builder): void + { + $this->isDefaultFeatureSet = false; + + $this->uuidBuilder = $builder; + } + + public function getValidator(): ValidatorInterface + { + return $this->validator; + } + + /** + * Sets the validator to use for this factory + * + * @param ValidatorInterface $validator A validator to use for validating whether a string is a valid UUID + */ + public function setValidator(ValidatorInterface $validator): void + { + $this->isDefaultFeatureSet = false; + + $this->validator = $validator; + } + + /** + * @pure + */ + public function fromBytes(string $bytes): UuidInterface + { + return $this->codec->decodeBytes($bytes); + } + + /** + * @pure + */ + public function fromString(string $uuid): UuidInterface + { + $uuid = strtolower($uuid); + + return $this->codec->decode($uuid); + } + + /** + * @pure + */ + public function fromInteger(string $integer): UuidInterface + { + $hex = $this->numberConverter->toHex($integer); + $hex = str_pad($hex, 32, '0', STR_PAD_LEFT); + + return $this->fromString($hex); + } + + public function fromDateTime( + DateTimeInterface $dateTime, + ?Hexadecimal $node = null, + ?int $clockSeq = null, + ): UuidInterface { + $timeProvider = new FixedTimeProvider(new Time($dateTime->format('U'), $dateTime->format('u'))); + $timeGenerator = new DefaultTimeGenerator($this->nodeProvider, $this->timeConverter, $timeProvider); + $bytes = $timeGenerator->generate($node?->toString(), $clockSeq); + + return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_TIME); + } + + /** + * @pure + */ + public function fromHexadecimal(Hexadecimal $hex): UuidInterface + { + return $this->codec->decode($hex->__toString()); + } + + /** + * @inheritDoc + */ + public function uuid1($node = null, ?int $clockSeq = null): UuidInterface + { + $bytes = $this->timeGenerator->generate($node, $clockSeq); + + return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_TIME); + } + + public function uuid2( + int $localDomain, + ?IntegerObject $localIdentifier = null, + ?Hexadecimal $node = null, + ?int $clockSeq = null, + ): UuidInterface { + $bytes = $this->dceSecurityGenerator->generate($localDomain, $localIdentifier, $node, $clockSeq); + + return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_DCE_SECURITY); + } + + /** + * @inheritDoc + * @pure + */ + public function uuid3($ns, string $name): UuidInterface + { + return $this->uuidFromNsAndName($ns, $name, Uuid::UUID_TYPE_HASH_MD5, 'md5'); + } + + public function uuid4(): UuidInterface + { + $bytes = $this->randomGenerator->generate(16); + + return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_RANDOM); + } + + /** + * @inheritDoc + * @pure + */ + public function uuid5($ns, string $name): UuidInterface + { + return $this->uuidFromNsAndName($ns, $name, Uuid::UUID_TYPE_HASH_SHA1, 'sha1'); + } + + public function uuid6(?Hexadecimal $node = null, ?int $clockSeq = null): UuidInterface + { + $bytes = $this->timeGenerator->generate($node?->toString(), $clockSeq); + + // Rearrange the bytes, according to the UUID version 6 specification. + $v6 = $bytes[6] . $bytes[7] . $bytes[4] . $bytes[5] + . $bytes[0] . $bytes[1] . $bytes[2] . $bytes[3]; + $v6 = bin2hex($v6); + + // Drop the first four bits, while adding an empty four bits for the version field. This allows us to + // reconstruct the correct time from the bytes of this UUID. + $v6Bytes = hex2bin(substr($v6, 1, 12) . '0' . substr($v6, -3)); + $v6Bytes .= substr($bytes, 8); + + return $this->uuidFromBytesAndVersion($v6Bytes, Uuid::UUID_TYPE_REORDERED_TIME); + } + + /** + * Returns a version 7 (Unix Epoch time) UUID + * + * @param DateTimeInterface | null $dateTime An optional date/time from which to create the version 7 UUID. If not + * provided, the UUID is generated using the current date/time. + * + * @return UuidInterface A UuidInterface instance that represents a version 7 UUID + */ + public function uuid7(?DateTimeInterface $dateTime = null): UuidInterface + { + assert($this->unixTimeGenerator instanceof UnixTimeGenerator); + $bytes = $this->unixTimeGenerator->generate(null, null, $dateTime); + + return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_UNIX_TIME); + } + + /** + * Returns a version 8 (custom format) UUID + * + * The bytes provided may contain any value according to your application's needs. Be aware, however, that other + * applications may not understand the semantics of the value. + * + * @param string $bytes A 16-byte octet string. This is an open blob of data that you may fill with 128 bits of + * information. Be aware, however, bits 48 through 51 will be replaced with the UUID version field, and bits 64 + * and 65 will be replaced with the UUID variant. You MUST NOT rely on these bits for your application needs. + * + * @return UuidInterface A UuidInterface instance that represents a version 8 UUID + * + * @pure + */ + public function uuid8(string $bytes): UuidInterface + { + /** @phpstan-ignore possiblyImpure.methodCall */ + return $this->uuidFromBytesAndVersion($bytes, Uuid::UUID_TYPE_CUSTOM); + } + + /** + * Returns a Uuid created from the provided byte string + * + * Uses the configured builder and codec and the provided byte string to construct a Uuid object. + * + * @param string $bytes The byte string from which to construct a UUID + * + * @return UuidInterface An instance of UuidInterface, created from the provided bytes + * + * @pure + */ + public function uuid(string $bytes): UuidInterface + { + return $this->uuidBuilder->build($this->codec, $bytes); + } + + /** + * Returns a version 3 or 5 namespaced Uuid + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * @param string $name The name to hash together with the namespace + * @param int $version The version of UUID to create (3 or 5) + * @param string $hashAlgorithm The hashing algorithm to use when hashing together the namespace and name + * + * @return UuidInterface An instance of UuidInterface, created by hashing together the provided namespace and name + * + * @pure + */ + private function uuidFromNsAndName( + UuidInterface | string $ns, + string $name, + int $version, + string $hashAlgorithm, + ): UuidInterface { + if (!($ns instanceof UuidInterface)) { + $ns = $this->fromString($ns); + } + + $bytes = $this->nameGenerator->generate($ns, $name, $hashAlgorithm); + + /** @phpstan-ignore possiblyImpure.methodCall */ + return $this->uuidFromBytesAndVersion(substr($bytes, 0, 16), $version); + } + + /** + * Returns a Uuid created from the provided bytes and version + * + * @param string $bytes The byte string to convert to a UUID + * @param int $version The version to apply to the UUID + * + * @return UuidInterface An instance of UuidInterface, created from the byte string and version + */ + private function uuidFromBytesAndVersion(string $bytes, int $version): UuidInterface + { + /** @var int[] $unpackedTime */ + $unpackedTime = unpack('n*', substr($bytes, 6, 2)); + $timeHi = $unpackedTime[1]; + $timeHiAndVersion = pack('n*', BinaryUtils::applyVersion($timeHi, $version)); + + /** @var int[] $unpackedClockSeq */ + $unpackedClockSeq = unpack('n*', substr($bytes, 8, 2)); + $clockSeqHi = $unpackedClockSeq[1]; + $clockSeqHiAndReserved = pack('n*', BinaryUtils::applyVariant($clockSeqHi)); + + $bytes = substr_replace($bytes, $timeHiAndVersion, 6, 2); + $bytes = substr_replace($bytes, $clockSeqHiAndReserved, 8, 2); + + if ($this->isDefaultFeatureSet) { + return LazyUuidFromString::fromBytes($bytes); + } + + return $this->uuid($bytes); + } +} diff --git a/vendor/ramsey/uuid/src/UuidFactoryInterface.php b/vendor/ramsey/uuid/src/UuidFactoryInterface.php new file mode 100644 index 0000000..5a83a79 --- /dev/null +++ b/vendor/ramsey/uuid/src/UuidFactoryInterface.php @@ -0,0 +1,155 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use DateTimeInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Ramsey\Uuid\Validator\ValidatorInterface; + +/** + * UuidFactoryInterface defines the common functionality all `UuidFactory` instances must implement + */ +interface UuidFactoryInterface +{ + /** + * Creates a UUID from a byte string + * + * @param string $bytes A binary string + * + * @return UuidInterface A UuidInterface instance created from a binary string representation + * + * @pure + */ + public function fromBytes(string $bytes): UuidInterface; + + /** + * Creates a UUID from a DateTimeInterface instance + * + * @param DateTimeInterface $dateTime The date and time + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 1 UUID created from a DateTimeInterface instance + */ + public function fromDateTime( + DateTimeInterface $dateTime, + ?Hexadecimal $node = null, + ?int $clockSeq = null, + ): UuidInterface; + + /** + * Creates a UUID from a 128-bit integer string + * + * @param string $integer String representation of 128-bit integer + * + * @return UuidInterface A UuidInterface instance created from the string representation of a 128-bit integer + * + * @pure + */ + public function fromInteger(string $integer): UuidInterface; + + /** + * Creates a UUID from the string standard representation + * + * @param string $uuid A hexadecimal string + * + * @return UuidInterface A UuidInterface instance created from a hexadecimal string representation + * + * @pure + */ + public function fromString(string $uuid): UuidInterface; + + /** + * Returns the validator used by the factory + */ + public function getValidator(): ValidatorInterface; + + /** + * Returns a version 1 (Gregorian time) UUID from a host ID, sequence number, and the current time + * + * @param Hexadecimal | int | string | null $node A 48-bit number representing the hardware address; this number may + * be represented as an integer or a hexadecimal string + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 1 UUID + */ + public function uuid1($node = null, ?int $clockSeq = null): UuidInterface; + + /** + * Returns a version 2 (DCE Security) UUID from a local domain, local identifier, host ID, clock sequence, and the + * current time + * + * @param int $localDomain The local domain to use when generating bytes, according to DCE Security + * @param IntegerObject | null $localIdentifier The local identifier for the given domain; this may be a UID or GID + * on POSIX systems, if the local domain is a person or group, or it may be a site-defined identifier if the + * local domain is org + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 2 UUID + */ + public function uuid2( + int $localDomain, + ?IntegerObject $localIdentifier = null, + ?Hexadecimal $node = null, + ?int $clockSeq = null, + ): UuidInterface; + + /** + * Returns a version 3 (name-based) UUID based on the MD5 hash of a namespace ID and a name + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * @param string $name The name to use for creating a UUID + * + * @return UuidInterface A UuidInterface instance that represents a version 3 UUID + * + * @pure + */ + public function uuid3($ns, string $name): UuidInterface; + + /** + * Returns a version 4 (random) UUID + * + * @return UuidInterface A UuidInterface instance that represents a version 4 UUID + */ + public function uuid4(): UuidInterface; + + /** + * Returns a version 5 (name-based) UUID based on the SHA-1 hash of a namespace ID and a name + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * @param string $name The name to use for creating a UUID + * + * @return UuidInterface A UuidInterface instance that represents a version 5 UUID + * + * @pure + */ + public function uuid5($ns, string $name): UuidInterface; + + /** + * Returns a version 6 (reordered Gregorian time) UUID from a host ID, sequence number, and the current time + * + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return UuidInterface A UuidInterface instance that represents a version 6 UUID + */ + public function uuid6(?Hexadecimal $node = null, ?int $clockSeq = null): UuidInterface; +} diff --git a/vendor/ramsey/uuid/src/UuidInterface.php b/vendor/ramsey/uuid/src/UuidInterface.php new file mode 100644 index 0000000..38525cb --- /dev/null +++ b/vendor/ramsey/uuid/src/UuidInterface.php @@ -0,0 +1,110 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use JsonSerializable; +use Ramsey\Uuid\Fields\FieldsInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; +use Serializable; +use Stringable; + +/** + * A UUID is a universally unique identifier adhering to an agreed-upon representation format and standard for generation + * + * @immutable + */ +interface UuidInterface extends + DeprecatedUuidInterface, + JsonSerializable, + Serializable, + Stringable +{ + /** + * Returns -1, 0, or 1 if the UUID is less than, equal to, or greater than the other UUID + * + * The first of two UUIDs is greater than the second if the most significant field in which the UUIDs differ is + * greater for the first UUID. + * + * @param UuidInterface $other The UUID to compare + * + * @return int<-1,1> -1, 0, or 1 if the UUID is less than, equal to, or greater than $other + */ + public function compareTo(UuidInterface $other): int; + + /** + * Returns true if the UUID is equal to the provided object + * + * The result is true if and only if the argument is not null, is a UUID object, has the same variant, and contains + * the same value, bit-for-bit, as the UUID. + * + * @param object | null $other An object to test for equality with this UUID + * + * @return bool True if the other object is equal to this UUID + */ + public function equals(?object $other): bool; + + /** + * Returns the binary string representation of the UUID + * + * @return non-empty-string + * + * @pure + */ + public function getBytes(): string; + + /** + * Returns the fields that comprise this UUID + */ + public function getFields(): FieldsInterface; + + /** + * Returns the hexadecimal representation of the UUID + */ + public function getHex(): Hexadecimal; + + /** + * Returns the integer representation of the UUID + */ + public function getInteger(): IntegerObject; + + /** + * Returns the string standard representation of the UUID as a URN + * + * @link http://en.wikipedia.org/wiki/Uniform_Resource_Name Uniform Resource Name + * @link https://www.rfc-editor.org/rfc/rfc9562.html#section-4 RFC 9562, 4. UUID Format + * @link https://www.rfc-editor.org/rfc/rfc9562.html#section-7 RFC 9562, 7. IANA Considerations + * @link https://www.rfc-editor.org/rfc/rfc4122.html#section-3 RFC 4122, 3. Namespace Registration Template + */ + public function getUrn(): string; + + /** + * Returns the string standard representation of the UUID + * + * @return non-empty-string + * + * @pure + */ + public function toString(): string; + + /** + * Casts the UUID to the string standard representation + * + * @return non-empty-string + * + * @pure + */ + public function __toString(): string; +} diff --git a/vendor/ramsey/uuid/src/Validator/GenericValidator.php b/vendor/ramsey/uuid/src/Validator/GenericValidator.php new file mode 100644 index 0000000..6d60647 --- /dev/null +++ b/vendor/ramsey/uuid/src/Validator/GenericValidator.php @@ -0,0 +1,50 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Validator; + +use Ramsey\Uuid\Uuid; + +use function preg_match; +use function str_replace; + +/** + * GenericValidator validates strings as UUIDs of any variant + * + * @immutable + */ +final class GenericValidator implements ValidatorInterface +{ + /** + * Regular expression pattern for matching a UUID of any variant. + */ + private const VALID_PATTERN = '\A[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\z'; + + /** + * @return non-empty-string + */ + public function getPattern(): string + { + return self::VALID_PATTERN; + } + + public function validate(string $uuid): bool + { + /** @phpstan-ignore possiblyImpure.functionCall */ + $uuid = str_replace(['urn:', 'uuid:', 'URN:', 'UUID:', '{', '}'], '', $uuid); + + /** @phpstan-ignore possiblyImpure.functionCall */ + return $uuid === Uuid::NIL || preg_match('/' . self::VALID_PATTERN . '/Dms', $uuid); + } +} diff --git a/vendor/ramsey/uuid/src/Validator/ValidatorInterface.php b/vendor/ramsey/uuid/src/Validator/ValidatorInterface.php new file mode 100644 index 0000000..95dc8eb --- /dev/null +++ b/vendor/ramsey/uuid/src/Validator/ValidatorInterface.php @@ -0,0 +1,41 @@ + + * @license http://opensource.org/licenses/MIT MIT + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid\Validator; + +/** + * A validator validates a string as a proper UUID + * + * @immutable + */ +interface ValidatorInterface +{ + /** + * Returns the regular expression pattern used by this validator + * + * @return non-empty-string The regular expression pattern this validator uses + */ + public function getPattern(): string; + + /** + * Returns true if the provided string represents a UUID + * + * @param string $uuid The string to validate as a UUID + * + * @return bool True if the string is a valid UUID, false otherwise + * + * @pure + */ + public function validate(string $uuid): bool; +} diff --git a/vendor/ramsey/uuid/src/functions.php b/vendor/ramsey/uuid/src/functions.php new file mode 100644 index 0000000..854c5c5 --- /dev/null +++ b/vendor/ramsey/uuid/src/functions.php @@ -0,0 +1,141 @@ + + * @license http://opensource.org/licenses/MIT MIT + * phpcs:disable Squiz.Functions.GlobalFunction + */ + +declare(strict_types=1); + +namespace Ramsey\Uuid; + +use DateTimeInterface; +use Ramsey\Uuid\Type\Hexadecimal; +use Ramsey\Uuid\Type\Integer as IntegerObject; + +/** + * Returns a version 1 (Gregorian time) UUID from a host ID, sequence number, and the current time + * + * @param Hexadecimal | int | string | null $node A 48-bit number representing the hardware address; this number may be + * represented as an integer or a hexadecimal string + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return non-empty-string Version 1 UUID as a string + */ +function v1($node = null, ?int $clockSeq = null): string +{ + return Uuid::uuid1($node, $clockSeq)->toString(); +} + +/** + * Returns a version 2 (DCE Security) UUID from a local domain, local identifier, host ID, clock sequence, and the current time + * + * @param int $localDomain The local domain to use when generating bytes, according to DCE Security + * @param IntegerObject | null $localIdentifier The local identifier for the given domain; this may be a UID or GID on + * POSIX systems, if the local domain is a person or group, or it may be a site-defined identifier if the local + * domain is org + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return non-empty-string Version 2 UUID as a string + */ +function v2( + int $localDomain, + ?IntegerObject $localIdentifier = null, + ?Hexadecimal $node = null, + ?int $clockSeq = null, +): string { + return Uuid::uuid2($localDomain, $localIdentifier, $node, $clockSeq)->toString(); +} + +/** + * Returns a version 3 (name-based) UUID based on the MD5 hash of a namespace ID and a name + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * + * @return non-empty-string Version 3 UUID as a string + * + * @pure + */ +function v3($ns, string $name): string +{ + return Uuid::uuid3($ns, $name)->toString(); +} + +/** + * Returns a version 4 (random) UUID + * + * @return non-empty-string Version 4 UUID as a string + */ +function v4(): string +{ + return Uuid::uuid4()->toString(); +} + +/** + * Returns a version 5 (name-based) UUID based on the SHA-1 hash of a namespace ID and a name + * + * @param UuidInterface | string $ns The namespace (must be a valid UUID) + * + * @return non-empty-string Version 5 UUID as a string + * + * @pure + */ +function v5($ns, string $name): string +{ + return Uuid::uuid5($ns, $name)->toString(); +} + +/** + * Returns a version 6 (reordered Gregorian time) UUID from a host ID, sequence number, and the current time + * + * @param Hexadecimal | null $node A 48-bit number representing the hardware address + * @param int | null $clockSeq A 14-bit number used to help avoid duplicates that could arise when the clock is set + * backwards in time or if the node ID changes + * + * @return non-empty-string Version 6 UUID as a string + */ +function v6(?Hexadecimal $node = null, ?int $clockSeq = null): string +{ + return Uuid::uuid6($node, $clockSeq)->toString(); +} + +/** + * Returns a version 7 (Unix Epoch time) UUID + * + * @param DateTimeInterface|null $dateTime An optional date/time from which to create the version 7 UUID. If not + * provided, the UUID is generated using the current date/time. + * + * @return non-empty-string Version 7 UUID as a string + */ +function v7(?DateTimeInterface $dateTime = null): string +{ + return Uuid::uuid7($dateTime)->toString(); +} + +/** + * Returns a version 8 (custom format) UUID + * + * The bytes provided may contain any value according to your application's needs. Be aware, however, that other + * applications may not understand the semantics of the value. + * + * @param string $bytes A 16-byte octet string. This is an open blob of data that you may fill with 128 bits of + * information. Be aware, however, bits 48 through 51 will be replaced with the UUID version field, and bits 64 and + * 65 will be replaced with the UUID variant. You MUST NOT rely on these bits for your application needs. + * + * @return non-empty-string Version 8 UUID as a string + * + * @pure + */ +function v8(string $bytes): string +{ + return Uuid::uuid8($bytes)->toString(); +} diff --git a/vendor/symfony/deprecation-contracts/CHANGELOG.md b/vendor/symfony/deprecation-contracts/CHANGELOG.md new file mode 100644 index 0000000..7932e26 --- /dev/null +++ b/vendor/symfony/deprecation-contracts/CHANGELOG.md @@ -0,0 +1,5 @@ +CHANGELOG +========= + +The changelog is maintained for all Symfony contracts at the following URL: +https://github.com/symfony/contracts/blob/main/CHANGELOG.md diff --git a/vendor/symfony/deprecation-contracts/LICENSE b/vendor/symfony/deprecation-contracts/LICENSE new file mode 100644 index 0000000..0ed3a24 --- /dev/null +++ b/vendor/symfony/deprecation-contracts/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020-present 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/deprecation-contracts/README.md b/vendor/symfony/deprecation-contracts/README.md new file mode 100644 index 0000000..9814864 --- /dev/null +++ b/vendor/symfony/deprecation-contracts/README.md @@ -0,0 +1,26 @@ +Symfony Deprecation Contracts +============================= + +A generic function and convention to trigger deprecation notices. + +This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices. + +By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component, +the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments. + +The function requires at least 3 arguments: + - the name of the Composer package that is triggering the deprecation + - the version of the package that introduced the deprecation + - the message of the deprecation + - more arguments can be provided: they will be inserted in the message using `printf()` formatting + +Example: +```php +trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin'); +``` + +This will generate the following message: +`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.` + +While not recommended, the deprecation notices can be completely ignored by declaring an empty +`function trigger_deprecation() {}` in your application. diff --git a/vendor/symfony/deprecation-contracts/composer.json b/vendor/symfony/deprecation-contracts/composer.json new file mode 100644 index 0000000..5533b5c --- /dev/null +++ b/vendor/symfony/deprecation-contracts/composer.json @@ -0,0 +1,35 @@ +{ + "name": "symfony/deprecation-contracts", + "type": "library", + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "license": "MIT", + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "require": { + "php": ">=8.1" + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "minimum-stability": "dev", + "extra": { + "branch-alias": { + "dev-main": "3.6-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + } +} diff --git a/vendor/symfony/deprecation-contracts/function.php b/vendor/symfony/deprecation-contracts/function.php new file mode 100644 index 0000000..2d56512 --- /dev/null +++ b/vendor/symfony/deprecation-contracts/function.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (!function_exists('trigger_deprecation')) { + /** + * Triggers a silenced deprecation notice. + * + * @param string $package The name of the Composer package that is triggering the deprecation + * @param string $version The version of the package that introduced the deprecation + * @param string $message The message of the deprecation + * @param mixed ...$args Values to insert in the message using printf() formatting + * + * @author Nicolas Grekas + */ + function trigger_deprecation(string $package, string $version, string $message, mixed ...$args): void + { + @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED); + } +}