123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- //
- // Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License").
- // You may not use this file except in compliance with the License.
- // A copy of the License is located at
- //
- // http://aws.amazon.com/apache2.0
- //
- // or in the "license" file accompanying this file. This file 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.
- //
-
- #import <Foundation/Foundation.h>
- #import "AWSNetworking.h"
- #import "AWSCredentialsProvider.h"
- #import "AWSServiceEnum.h"
-
- //! SDK version for AWS Core
- FOUNDATION_EXPORT NSString *const AWSiOSSDKVersion;
-
- FOUNDATION_EXPORT NSString *const AWSServiceErrorDomain;
-
- typedef NS_ENUM(NSInteger, AWSServiceErrorType) {
- AWSServiceErrorUnknown,
- AWSServiceErrorRequestTimeTooSkewed,
- AWSServiceErrorInvalidSignatureException,
- AWSServiceErrorSignatureDoesNotMatch,
- AWSServiceErrorRequestExpired,
- AWSServiceErrorAuthFailure,
- AWSServiceErrorAccessDeniedException,
- AWSServiceErrorUnrecognizedClientException,
- AWSServiceErrorIncompleteSignature,
- AWSServiceErrorInvalidClientTokenId,
- AWSServiceErrorMissingAuthenticationToken,
- AWSServiceErrorAccessDenied,
- AWSServiceErrorExpiredToken,
- AWSServiceErrorInvalidAccessKeyId,
- AWSServiceErrorInvalidToken,
- AWSServiceErrorTokenRefreshRequired,
- AWSServiceErrorAccessFailure,
- AWSServiceErrorAuthMissingFailure,
- AWSServiceErrorThrottling,
- AWSServiceErrorThrottlingException,
- };
-
- @class AWSEndpoint;
-
- #pragma mark - AWSService
-
- /**
- An abstract representation of AWS services.
- */
- @interface AWSService : NSObject
-
- + (NSDictionary<NSString *, NSNumber *> *)errorCodeDictionary;
-
- @end
-
- #pragma mark - AWSServiceManager
-
- @class AWSServiceConfiguration;
-
- /**
- The service manager class that manages the default service configuration.
- */
- @interface AWSServiceManager : NSObject
-
- /**
- The default service configuration object. This property can be set only once, and any subsequent setters are ignored.
- */
- @property (nonatomic, copy) AWSServiceConfiguration *defaultServiceConfiguration;
-
- /**
- Returns a default singleton object. You should use this singleton method instead of creating an instance of the service manager.
-
- @return The default service manager. This is a singleton object.
- */
- + (instancetype)defaultServiceManager;
-
- @end
-
- #pragma mark - AWSServiceConfiguration
-
- /**
- A service configuration object.
- */
- @interface AWSServiceConfiguration : AWSNetworkingConfiguration
-
- @property (nonatomic, assign, readonly) AWSRegionType regionType;
- @property (nonatomic, strong, readonly) id<AWSCredentialsProvider> credentialsProvider;
- @property (nonatomic, strong, readonly) AWSEndpoint *endpoint;
- @property (nonatomic, readonly) NSString *userAgent;
-
- + (NSString *)baseUserAgent;
-
- + (void)addGlobalUserAgentProductToken:(NSString *)productToken;
-
- - (instancetype)initWithRegion:(AWSRegionType)regionType
- credentialsProvider:(id<AWSCredentialsProvider>)credentialsProvider;
-
- - (instancetype)initWithRegion:(AWSRegionType)regionType
- endpoint:(AWSEndpoint *)endpoint
- credentialsProvider:(id<AWSCredentialsProvider>)credentialsProvider;
-
- - (void)addUserAgentProductToken:(NSString *)productToken;
-
- @end
-
- #pragma mark - AWSEndpoint
-
- @interface AWSEndpoint : NSObject
-
- @property (nonatomic, readonly) AWSRegionType regionType;
- @property (nonatomic, readonly) NSString *regionName;
- @property (nonatomic, readonly) AWSServiceType serviceType;
- @property (nonatomic, readonly) NSString *serviceName;
- @property (nonatomic, readonly) NSURL *URL;
- @property (nonatomic, readonly) NSString *hostName;
- @property (nonatomic, readonly) BOOL useUnsafeURL;
-
- + (NSString *)regionNameFromType:(AWSRegionType)regionType;
-
- - (instancetype)initWithRegion:(AWSRegionType)regionType
- service:(AWSServiceType)serviceType
- useUnsafeURL:(BOOL)useUnsafeURL;
-
- - (instancetype)initWithRegion:(AWSRegionType)regionType
- service:(AWSServiceType)serviceType
- URL:(NSURL *)URL;
-
- - (instancetype)initWithRegion:(AWSRegionType)regionType
- serviceName:(NSString *)serviceName
- URL:(NSURL *)URL;
-
- - (instancetype)initWithURL:(NSURL *)URL;
-
- - (instancetype)initWithURLString:(NSString *)URLString;
-
- @end
|