// Generated by Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgcc-compat"

#if !defined(__has_include)
# define __has_include(x) 0
#endif
#if !defined(__has_attribute)
# define __has_attribute(x) 0
#endif
#if !defined(__has_feature)
# define __has_feature(x) 0
#endif
#if !defined(__has_warning)
# define __has_warning(x) 0
#endif

#if __has_attribute(external_source_symbol)
# define SWIFT_STRINGIFY(str) #str
# define SWIFT_MODULE_NAMESPACE_PUSH(module_name) _Pragma(SWIFT_STRINGIFY(clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in=module_name, generated_declaration))), apply_to=any(function, enum, objc_interface, objc_category, objc_protocol))))
# define SWIFT_MODULE_NAMESPACE_POP _Pragma("clang attribute pop")
#else
# define SWIFT_MODULE_NAMESPACE_PUSH(module_name)
# define SWIFT_MODULE_NAMESPACE_POP
#endif

#if __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif

#pragma clang diagnostic ignored "-Wauto-import"
#include <objc/NSObject.h>
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>

#if !defined(SWIFT_TYPEDEFS)
# define SWIFT_TYPEDEFS 1
# if __has_include(<uchar.h>)
#  include <uchar.h>
# elif !defined(__cplusplus) || __cplusplus < 201103L
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
# endif
typedef float swift_float2  __attribute__((__ext_vector_type__(2)));
typedef float swift_float3  __attribute__((__ext_vector_type__(3)));
typedef float swift_float4  __attribute__((__ext_vector_type__(4)));
typedef double swift_double2  __attribute__((__ext_vector_type__(2)));
typedef double swift_double3  __attribute__((__ext_vector_type__(3)));
typedef double swift_double4  __attribute__((__ext_vector_type__(4)));
typedef int swift_int2  __attribute__((__ext_vector_type__(2)));
typedef int swift_int3  __attribute__((__ext_vector_type__(3)));
typedef int swift_int4  __attribute__((__ext_vector_type__(4)));
typedef unsigned int swift_uint2  __attribute__((__ext_vector_type__(2)));
typedef unsigned int swift_uint3  __attribute__((__ext_vector_type__(3)));
typedef unsigned int swift_uint4  __attribute__((__ext_vector_type__(4)));
#endif

#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if !defined(SWIFT_CLASS_PROPERTY)
# if __has_feature(objc_class_property)
#  define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
#  define SWIFT_CLASS_PROPERTY(...)
# endif
#endif

#if __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#endif
#if __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#endif
#if __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
#else
# define SWIFT_METHOD_FAMILY(X)
#endif
#if __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
#else
# define SWIFT_NOESCAPE
#endif
#if __has_attribute(warn_unused_result)
# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
# define SWIFT_WARN_UNUSED_RESULT
#endif
#if __has_attribute(noreturn)
# define SWIFT_NORETURN __attribute__((noreturn))
#else
# define SWIFT_NORETURN
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if __has_attribute(objc_subclassing_restricted)
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
#  define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
#  define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif

#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif

#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif

#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if __has_attribute(objc_designated_initializer)
#  define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
#  define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM_ATTR)
# if defined(__has_attribute) && __has_attribute(enum_extensibility)
#  define SWIFT_ENUM_ATTR __attribute__((enum_extensibility(open)))
# else
#  define SWIFT_ENUM_ATTR
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type
# if __has_feature(generalized_swift_name)
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR SWIFT_ENUM_EXTRA _name : _type
# else
#  define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name)
# endif
#endif
#if !defined(SWIFT_UNAVAILABLE)
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
#endif
#if !defined(SWIFT_UNAVAILABLE_MSG)
# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
#endif
#if !defined(SWIFT_AVAILABILITY)
# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
#endif
#if !defined(SWIFT_DEPRECATED)
# define SWIFT_DEPRECATED __attribute__((deprecated))
#endif
#if !defined(SWIFT_DEPRECATED_MSG)
# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
#endif
#if __has_feature(attribute_diagnose_if_objc)
# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
#else
# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
#endif
#if __has_feature(modules)
@import ObjectiveC;
@import Foundation;
#endif

#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
#if __has_warning("-Wpragma-clang-attribute")
# pragma clang diagnostic ignored "-Wpragma-clang-attribute"
#endif
#pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wnullability"

SWIFT_MODULE_NAMESPACE_PUSH("EnterpriseLib")

/// The StorageConnection transfers content to the Storage Cloud Service.
/// StorageConnection is used by the client internally.
SWIFT_CLASS("_TtC13EnterpriseLib17StorageConnection")
@interface StorageConnection : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end


/// The <code>StorageConnection</code> transfers content to the Storage Cloud Service.
/// There is one StorageConnection instance per client.
SWIFT_CLASS("_TtC13EnterpriseLib21StorageConnectionBase")
@interface StorageConnectionBase : StorageConnection
+ (BOOL)isStorageCloudURIWithUri:(NSString * _Nonnull)uri SWIFT_WARN_UNUSED_RESULT;
- (void)close;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
@end


/// The <code>StorageConnection</code> transfers content to the Storage Cloud Service.
/// Service.
/// There is one `StorageConnection’ instance per client.
SWIFT_CLASS("_TtC13EnterpriseLib21StorageConnectionImpl")
@interface StorageConnectionImpl : StorageConnectionBase
@end


/// The DefaultTrustedAssetManager class implementation
SWIFT_CLASS("_TtC13EnterpriseLib24TrustedAssetsManagerImpl")
@interface TrustedAssetsManagerImpl : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
/// Returns the Server Host, must be a name that can be resolved by DNS,
/// no IP number. The Server Host name is provisioned with the
/// provisioning file.
/// -returns: server Host as String
- (NSString * _Nonnull)getServerHost SWIFT_WARN_UNUSED_RESULT;
/// Returns the Server Port. Server Port is provisioned with the
/// provisioning file.
/// -returns: the server port as String
- (NSString * _Nonnull)getServerPort SWIFT_WARN_UNUSED_RESULT;
/// Returns the Server scheme. Server scheme is provisioned with the
/// provisioning file.
/// -returns: the server scheme as String
- (NSString * _Nonnull)getServerScheme SWIFT_WARN_UNUSED_RESULT;
/// Returns the activation state of the TAM
/// -returns: <code>false</code> if the TAM is not activated, or <code>true</code> if the TAM is
/// already activated
- (BOOL)isActivated SWIFT_WARN_UNUSED_RESULT;
/// Returns the provisioning state of the TAM
/// -returns: <code>false</code> if the TAM is not activated, or <code>true</code> if the TAM is
/// already activated
- (BOOL)isProvision SWIFT_WARN_UNUSED_RESULT;
/// Sets the state of the TAM to Activated will only work of the
/// Provisioning and initialization worked correctly.
- (void)setToActivated;
/// Returns the Endpoint ID that is provisioned with the provisioning file
/// -returns: the endpoint ID
- (NSString * _Nonnull)getEndpointId SWIFT_WARN_UNUSED_RESULT;
/// Returns the Client ID that is provisioned with the provisioning file
/// -returns: the client ID
- (NSString * _Nonnull)getClientId SWIFT_WARN_UNUSED_RESULT;
/// Returns the Oauth Request Path
/// -returns: the oauthRequestPath
- (NSString * _Nonnull)getOAuthRequestPath SWIFT_WARN_UNUSED_RESULT;
/// Resets the trust material back to its provisioning state; in particular,
/// the key pair is erased. The client will have to go, at least,through
/// activation again;
/// depending on the provisioning policy in place, the client may have to go
/// through registration again.
- (BOOL)resetAndReturnError:(NSError * _Nullable * _Nullable)error;
/// Closes the TAM.
- (void)close;
/// Sets the assigned endpoint ID and certificate as returned by the
/// activation procedure. Upon a call to this method, a compliant
/// implementation of the <code>TrustedAssetsManager</code> interface must ensure
/// the persistence of the provided endpoint credentials. This method can
/// only be called once; unless the <em>TrustedAssetsManager</em> has been
/// reset.
/// If the client is a pre-activated enterprise application, the endpoint ID
/// has already been provisioned and calling this method MUST fail.
/// \param endpointId the assigned endpoint ID.
///
/// \param certificate the DER-encoded certificate issued by the server<br/>
/// or an empty array if no certificate was
/// provided by the server.
///
///
/// throws:
/// <code>ClientError.state</code> if already activated, or private keys have
/// not been generated, or <code>endpointId</code> is already assigned, or if
/// certificate data has not been encoded.<br/>
/// <code>ClientError.argument</code> if <code>endpointId</code> is an empty string.
- (BOOL)setEndPointCredentialsWithEndpointId:(NSString * _Nonnull)endpointId certificate:(NSData * _Nonnull)certificate error:(NSError * _Nullable * _Nullable)error;
/// Retrieves the trust anchor or most-trusted Certification Authority (CA)
/// certificates to be used to validate the IoT CS server certificate chain.
///
/// returns:
/// An array of DER-encoded trust anchor certificates
/// (byte arrays).
- (NSArray<NSData *> * _Nullable)getTrustAnchorCertificates SWIFT_WARN_UNUSED_RESULT;
/// Retrieves the assigned endpoint certificate.
///
/// returns:
/// The DER-encoded certificate or an empty array if no
/// certificate was assigned.
- (NSData * _Nullable)getEndpointCertificate SWIFT_WARN_UNUSED_RESULT;
/// Signs the provided data using the specified algorithm and the shared
/// secret of the device indicated by the given activation id.
/// Passing <code>nil</code> for <code>activationId</code> is identical to passing
/// <code>getClientId()</code>.
/// \param data the data to be hashed.
///
/// \param algorithm The hash algorithm to use.
///
/// \param activationId The activation id of the device whose shared
/// secret is to be used for signing.
///
///
/// throws:
/// <code>ClientError.state</code> if <code>activationId</code> is not <code>nil</code> and the
/// shared secret for that id does not exist.
///
/// returns:
/// The hash of the data
- (NSData * _Nullable)signWithSharedSecretWithData:(NSString * _Nonnull)data algorithm:(NSString * _Nonnull)algorithm activationId:(NSString * _Nullable)activationId error:(NSError * _Nullable * _Nullable)error SWIFT_WARN_UNUSED_RESULT;
- (NSString * _Nullable)signWithSharedSecretStringWithData:(NSString * _Nonnull)data algorithm:(NSString * _Nonnull)algorithm activationId:(NSString * _Nullable)activationId error:(NSError * _Nullable * _Nullable)error SWIFT_WARN_UNUSED_RESULT;
/// Creates an RSA key-pair and stores them in the keychain (RSA is the only
/// algorithm supported by the iOS API)
/// \param keysize keylength in bits
///
/// \param tagPrefix for the keys to find them in the keychain
///
///
/// throws:
/// <code>ClientError.argument</code> if <code>tagPrefix</code> is the empty string, or
/// <code>keySize</code> is less than or equal to zero<br/>
/// <code>ClientError.security</code> if key pair generation fails
- (BOOL)generateKeyPairWithAlgorithm:(NSString * _Nonnull)algorithm keySize:(NSInteger)keySize error:(NSError * _Nullable * _Nullable)error;
/// Retrieves the public key to be used for certificate request.
///
/// returns:
/// the public key.
- (NSData * _Nonnull)getPublicKey SWIFT_WARN_UNUSED_RESULT;
@end

SWIFT_MODULE_NAMESPACE_POP
#pragma clang diagnostic pop
