From 9d63bb1b418f6c1bbcc8434fff5d8aba810ee5d7 Mon Sep 17 00:00:00 2001 From: Taran Pelkey Date: Sat, 6 Apr 2024 01:26:02 -0400 Subject: [PATCH] Added new API errors for LDAP (#19415) * change internal errors to named errors * Change names --- cmd/admin-handlers-idp-ldap.go | 20 ++- cmd/api-errors.go | 13 +- cmd/apierrorcode_string.go | 290 +++++++++++++++++---------------- 3 files changed, 173 insertions(+), 150 deletions(-) diff --git a/cmd/admin-handlers-idp-ldap.go b/cmd/admin-handlers-idp-ldap.go index 8302df13a4c41..b492904b8a688 100644 --- a/cmd/admin-handlers-idp-ldap.go +++ b/cmd/admin-handlers-idp-ldap.go @@ -20,7 +20,6 @@ package cmd import ( "encoding/json" "errors" - "fmt" "io" "net/http" "strings" @@ -104,6 +103,12 @@ func (a adminAPIHandlers) AttachDetachPolicyLDAP(w http.ResponseWriter, r *http. return } + // fail if ldap is not enabled + if !globalIAMSys.LDAPConfig.Enabled() { + writeErrorResponseJSON(ctx, w, errorCodes.ToAPIErr(ErrAdminLDAPNotEnabled), r.URL) + return + } + if r.ContentLength > maxEConfigJSONSize || r.ContentLength == -1 { // More than maxConfigSize bytes were available writeErrorResponseJSON(ctx, w, errorCodes.ToAPIErr(ErrAdminConfigTooLarge), r.URL) @@ -191,7 +196,7 @@ func (a adminAPIHandlers) AddServiceAccountLDAP(w http.ResponseWriter, r *http.R // fail if ldap is not enabled if !globalIAMSys.LDAPConfig.Enabled() { - writeErrorResponseJSON(ctx, w, toAdminAPIErr(ctx, errors.New("LDAP not enabled")), r.URL) + writeErrorResponseJSON(ctx, w, errorCodes.ToAPIErr(ErrAdminLDAPNotEnabled), r.URL) return } @@ -258,13 +263,18 @@ func (a adminAPIHandlers) AddServiceAccountLDAP(w http.ResponseWriter, r *http.R // The target user may be supplied as a (short) username or a DN. // However, for now, we only support using the short username. + isDN := globalIAMSys.LDAPConfig.ParsesAsDN(targetUser) opts.claims[ldapUserN] = targetUser // simple username targetUser, targetGroups, err = globalIAMSys.LDAPConfig.LookupUserDN(targetUser) if err != nil { // if not found, check if DN - if strings.Contains(err.Error(), "not found") && globalIAMSys.LDAPConfig.ParsesAsDN(targetUser) { - // warn user that DNs are not allowed - err = fmt.Errorf("Must use short username to add service account. %w", err) + if strings.Contains(err.Error(), "User DN not found for:") { + if isDN { + // warn user that DNs are not allowed + writeErrorResponseJSON(ctx, w, errorCodes.ToAPIErrWithErr(ErrAdminLDAPExpectedLoginName, err), r.URL) + } else { + writeErrorResponseJSON(ctx, w, errorCodes.ToAPIErrWithErr(ErrAdminNoSuchUser, err), r.URL) + } } writeErrorResponseJSON(ctx, w, toAdminAPIErr(ctx, err), r.URL) return diff --git a/cmd/api-errors.go b/cmd/api-errors.go index fe164c4f111b6..677656dde2b64 100644 --- a/cmd/api-errors.go +++ b/cmd/api-errors.go @@ -278,6 +278,7 @@ const ( ErrMalformedJSON ErrAdminNoSuchUser ErrAdminNoSuchUserLDAPWarn + ErrAdminLDAPExpectedLoginName ErrAdminNoSuchGroup ErrAdminGroupNotEmpty ErrAdminGroupDisabled @@ -300,6 +301,7 @@ const ( ErrAdminConfigIDPCfgNameDoesNotExist ErrInsecureClientRequest ErrObjectTampered + ErrAdminLDAPNotEnabled // Site-Replication errors ErrSiteReplicationInvalidRequest @@ -2079,7 +2081,16 @@ var errorCodes = errorCodeMap{ Description: "Invalid attribute name specified.", HTTPStatusCode: http.StatusBadRequest, }, - // Add your error structure here. + ErrAdminLDAPNotEnabled: { + Code: "XMinioLDAPNotEnabled", + Description: "LDAP is not enabled. LDAP must be enabled to make LDAP requests.", + HTTPStatusCode: http.StatusNotImplemented, + }, + ErrAdminLDAPExpectedLoginName: { + Code: "XMinioLDAPExpectedLoginName", + Description: "Expected LDAP short username but was given full DN.", + HTTPStatusCode: http.StatusBadRequest, + }, } // toAPIErrorCode - Converts embedded errors. Convenience diff --git a/cmd/apierrorcode_string.go b/cmd/apierrorcode_string.go index 34f184e71a947..0d74e06bd7218 100644 --- a/cmd/apierrorcode_string.go +++ b/cmd/apierrorcode_string.go @@ -188,153 +188,155 @@ func _() { _ = x[ErrMalformedJSON-177] _ = x[ErrAdminNoSuchUser-178] _ = x[ErrAdminNoSuchUserLDAPWarn-179] - _ = x[ErrAdminNoSuchGroup-180] - _ = x[ErrAdminGroupNotEmpty-181] - _ = x[ErrAdminGroupDisabled-182] - _ = x[ErrAdminNoSuchJob-183] - _ = x[ErrAdminNoSuchPolicy-184] - _ = x[ErrAdminPolicyChangeAlreadyApplied-185] - _ = x[ErrAdminInvalidArgument-186] - _ = x[ErrAdminInvalidAccessKey-187] - _ = x[ErrAdminInvalidSecretKey-188] - _ = x[ErrAdminConfigNoQuorum-189] - _ = x[ErrAdminConfigTooLarge-190] - _ = x[ErrAdminConfigBadJSON-191] - _ = x[ErrAdminNoSuchConfigTarget-192] - _ = x[ErrAdminConfigEnvOverridden-193] - _ = x[ErrAdminConfigDuplicateKeys-194] - _ = x[ErrAdminConfigInvalidIDPType-195] - _ = x[ErrAdminConfigLDAPNonDefaultConfigName-196] - _ = x[ErrAdminConfigLDAPValidation-197] - _ = x[ErrAdminConfigIDPCfgNameAlreadyExists-198] - _ = x[ErrAdminConfigIDPCfgNameDoesNotExist-199] - _ = x[ErrInsecureClientRequest-200] - _ = x[ErrObjectTampered-201] - _ = x[ErrSiteReplicationInvalidRequest-202] - _ = x[ErrSiteReplicationPeerResp-203] - _ = x[ErrSiteReplicationBackendIssue-204] - _ = x[ErrSiteReplicationServiceAccountError-205] - _ = x[ErrSiteReplicationBucketConfigError-206] - _ = x[ErrSiteReplicationBucketMetaError-207] - _ = x[ErrSiteReplicationIAMError-208] - _ = x[ErrSiteReplicationConfigMissing-209] - _ = x[ErrSiteReplicationIAMConfigMismatch-210] - _ = x[ErrAdminRebalanceAlreadyStarted-211] - _ = x[ErrAdminRebalanceNotStarted-212] - _ = x[ErrAdminBucketQuotaExceeded-213] - _ = x[ErrAdminNoSuchQuotaConfiguration-214] - _ = x[ErrHealNotImplemented-215] - _ = x[ErrHealNoSuchProcess-216] - _ = x[ErrHealInvalidClientToken-217] - _ = x[ErrHealMissingBucket-218] - _ = x[ErrHealAlreadyRunning-219] - _ = x[ErrHealOverlappingPaths-220] - _ = x[ErrIncorrectContinuationToken-221] - _ = x[ErrEmptyRequestBody-222] - _ = x[ErrUnsupportedFunction-223] - _ = x[ErrInvalidExpressionType-224] - _ = x[ErrBusy-225] - _ = x[ErrUnauthorizedAccess-226] - _ = x[ErrExpressionTooLong-227] - _ = x[ErrIllegalSQLFunctionArgument-228] - _ = x[ErrInvalidKeyPath-229] - _ = x[ErrInvalidCompressionFormat-230] - _ = x[ErrInvalidFileHeaderInfo-231] - _ = x[ErrInvalidJSONType-232] - _ = x[ErrInvalidQuoteFields-233] - _ = x[ErrInvalidRequestParameter-234] - _ = x[ErrInvalidDataType-235] - _ = x[ErrInvalidTextEncoding-236] - _ = x[ErrInvalidDataSource-237] - _ = x[ErrInvalidTableAlias-238] - _ = x[ErrMissingRequiredParameter-239] - _ = x[ErrObjectSerializationConflict-240] - _ = x[ErrUnsupportedSQLOperation-241] - _ = x[ErrUnsupportedSQLStructure-242] - _ = x[ErrUnsupportedSyntax-243] - _ = x[ErrUnsupportedRangeHeader-244] - _ = x[ErrLexerInvalidChar-245] - _ = x[ErrLexerInvalidOperator-246] - _ = x[ErrLexerInvalidLiteral-247] - _ = x[ErrLexerInvalidIONLiteral-248] - _ = x[ErrParseExpectedDatePart-249] - _ = x[ErrParseExpectedKeyword-250] - _ = x[ErrParseExpectedTokenType-251] - _ = x[ErrParseExpected2TokenTypes-252] - _ = x[ErrParseExpectedNumber-253] - _ = x[ErrParseExpectedRightParenBuiltinFunctionCall-254] - _ = x[ErrParseExpectedTypeName-255] - _ = x[ErrParseExpectedWhenClause-256] - _ = x[ErrParseUnsupportedToken-257] - _ = x[ErrParseUnsupportedLiteralsGroupBy-258] - _ = x[ErrParseExpectedMember-259] - _ = x[ErrParseUnsupportedSelect-260] - _ = x[ErrParseUnsupportedCase-261] - _ = x[ErrParseUnsupportedCaseClause-262] - _ = x[ErrParseUnsupportedAlias-263] - _ = x[ErrParseUnsupportedSyntax-264] - _ = x[ErrParseUnknownOperator-265] - _ = x[ErrParseMissingIdentAfterAt-266] - _ = x[ErrParseUnexpectedOperator-267] - _ = x[ErrParseUnexpectedTerm-268] - _ = x[ErrParseUnexpectedToken-269] - _ = x[ErrParseUnexpectedKeyword-270] - _ = x[ErrParseExpectedExpression-271] - _ = x[ErrParseExpectedLeftParenAfterCast-272] - _ = x[ErrParseExpectedLeftParenValueConstructor-273] - _ = x[ErrParseExpectedLeftParenBuiltinFunctionCall-274] - _ = x[ErrParseExpectedArgumentDelimiter-275] - _ = x[ErrParseCastArity-276] - _ = x[ErrParseInvalidTypeParam-277] - _ = x[ErrParseEmptySelect-278] - _ = x[ErrParseSelectMissingFrom-279] - _ = x[ErrParseExpectedIdentForGroupName-280] - _ = x[ErrParseExpectedIdentForAlias-281] - _ = x[ErrParseUnsupportedCallWithStar-282] - _ = x[ErrParseNonUnaryAggregateFunctionCall-283] - _ = x[ErrParseMalformedJoin-284] - _ = x[ErrParseExpectedIdentForAt-285] - _ = x[ErrParseAsteriskIsNotAloneInSelectList-286] - _ = x[ErrParseCannotMixSqbAndWildcardInSelectList-287] - _ = x[ErrParseInvalidContextForWildcardInSelectList-288] - _ = x[ErrIncorrectSQLFunctionArgumentType-289] - _ = x[ErrValueParseFailure-290] - _ = x[ErrEvaluatorInvalidArguments-291] - _ = x[ErrIntegerOverflow-292] - _ = x[ErrLikeInvalidInputs-293] - _ = x[ErrCastFailed-294] - _ = x[ErrInvalidCast-295] - _ = x[ErrEvaluatorInvalidTimestampFormatPattern-296] - _ = x[ErrEvaluatorInvalidTimestampFormatPatternSymbolForParsing-297] - _ = x[ErrEvaluatorTimestampFormatPatternDuplicateFields-298] - _ = x[ErrEvaluatorTimestampFormatPatternHourClockAmPmMismatch-299] - _ = x[ErrEvaluatorUnterminatedTimestampFormatPatternToken-300] - _ = x[ErrEvaluatorInvalidTimestampFormatPatternToken-301] - _ = x[ErrEvaluatorInvalidTimestampFormatPatternSymbol-302] - _ = x[ErrEvaluatorBindingDoesNotExist-303] - _ = x[ErrMissingHeaders-304] - _ = x[ErrInvalidColumnIndex-305] - _ = x[ErrAdminConfigNotificationTargetsFailed-306] - _ = x[ErrAdminProfilerNotEnabled-307] - _ = x[ErrInvalidDecompressedSize-308] - _ = x[ErrAddUserInvalidArgument-309] - _ = x[ErrAdminResourceInvalidArgument-310] - _ = x[ErrAdminAccountNotEligible-311] - _ = x[ErrAccountNotEligible-312] - _ = x[ErrAdminServiceAccountNotFound-313] - _ = x[ErrPostPolicyConditionInvalidFormat-314] - _ = x[ErrInvalidChecksum-315] - _ = x[ErrLambdaARNInvalid-316] - _ = x[ErrLambdaARNNotFound-317] - _ = x[ErrInvalidAttributeName-318] - _ = x[ErrAdminNoAccessKey-319] - _ = x[ErrAdminNoSecretKey-320] - _ = x[apiErrCodeEnd-321] + _ = x[ErrAdminLDAPExpectedLoginName-180] + _ = x[ErrAdminNoSuchGroup-181] + _ = x[ErrAdminGroupNotEmpty-182] + _ = x[ErrAdminGroupDisabled-183] + _ = x[ErrAdminNoSuchJob-184] + _ = x[ErrAdminNoSuchPolicy-185] + _ = x[ErrAdminPolicyChangeAlreadyApplied-186] + _ = x[ErrAdminInvalidArgument-187] + _ = x[ErrAdminInvalidAccessKey-188] + _ = x[ErrAdminInvalidSecretKey-189] + _ = x[ErrAdminConfigNoQuorum-190] + _ = x[ErrAdminConfigTooLarge-191] + _ = x[ErrAdminConfigBadJSON-192] + _ = x[ErrAdminNoSuchConfigTarget-193] + _ = x[ErrAdminConfigEnvOverridden-194] + _ = x[ErrAdminConfigDuplicateKeys-195] + _ = x[ErrAdminConfigInvalidIDPType-196] + _ = x[ErrAdminConfigLDAPNonDefaultConfigName-197] + _ = x[ErrAdminConfigLDAPValidation-198] + _ = x[ErrAdminConfigIDPCfgNameAlreadyExists-199] + _ = x[ErrAdminConfigIDPCfgNameDoesNotExist-200] + _ = x[ErrInsecureClientRequest-201] + _ = x[ErrObjectTampered-202] + _ = x[ErrAdminLDAPNotEnabled-203] + _ = x[ErrSiteReplicationInvalidRequest-204] + _ = x[ErrSiteReplicationPeerResp-205] + _ = x[ErrSiteReplicationBackendIssue-206] + _ = x[ErrSiteReplicationServiceAccountError-207] + _ = x[ErrSiteReplicationBucketConfigError-208] + _ = x[ErrSiteReplicationBucketMetaError-209] + _ = x[ErrSiteReplicationIAMError-210] + _ = x[ErrSiteReplicationConfigMissing-211] + _ = x[ErrSiteReplicationIAMConfigMismatch-212] + _ = x[ErrAdminRebalanceAlreadyStarted-213] + _ = x[ErrAdminRebalanceNotStarted-214] + _ = x[ErrAdminBucketQuotaExceeded-215] + _ = x[ErrAdminNoSuchQuotaConfiguration-216] + _ = x[ErrHealNotImplemented-217] + _ = x[ErrHealNoSuchProcess-218] + _ = x[ErrHealInvalidClientToken-219] + _ = x[ErrHealMissingBucket-220] + _ = x[ErrHealAlreadyRunning-221] + _ = x[ErrHealOverlappingPaths-222] + _ = x[ErrIncorrectContinuationToken-223] + _ = x[ErrEmptyRequestBody-224] + _ = x[ErrUnsupportedFunction-225] + _ = x[ErrInvalidExpressionType-226] + _ = x[ErrBusy-227] + _ = x[ErrUnauthorizedAccess-228] + _ = x[ErrExpressionTooLong-229] + _ = x[ErrIllegalSQLFunctionArgument-230] + _ = x[ErrInvalidKeyPath-231] + _ = x[ErrInvalidCompressionFormat-232] + _ = x[ErrInvalidFileHeaderInfo-233] + _ = x[ErrInvalidJSONType-234] + _ = x[ErrInvalidQuoteFields-235] + _ = x[ErrInvalidRequestParameter-236] + _ = x[ErrInvalidDataType-237] + _ = x[ErrInvalidTextEncoding-238] + _ = x[ErrInvalidDataSource-239] + _ = x[ErrInvalidTableAlias-240] + _ = x[ErrMissingRequiredParameter-241] + _ = x[ErrObjectSerializationConflict-242] + _ = x[ErrUnsupportedSQLOperation-243] + _ = x[ErrUnsupportedSQLStructure-244] + _ = x[ErrUnsupportedSyntax-245] + _ = x[ErrUnsupportedRangeHeader-246] + _ = x[ErrLexerInvalidChar-247] + _ = x[ErrLexerInvalidOperator-248] + _ = x[ErrLexerInvalidLiteral-249] + _ = x[ErrLexerInvalidIONLiteral-250] + _ = x[ErrParseExpectedDatePart-251] + _ = x[ErrParseExpectedKeyword-252] + _ = x[ErrParseExpectedTokenType-253] + _ = x[ErrParseExpected2TokenTypes-254] + _ = x[ErrParseExpectedNumber-255] + _ = x[ErrParseExpectedRightParenBuiltinFunctionCall-256] + _ = x[ErrParseExpectedTypeName-257] + _ = x[ErrParseExpectedWhenClause-258] + _ = x[ErrParseUnsupportedToken-259] + _ = x[ErrParseUnsupportedLiteralsGroupBy-260] + _ = x[ErrParseExpectedMember-261] + _ = x[ErrParseUnsupportedSelect-262] + _ = x[ErrParseUnsupportedCase-263] + _ = x[ErrParseUnsupportedCaseClause-264] + _ = x[ErrParseUnsupportedAlias-265] + _ = x[ErrParseUnsupportedSyntax-266] + _ = x[ErrParseUnknownOperator-267] + _ = x[ErrParseMissingIdentAfterAt-268] + _ = x[ErrParseUnexpectedOperator-269] + _ = x[ErrParseUnexpectedTerm-270] + _ = x[ErrParseUnexpectedToken-271] + _ = x[ErrParseUnexpectedKeyword-272] + _ = x[ErrParseExpectedExpression-273] + _ = x[ErrParseExpectedLeftParenAfterCast-274] + _ = x[ErrParseExpectedLeftParenValueConstructor-275] + _ = x[ErrParseExpectedLeftParenBuiltinFunctionCall-276] + _ = x[ErrParseExpectedArgumentDelimiter-277] + _ = x[ErrParseCastArity-278] + _ = x[ErrParseInvalidTypeParam-279] + _ = x[ErrParseEmptySelect-280] + _ = x[ErrParseSelectMissingFrom-281] + _ = x[ErrParseExpectedIdentForGroupName-282] + _ = x[ErrParseExpectedIdentForAlias-283] + _ = x[ErrParseUnsupportedCallWithStar-284] + _ = x[ErrParseNonUnaryAggregateFunctionCall-285] + _ = x[ErrParseMalformedJoin-286] + _ = x[ErrParseExpectedIdentForAt-287] + _ = x[ErrParseAsteriskIsNotAloneInSelectList-288] + _ = x[ErrParseCannotMixSqbAndWildcardInSelectList-289] + _ = x[ErrParseInvalidContextForWildcardInSelectList-290] + _ = x[ErrIncorrectSQLFunctionArgumentType-291] + _ = x[ErrValueParseFailure-292] + _ = x[ErrEvaluatorInvalidArguments-293] + _ = x[ErrIntegerOverflow-294] + _ = x[ErrLikeInvalidInputs-295] + _ = x[ErrCastFailed-296] + _ = x[ErrInvalidCast-297] + _ = x[ErrEvaluatorInvalidTimestampFormatPattern-298] + _ = x[ErrEvaluatorInvalidTimestampFormatPatternSymbolForParsing-299] + _ = x[ErrEvaluatorTimestampFormatPatternDuplicateFields-300] + _ = x[ErrEvaluatorTimestampFormatPatternHourClockAmPmMismatch-301] + _ = x[ErrEvaluatorUnterminatedTimestampFormatPatternToken-302] + _ = x[ErrEvaluatorInvalidTimestampFormatPatternToken-303] + _ = x[ErrEvaluatorInvalidTimestampFormatPatternSymbol-304] + _ = x[ErrEvaluatorBindingDoesNotExist-305] + _ = x[ErrMissingHeaders-306] + _ = x[ErrInvalidColumnIndex-307] + _ = x[ErrAdminConfigNotificationTargetsFailed-308] + _ = x[ErrAdminProfilerNotEnabled-309] + _ = x[ErrInvalidDecompressedSize-310] + _ = x[ErrAddUserInvalidArgument-311] + _ = x[ErrAdminResourceInvalidArgument-312] + _ = x[ErrAdminAccountNotEligible-313] + _ = x[ErrAccountNotEligible-314] + _ = x[ErrAdminServiceAccountNotFound-315] + _ = x[ErrPostPolicyConditionInvalidFormat-316] + _ = x[ErrInvalidChecksum-317] + _ = x[ErrLambdaARNInvalid-318] + _ = x[ErrLambdaARNNotFound-319] + _ = x[ErrInvalidAttributeName-320] + _ = x[ErrAdminNoAccessKey-321] + _ = x[ErrAdminNoSecretKey-322] + _ = x[apiErrCodeEnd-323] } -const _APIErrorCode_name = "NoneAccessDeniedBadDigestEntityTooSmallEntityTooLargePolicyTooLargeIncompleteBodyInternalErrorInvalidAccessKeyIDAccessKeyDisabledInvalidArgumentInvalidBucketNameInvalidDigestInvalidRangeInvalidRangePartNumberInvalidCopyPartRangeInvalidCopyPartRangeSourceInvalidMaxKeysInvalidEncodingMethodInvalidMaxUploadsInvalidMaxPartsInvalidPartNumberMarkerInvalidPartNumberInvalidRequestBodyInvalidCopySourceInvalidMetadataDirectiveInvalidCopyDestInvalidPolicyDocumentInvalidObjectStateMalformedXMLMissingContentLengthMissingContentMD5MissingRequestBodyErrorMissingSecurityHeaderNoSuchBucketNoSuchBucketPolicyNoSuchBucketLifecycleNoSuchLifecycleConfigurationInvalidLifecycleWithObjectLockNoSuchBucketSSEConfigNoSuchCORSConfigurationNoSuchWebsiteConfigurationReplicationConfigurationNotFoundErrorRemoteDestinationNotFoundErrorReplicationDestinationMissingLockRemoteTargetNotFoundErrorReplicationRemoteConnectionErrorReplicationBandwidthLimitErrorBucketRemoteIdenticalToSourceBucketRemoteAlreadyExistsBucketRemoteLabelInUseBucketRemoteArnTypeInvalidBucketRemoteArnInvalidBucketRemoteRemoveDisallowedRemoteTargetNotVersionedErrorReplicationSourceNotVersionedErrorReplicationNeedsVersioningErrorReplicationBucketNeedsVersioningErrorReplicationDenyEditErrorRemoteTargetDenyAddErrorReplicationNoExistingObjectsReplicationValidationErrorReplicationPermissionCheckErrorObjectRestoreAlreadyInProgressNoSuchKeyNoSuchUploadInvalidVersionIDNoSuchVersionNotImplementedPreconditionFailedRequestTimeTooSkewedSignatureDoesNotMatchMethodNotAllowedInvalidPartInvalidPartOrderMissingPartAuthorizationHeaderMalformedMalformedPOSTRequestPOSTFileRequiredSignatureVersionNotSupportedBucketNotEmptyAllAccessDisabledPolicyInvalidVersionMissingFieldsMissingCredTagCredMalformedInvalidRegionInvalidServiceS3InvalidServiceSTSInvalidRequestVersionMissingSignTagMissingSignHeadersTagMalformedDateMalformedPresignedDateMalformedCredentialDateMalformedExpiresNegativeExpiresAuthHeaderEmptyExpiredPresignRequestRequestNotReadyYetUnsignedHeadersMissingDateHeaderInvalidQuerySignatureAlgoInvalidQueryParamsBucketAlreadyOwnedByYouInvalidDurationBucketAlreadyExistsMetadataTooLargeUnsupportedMetadataUnsupportedHostHeaderMaximumExpiresSlowDownReadSlowDownWriteMaxVersionsExceededInvalidPrefixMarkerBadRequestKeyTooLongErrorInvalidBucketObjectLockConfigurationObjectLockConfigurationNotFoundObjectLockConfigurationNotAllowedNoSuchObjectLockConfigurationObjectLockedInvalidRetentionDatePastObjectLockRetainDateUnknownWORMModeDirectiveBucketTaggingNotFoundObjectLockInvalidHeadersInvalidTagDirectivePolicyAlreadyAttachedPolicyNotAttachedExcessDataInvalidEncryptionMethodInvalidEncryptionKeyIDInsecureSSECustomerRequestSSEMultipartEncryptedSSEEncryptedObjectInvalidEncryptionParametersInvalidEncryptionParametersSSECInvalidSSECustomerAlgorithmInvalidSSECustomerKeyMissingSSECustomerKeyMissingSSECustomerKeyMD5SSECustomerKeyMD5MismatchInvalidSSECustomerParametersIncompatibleEncryptionMethodKMSNotConfiguredKMSKeyNotFoundExceptionKMSDefaultKeyAlreadyConfiguredNoAccessKeyInvalidTokenEventNotificationARNNotificationRegionNotificationOverlappingFilterNotificationFilterNameInvalidFilterNamePrefixFilterNameSuffixFilterValueInvalidOverlappingConfigsUnsupportedNotificationContentSHA256MismatchContentChecksumMismatchStorageFullRequestBodyParseObjectExistsAsDirectoryInvalidObjectNameInvalidObjectNamePrefixSlashInvalidResourceNameInvalidLifecycleQueryParameterServerNotInitializedRequestTimedoutClientDisconnectedTooManyRequestsInvalidRequestTransitionStorageClassNotFoundErrorInvalidStorageClassBackendDownMalformedJSONAdminNoSuchUserAdminNoSuchUserLDAPWarnAdminNoSuchGroupAdminGroupNotEmptyAdminGroupDisabledAdminNoSuchJobAdminNoSuchPolicyAdminPolicyChangeAlreadyAppliedAdminInvalidArgumentAdminInvalidAccessKeyAdminInvalidSecretKeyAdminConfigNoQuorumAdminConfigTooLargeAdminConfigBadJSONAdminNoSuchConfigTargetAdminConfigEnvOverriddenAdminConfigDuplicateKeysAdminConfigInvalidIDPTypeAdminConfigLDAPNonDefaultConfigNameAdminConfigLDAPValidationAdminConfigIDPCfgNameAlreadyExistsAdminConfigIDPCfgNameDoesNotExistInsecureClientRequestObjectTamperedSiteReplicationInvalidRequestSiteReplicationPeerRespSiteReplicationBackendIssueSiteReplicationServiceAccountErrorSiteReplicationBucketConfigErrorSiteReplicationBucketMetaErrorSiteReplicationIAMErrorSiteReplicationConfigMissingSiteReplicationIAMConfigMismatchAdminRebalanceAlreadyStartedAdminRebalanceNotStartedAdminBucketQuotaExceededAdminNoSuchQuotaConfigurationHealNotImplementedHealNoSuchProcessHealInvalidClientTokenHealMissingBucketHealAlreadyRunningHealOverlappingPathsIncorrectContinuationTokenEmptyRequestBodyUnsupportedFunctionInvalidExpressionTypeBusyUnauthorizedAccessExpressionTooLongIllegalSQLFunctionArgumentInvalidKeyPathInvalidCompressionFormatInvalidFileHeaderInfoInvalidJSONTypeInvalidQuoteFieldsInvalidRequestParameterInvalidDataTypeInvalidTextEncodingInvalidDataSourceInvalidTableAliasMissingRequiredParameterObjectSerializationConflictUnsupportedSQLOperationUnsupportedSQLStructureUnsupportedSyntaxUnsupportedRangeHeaderLexerInvalidCharLexerInvalidOperatorLexerInvalidLiteralLexerInvalidIONLiteralParseExpectedDatePartParseExpectedKeywordParseExpectedTokenTypeParseExpected2TokenTypesParseExpectedNumberParseExpectedRightParenBuiltinFunctionCallParseExpectedTypeNameParseExpectedWhenClauseParseUnsupportedTokenParseUnsupportedLiteralsGroupByParseExpectedMemberParseUnsupportedSelectParseUnsupportedCaseParseUnsupportedCaseClauseParseUnsupportedAliasParseUnsupportedSyntaxParseUnknownOperatorParseMissingIdentAfterAtParseUnexpectedOperatorParseUnexpectedTermParseUnexpectedTokenParseUnexpectedKeywordParseExpectedExpressionParseExpectedLeftParenAfterCastParseExpectedLeftParenValueConstructorParseExpectedLeftParenBuiltinFunctionCallParseExpectedArgumentDelimiterParseCastArityParseInvalidTypeParamParseEmptySelectParseSelectMissingFromParseExpectedIdentForGroupNameParseExpectedIdentForAliasParseUnsupportedCallWithStarParseNonUnaryAggregateFunctionCallParseMalformedJoinParseExpectedIdentForAtParseAsteriskIsNotAloneInSelectListParseCannotMixSqbAndWildcardInSelectListParseInvalidContextForWildcardInSelectListIncorrectSQLFunctionArgumentTypeValueParseFailureEvaluatorInvalidArgumentsIntegerOverflowLikeInvalidInputsCastFailedInvalidCastEvaluatorInvalidTimestampFormatPatternEvaluatorInvalidTimestampFormatPatternSymbolForParsingEvaluatorTimestampFormatPatternDuplicateFieldsEvaluatorTimestampFormatPatternHourClockAmPmMismatchEvaluatorUnterminatedTimestampFormatPatternTokenEvaluatorInvalidTimestampFormatPatternTokenEvaluatorInvalidTimestampFormatPatternSymbolEvaluatorBindingDoesNotExistMissingHeadersInvalidColumnIndexAdminConfigNotificationTargetsFailedAdminProfilerNotEnabledInvalidDecompressedSizeAddUserInvalidArgumentAdminResourceInvalidArgumentAdminAccountNotEligibleAccountNotEligibleAdminServiceAccountNotFoundPostPolicyConditionInvalidFormatInvalidChecksumLambdaARNInvalidLambdaARNNotFoundInvalidAttributeNameAdminNoAccessKeyAdminNoSecretKeyapiErrCodeEnd" +const _APIErrorCode_name = "NoneAccessDeniedBadDigestEntityTooSmallEntityTooLargePolicyTooLargeIncompleteBodyInternalErrorInvalidAccessKeyIDAccessKeyDisabledInvalidArgumentInvalidBucketNameInvalidDigestInvalidRangeInvalidRangePartNumberInvalidCopyPartRangeInvalidCopyPartRangeSourceInvalidMaxKeysInvalidEncodingMethodInvalidMaxUploadsInvalidMaxPartsInvalidPartNumberMarkerInvalidPartNumberInvalidRequestBodyInvalidCopySourceInvalidMetadataDirectiveInvalidCopyDestInvalidPolicyDocumentInvalidObjectStateMalformedXMLMissingContentLengthMissingContentMD5MissingRequestBodyErrorMissingSecurityHeaderNoSuchBucketNoSuchBucketPolicyNoSuchBucketLifecycleNoSuchLifecycleConfigurationInvalidLifecycleWithObjectLockNoSuchBucketSSEConfigNoSuchCORSConfigurationNoSuchWebsiteConfigurationReplicationConfigurationNotFoundErrorRemoteDestinationNotFoundErrorReplicationDestinationMissingLockRemoteTargetNotFoundErrorReplicationRemoteConnectionErrorReplicationBandwidthLimitErrorBucketRemoteIdenticalToSourceBucketRemoteAlreadyExistsBucketRemoteLabelInUseBucketRemoteArnTypeInvalidBucketRemoteArnInvalidBucketRemoteRemoveDisallowedRemoteTargetNotVersionedErrorReplicationSourceNotVersionedErrorReplicationNeedsVersioningErrorReplicationBucketNeedsVersioningErrorReplicationDenyEditErrorRemoteTargetDenyAddErrorReplicationNoExistingObjectsReplicationValidationErrorReplicationPermissionCheckErrorObjectRestoreAlreadyInProgressNoSuchKeyNoSuchUploadInvalidVersionIDNoSuchVersionNotImplementedPreconditionFailedRequestTimeTooSkewedSignatureDoesNotMatchMethodNotAllowedInvalidPartInvalidPartOrderMissingPartAuthorizationHeaderMalformedMalformedPOSTRequestPOSTFileRequiredSignatureVersionNotSupportedBucketNotEmptyAllAccessDisabledPolicyInvalidVersionMissingFieldsMissingCredTagCredMalformedInvalidRegionInvalidServiceS3InvalidServiceSTSInvalidRequestVersionMissingSignTagMissingSignHeadersTagMalformedDateMalformedPresignedDateMalformedCredentialDateMalformedExpiresNegativeExpiresAuthHeaderEmptyExpiredPresignRequestRequestNotReadyYetUnsignedHeadersMissingDateHeaderInvalidQuerySignatureAlgoInvalidQueryParamsBucketAlreadyOwnedByYouInvalidDurationBucketAlreadyExistsMetadataTooLargeUnsupportedMetadataUnsupportedHostHeaderMaximumExpiresSlowDownReadSlowDownWriteMaxVersionsExceededInvalidPrefixMarkerBadRequestKeyTooLongErrorInvalidBucketObjectLockConfigurationObjectLockConfigurationNotFoundObjectLockConfigurationNotAllowedNoSuchObjectLockConfigurationObjectLockedInvalidRetentionDatePastObjectLockRetainDateUnknownWORMModeDirectiveBucketTaggingNotFoundObjectLockInvalidHeadersInvalidTagDirectivePolicyAlreadyAttachedPolicyNotAttachedExcessDataInvalidEncryptionMethodInvalidEncryptionKeyIDInsecureSSECustomerRequestSSEMultipartEncryptedSSEEncryptedObjectInvalidEncryptionParametersInvalidEncryptionParametersSSECInvalidSSECustomerAlgorithmInvalidSSECustomerKeyMissingSSECustomerKeyMissingSSECustomerKeyMD5SSECustomerKeyMD5MismatchInvalidSSECustomerParametersIncompatibleEncryptionMethodKMSNotConfiguredKMSKeyNotFoundExceptionKMSDefaultKeyAlreadyConfiguredNoAccessKeyInvalidTokenEventNotificationARNNotificationRegionNotificationOverlappingFilterNotificationFilterNameInvalidFilterNamePrefixFilterNameSuffixFilterValueInvalidOverlappingConfigsUnsupportedNotificationContentSHA256MismatchContentChecksumMismatchStorageFullRequestBodyParseObjectExistsAsDirectoryInvalidObjectNameInvalidObjectNamePrefixSlashInvalidResourceNameInvalidLifecycleQueryParameterServerNotInitializedRequestTimedoutClientDisconnectedTooManyRequestsInvalidRequestTransitionStorageClassNotFoundErrorInvalidStorageClassBackendDownMalformedJSONAdminNoSuchUserAdminNoSuchUserLDAPWarnAdminLDAPExpectedShortNameAdminNoSuchGroupAdminGroupNotEmptyAdminGroupDisabledAdminNoSuchJobAdminNoSuchPolicyAdminPolicyChangeAlreadyAppliedAdminInvalidArgumentAdminInvalidAccessKeyAdminInvalidSecretKeyAdminConfigNoQuorumAdminConfigTooLargeAdminConfigBadJSONAdminNoSuchConfigTargetAdminConfigEnvOverriddenAdminConfigDuplicateKeysAdminConfigInvalidIDPTypeAdminConfigLDAPNonDefaultConfigNameAdminConfigLDAPValidationAdminConfigIDPCfgNameAlreadyExistsAdminConfigIDPCfgNameDoesNotExistInsecureClientRequestObjectTamperedAdminLDAPNotEnabledSiteReplicationInvalidRequestSiteReplicationPeerRespSiteReplicationBackendIssueSiteReplicationServiceAccountErrorSiteReplicationBucketConfigErrorSiteReplicationBucketMetaErrorSiteReplicationIAMErrorSiteReplicationConfigMissingSiteReplicationIAMConfigMismatchAdminRebalanceAlreadyStartedAdminRebalanceNotStartedAdminBucketQuotaExceededAdminNoSuchQuotaConfigurationHealNotImplementedHealNoSuchProcessHealInvalidClientTokenHealMissingBucketHealAlreadyRunningHealOverlappingPathsIncorrectContinuationTokenEmptyRequestBodyUnsupportedFunctionInvalidExpressionTypeBusyUnauthorizedAccessExpressionTooLongIllegalSQLFunctionArgumentInvalidKeyPathInvalidCompressionFormatInvalidFileHeaderInfoInvalidJSONTypeInvalidQuoteFieldsInvalidRequestParameterInvalidDataTypeInvalidTextEncodingInvalidDataSourceInvalidTableAliasMissingRequiredParameterObjectSerializationConflictUnsupportedSQLOperationUnsupportedSQLStructureUnsupportedSyntaxUnsupportedRangeHeaderLexerInvalidCharLexerInvalidOperatorLexerInvalidLiteralLexerInvalidIONLiteralParseExpectedDatePartParseExpectedKeywordParseExpectedTokenTypeParseExpected2TokenTypesParseExpectedNumberParseExpectedRightParenBuiltinFunctionCallParseExpectedTypeNameParseExpectedWhenClauseParseUnsupportedTokenParseUnsupportedLiteralsGroupByParseExpectedMemberParseUnsupportedSelectParseUnsupportedCaseParseUnsupportedCaseClauseParseUnsupportedAliasParseUnsupportedSyntaxParseUnknownOperatorParseMissingIdentAfterAtParseUnexpectedOperatorParseUnexpectedTermParseUnexpectedTokenParseUnexpectedKeywordParseExpectedExpressionParseExpectedLeftParenAfterCastParseExpectedLeftParenValueConstructorParseExpectedLeftParenBuiltinFunctionCallParseExpectedArgumentDelimiterParseCastArityParseInvalidTypeParamParseEmptySelectParseSelectMissingFromParseExpectedIdentForGroupNameParseExpectedIdentForAliasParseUnsupportedCallWithStarParseNonUnaryAggregateFunctionCallParseMalformedJoinParseExpectedIdentForAtParseAsteriskIsNotAloneInSelectListParseCannotMixSqbAndWildcardInSelectListParseInvalidContextForWildcardInSelectListIncorrectSQLFunctionArgumentTypeValueParseFailureEvaluatorInvalidArgumentsIntegerOverflowLikeInvalidInputsCastFailedInvalidCastEvaluatorInvalidTimestampFormatPatternEvaluatorInvalidTimestampFormatPatternSymbolForParsingEvaluatorTimestampFormatPatternDuplicateFieldsEvaluatorTimestampFormatPatternHourClockAmPmMismatchEvaluatorUnterminatedTimestampFormatPatternTokenEvaluatorInvalidTimestampFormatPatternTokenEvaluatorInvalidTimestampFormatPatternSymbolEvaluatorBindingDoesNotExistMissingHeadersInvalidColumnIndexAdminConfigNotificationTargetsFailedAdminProfilerNotEnabledInvalidDecompressedSizeAddUserInvalidArgumentAdminResourceInvalidArgumentAdminAccountNotEligibleAccountNotEligibleAdminServiceAccountNotFoundPostPolicyConditionInvalidFormatInvalidChecksumLambdaARNInvalidLambdaARNNotFoundInvalidAttributeNameAdminNoAccessKeyAdminNoSecretKeyapiErrCodeEnd" -var _APIErrorCode_index = [...]uint16{0, 4, 16, 25, 39, 53, 67, 81, 94, 112, 129, 144, 161, 174, 186, 208, 228, 254, 268, 289, 306, 321, 344, 361, 379, 396, 420, 435, 456, 474, 486, 506, 523, 546, 567, 579, 597, 618, 646, 676, 697, 720, 746, 783, 813, 846, 871, 903, 933, 962, 987, 1009, 1035, 1057, 1085, 1114, 1148, 1179, 1216, 1240, 1264, 1292, 1318, 1349, 1379, 1388, 1400, 1416, 1429, 1443, 1461, 1481, 1502, 1518, 1529, 1545, 1556, 1584, 1604, 1620, 1648, 1662, 1679, 1699, 1712, 1726, 1739, 1752, 1768, 1785, 1806, 1820, 1841, 1854, 1876, 1899, 1915, 1930, 1945, 1966, 1984, 1999, 2016, 2041, 2059, 2082, 2097, 2116, 2132, 2151, 2172, 2186, 2198, 2211, 2230, 2249, 2259, 2274, 2310, 2341, 2374, 2403, 2415, 2435, 2459, 2483, 2504, 2528, 2547, 2568, 2585, 2595, 2618, 2640, 2666, 2687, 2705, 2732, 2763, 2790, 2811, 2832, 2856, 2881, 2909, 2937, 2953, 2976, 3006, 3017, 3029, 3046, 3061, 3079, 3108, 3125, 3141, 3157, 3175, 3193, 3216, 3237, 3260, 3271, 3287, 3310, 3327, 3355, 3374, 3404, 3424, 3439, 3457, 3472, 3486, 3521, 3540, 3551, 3564, 3579, 3602, 3618, 3636, 3654, 3668, 3685, 3716, 3736, 3757, 3778, 3797, 3816, 3834, 3857, 3881, 3905, 3930, 3965, 3990, 4024, 4057, 4078, 4092, 4121, 4144, 4171, 4205, 4237, 4267, 4290, 4318, 4350, 4378, 4402, 4426, 4455, 4473, 4490, 4512, 4529, 4547, 4567, 4593, 4609, 4628, 4649, 4653, 4671, 4688, 4714, 4728, 4752, 4773, 4788, 4806, 4829, 4844, 4863, 4880, 4897, 4921, 4948, 4971, 4994, 5011, 5033, 5049, 5069, 5088, 5110, 5131, 5151, 5173, 5197, 5216, 5258, 5279, 5302, 5323, 5354, 5373, 5395, 5415, 5441, 5462, 5484, 5504, 5528, 5551, 5570, 5590, 5612, 5635, 5666, 5704, 5745, 5775, 5789, 5810, 5826, 5848, 5878, 5904, 5932, 5966, 5984, 6007, 6042, 6082, 6124, 6156, 6173, 6198, 6213, 6230, 6240, 6251, 6289, 6343, 6389, 6441, 6489, 6532, 6576, 6604, 6618, 6636, 6672, 6695, 6718, 6740, 6768, 6791, 6809, 6836, 6868, 6883, 6899, 6916, 6936, 6952, 6968, 6981} +var _APIErrorCode_index = [...]uint16{0, 4, 16, 25, 39, 53, 67, 81, 94, 112, 129, 144, 161, 174, 186, 208, 228, 254, 268, 289, 306, 321, 344, 361, 379, 396, 420, 435, 456, 474, 486, 506, 523, 546, 567, 579, 597, 618, 646, 676, 697, 720, 746, 783, 813, 846, 871, 903, 933, 962, 987, 1009, 1035, 1057, 1085, 1114, 1148, 1179, 1216, 1240, 1264, 1292, 1318, 1349, 1379, 1388, 1400, 1416, 1429, 1443, 1461, 1481, 1502, 1518, 1529, 1545, 1556, 1584, 1604, 1620, 1648, 1662, 1679, 1699, 1712, 1726, 1739, 1752, 1768, 1785, 1806, 1820, 1841, 1854, 1876, 1899, 1915, 1930, 1945, 1966, 1984, 1999, 2016, 2041, 2059, 2082, 2097, 2116, 2132, 2151, 2172, 2186, 2198, 2211, 2230, 2249, 2259, 2274, 2310, 2341, 2374, 2403, 2415, 2435, 2459, 2483, 2504, 2528, 2547, 2568, 2585, 2595, 2618, 2640, 2666, 2687, 2705, 2732, 2763, 2790, 2811, 2832, 2856, 2881, 2909, 2937, 2953, 2976, 3006, 3017, 3029, 3046, 3061, 3079, 3108, 3125, 3141, 3157, 3175, 3193, 3216, 3237, 3260, 3271, 3287, 3310, 3327, 3355, 3374, 3404, 3424, 3439, 3457, 3472, 3486, 3521, 3540, 3551, 3564, 3579, 3602, 3628, 3644, 3662, 3680, 3694, 3711, 3742, 3762, 3783, 3804, 3823, 3842, 3860, 3883, 3907, 3931, 3956, 3991, 4016, 4050, 4083, 4104, 4118, 4137, 4166, 4189, 4216, 4250, 4282, 4312, 4335, 4363, 4395, 4423, 4447, 4471, 4500, 4518, 4535, 4557, 4574, 4592, 4612, 4638, 4654, 4673, 4694, 4698, 4716, 4733, 4759, 4773, 4797, 4818, 4833, 4851, 4874, 4889, 4908, 4925, 4942, 4966, 4993, 5016, 5039, 5056, 5078, 5094, 5114, 5133, 5155, 5176, 5196, 5218, 5242, 5261, 5303, 5324, 5347, 5368, 5399, 5418, 5440, 5460, 5486, 5507, 5529, 5549, 5573, 5596, 5615, 5635, 5657, 5680, 5711, 5749, 5790, 5820, 5834, 5855, 5871, 5893, 5923, 5949, 5977, 6011, 6029, 6052, 6087, 6127, 6169, 6201, 6218, 6243, 6258, 6275, 6285, 6296, 6334, 6388, 6434, 6486, 6534, 6577, 6621, 6649, 6663, 6681, 6717, 6740, 6763, 6785, 6813, 6836, 6854, 6881, 6913, 6928, 6944, 6961, 6981, 6997, 7013, 7026} func (i APIErrorCode) String() string { if i < 0 || i >= APIErrorCode(len(_APIErrorCode_index)-1) {